diff --git a/dist/xeokit-sdk.cjs.js b/dist/xeokit-sdk.cjs.js index 1e0aefafce..d1dbc58ca2 100644 --- a/dist/xeokit-sdk.cjs.js +++ b/dist/xeokit-sdk.cjs.js @@ -10654,6 +10654,24 @@ class Wire { }); } + if (cfg.onMouseDown) { + wireClickable.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + wireClickable.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + wireClickable.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { wireClickable.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -10812,9 +10830,14 @@ class Dot { if (cfg.onContextMenu) ; parentElement.appendChild(dotClickable); + dotClickable.addEventListener('click', (event) => { + parentElement.dispatchEvent(new MouseEvent('mouseover', event)); + }); + if (cfg.onMouseOver) { dotClickable.addEventListener('mouseover', (event) => { cfg.onMouseOver(event, this); + parentElement.dispatchEvent(new MouseEvent('mouseover', event)); }); } @@ -10830,6 +10853,24 @@ class Dot { }); } + if (cfg.onMouseDown) { + dotClickable.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + dotClickable.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + dotClickable.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { dotClickable.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -10972,6 +11013,24 @@ class Label { }); } + if (cfg.onMouseDown) { + label.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + label.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + label.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { label.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -11108,10 +11167,12 @@ class AngleMeasurement extends Component { const onMouseOver = cfg.onMouseOver ? (event) => { cfg.onMouseOver(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover', event)); } : null; const onMouseLeave = cfg.onMouseLeave ? (event) => { cfg.onMouseLeave(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave', event)); } : null; const onContextMenu = cfg.onContextMenu ? (event) => { @@ -11122,12 +11183,27 @@ class AngleMeasurement extends Component { this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel', event)); }; + const onMouseDown = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown', event)); + } ; + + const onMouseUp = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup', event)); + }; + + const onMouseMove = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove', event)); + }; + this._originDot = new Dot(this._container, { fillColor: this._color, zIndex: plugin.zIndex !== undefined ? plugin.zIndex + 2 : undefined, onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._cornerDot = new Dot(this._container, { @@ -11136,6 +11212,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._targetDot = new Dot(this._container, { @@ -11144,6 +11223,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -11154,6 +11236,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._targetWire = new Wire(this._container, { @@ -11163,6 +11248,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -11174,6 +11262,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -12613,6 +12704,7 @@ class AngleMeasurementsPlugin extends Plugin { measurement.on("destroyed", () => { delete this._measurements[measurement.id]; }); + measurement.clickable = true; this.fire("measurementCreated", measurement); return measurement; } @@ -79685,12 +79777,26 @@ class DistanceMeasurement extends Component { const onMouseOver = cfg.onMouseOver ? (event) => { cfg.onMouseOver(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover', event)); } : null; const onMouseLeave = cfg.onMouseLeave ? (event) => { cfg.onMouseLeave(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave', event)); } : null; + const onMouseDown = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown', event)); + } ; + + const onMouseUp = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup', event)); + }; + + const onMouseMove = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove', event)); + }; + const onContextMenu = cfg.onContextMenu ? (event) => { cfg.onContextMenu(event, this); } : null; @@ -79705,6 +79811,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79714,6 +79823,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79725,6 +79837,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79736,6 +79851,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79747,6 +79865,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79758,6 +79879,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79769,6 +79893,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79780,6 +79907,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79791,6 +79921,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79802,6 +79935,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); diff --git a/dist/xeokit-sdk.es.js b/dist/xeokit-sdk.es.js index a0d705c482..b1a949ea6a 100644 --- a/dist/xeokit-sdk.es.js +++ b/dist/xeokit-sdk.es.js @@ -10650,6 +10650,24 @@ class Wire { }); } + if (cfg.onMouseDown) { + wireClickable.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + wireClickable.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + wireClickable.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { wireClickable.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -10808,9 +10826,14 @@ class Dot { if (cfg.onContextMenu) ; parentElement.appendChild(dotClickable); + dotClickable.addEventListener('click', (event) => { + parentElement.dispatchEvent(new MouseEvent('mouseover', event)); + }); + if (cfg.onMouseOver) { dotClickable.addEventListener('mouseover', (event) => { cfg.onMouseOver(event, this); + parentElement.dispatchEvent(new MouseEvent('mouseover', event)); }); } @@ -10826,6 +10849,24 @@ class Dot { }); } + if (cfg.onMouseDown) { + dotClickable.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + dotClickable.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + dotClickable.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { dotClickable.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -10968,6 +11009,24 @@ class Label { }); } + if (cfg.onMouseDown) { + label.addEventListener('mousedown', (event) => { + cfg.onMouseDown(event, this); + }); + } + + if (cfg.onMouseUp) { + label.addEventListener('mouseup', (event) => { + cfg.onMouseUp(event, this); + }); + } + + if (cfg.onMouseMove) { + label.addEventListener('mousemove', (event) => { + cfg.onMouseMove(event, this); + }); + } + if (cfg.onContextMenu) { label.addEventListener('contextmenu', (event) => { cfg.onContextMenu(event, this); @@ -11104,10 +11163,12 @@ class AngleMeasurement extends Component { const onMouseOver = cfg.onMouseOver ? (event) => { cfg.onMouseOver(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover', event)); } : null; const onMouseLeave = cfg.onMouseLeave ? (event) => { cfg.onMouseLeave(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave', event)); } : null; const onContextMenu = cfg.onContextMenu ? (event) => { @@ -11118,12 +11179,27 @@ class AngleMeasurement extends Component { this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel', event)); }; + const onMouseDown = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown', event)); + } ; + + const onMouseUp = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup', event)); + }; + + const onMouseMove = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove', event)); + }; + this._originDot = new Dot(this._container, { fillColor: this._color, zIndex: plugin.zIndex !== undefined ? plugin.zIndex + 2 : undefined, onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._cornerDot = new Dot(this._container, { @@ -11132,6 +11208,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._targetDot = new Dot(this._container, { @@ -11140,6 +11219,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -11150,6 +11232,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); this._targetWire = new Wire(this._container, { @@ -11159,6 +11244,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -11170,6 +11258,9 @@ class AngleMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -12609,6 +12700,7 @@ class AngleMeasurementsPlugin extends Plugin { measurement.on("destroyed", () => { delete this._measurements[measurement.id]; }); + measurement.clickable = true; this.fire("measurementCreated", measurement); return measurement; } @@ -79681,12 +79773,26 @@ class DistanceMeasurement extends Component { const onMouseOver = cfg.onMouseOver ? (event) => { cfg.onMouseOver(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover', event)); } : null; const onMouseLeave = cfg.onMouseLeave ? (event) => { cfg.onMouseLeave(event, this); + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave', event)); } : null; + const onMouseDown = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown', event)); + } ; + + const onMouseUp = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup', event)); + }; + + const onMouseMove = (event) => { + this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove', event)); + }; + const onContextMenu = cfg.onContextMenu ? (event) => { cfg.onContextMenu(event, this); } : null; @@ -79701,6 +79807,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79710,6 +79819,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79721,6 +79833,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79732,6 +79847,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79743,6 +79861,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79754,6 +79875,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79765,6 +79889,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79776,6 +79903,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79787,6 +79917,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); @@ -79798,6 +79931,9 @@ class DistanceMeasurement extends Component { onMouseOver, onMouseLeave, onMouseWheel, + onMouseDown, + onMouseUp, + onMouseMove, onContextMenu }); diff --git a/dist/xeokit-sdk.es5.js b/dist/xeokit-sdk.es5.js index 977a481dcc..75dd921ca5 100644 --- a/dist/xeokit-sdk.es5.js +++ b/dist/xeokit-sdk.es5.js @@ -2723,7 +2723,7 @@ _this13._onEntityModelDestroyed=null;});}else{this._onEntityDestroyed=this._enti */},{key:"visible",get:function get(){return!!this._visible;}/** * Destroys this Marker. */},{key:"destroy",value:function destroy(){this.fire("destroyed",true);this.scene.camera.off(this._onCameraViewMatrix);this.scene.camera.off(this._onCameraProjMatrix);if(this._entity){if(this._onEntityDestroyed!==null){this._entity.off(this._onEntityDestroyed);}if(this._onEntityModelDestroyed!==null){this._entity.model.off(this._onEntityModelDestroyed);}}this._renderer.removeMarker(this);_get(_getPrototypeOf(Marker.prototype),"destroy",this).call(this);}}]);return Marker;}(Component);/** @private */var Wire=/*#__PURE__*/function(){function Wire(parentElement){var _this14=this;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Wire);this._color=cfg.color||"black";this._highlightClass="viewer-ruler-wire-highlighted";this._wire=document.createElement('div');this._wire.className+=this._wire.className?' viewer-ruler-wire':'viewer-ruler-wire';this._wireClickable=document.createElement('div');this._wireClickable.className+=this._wireClickable.className?' viewer-ruler-wire-clickable':'viewer-ruler-wire-clickable';this._thickness=cfg.thickness||1.0;this._thicknessClickable=cfg.thicknessClickable||6.0;this._visible=true;this._culled=false;var wire=this._wire;var wireStyle=wire.style;wireStyle.border="solid "+this._thickness+"px "+this._color;wireStyle.position="absolute";wireStyle["z-index"]=cfg.zIndex===undefined?"2000001":cfg.zIndex;wireStyle.width=0+"px";wireStyle.height=0+"px";wireStyle.visibility="visible";wireStyle.top=0+"px";wireStyle.left=0+"px";wireStyle['-webkit-transform-origin']="0 0";wireStyle['-moz-transform-origin']="0 0";wireStyle['-ms-transform-origin']="0 0";wireStyle['-o-transform-origin']="0 0";wireStyle['transform-origin']="0 0";wireStyle['-webkit-transform']='rotate(0deg)';wireStyle['-moz-transform']='rotate(0deg)';wireStyle['-ms-transform']='rotate(0deg)';wireStyle['-o-transform']='rotate(0deg)';wireStyle['transform']='rotate(0deg)';wireStyle["opacity"]=1.0;wireStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(wire);var wireClickable=this._wireClickable;var wireClickableStyle=wireClickable.style;wireClickableStyle.border="solid "+this._thicknessClickable+"px "+this._color;wireClickableStyle.position="absolute";wireClickableStyle["z-index"]=cfg.zIndex===undefined?"2000002":cfg.zIndex+1;wireClickableStyle.width=0+"px";wireClickableStyle.height=0+"px";wireClickableStyle.visibility="visible";wireClickableStyle.top=0+"px";wireClickableStyle.left=0+"px";// wireClickableStyle["pointer-events"] = "none"; -wireClickableStyle['-webkit-transform-origin']="0 0";wireClickableStyle['-moz-transform-origin']="0 0";wireClickableStyle['-ms-transform-origin']="0 0";wireClickableStyle['-o-transform-origin']="0 0";wireClickableStyle['transform-origin']="0 0";wireClickableStyle['-webkit-transform']='rotate(0deg)';wireClickableStyle['-moz-transform']='rotate(0deg)';wireClickableStyle['-ms-transform']='rotate(0deg)';wireClickableStyle['-o-transform']='rotate(0deg)';wireClickableStyle['transform']='rotate(0deg)';wireClickableStyle["opacity"]=0.0;wireClickableStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(wireClickable);if(cfg.onMouseOver){wireClickable.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this14);});}if(cfg.onMouseLeave){wireClickable.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this14);});}if(cfg.onMouseWheel){wireClickable.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this14);});}if(cfg.onContextMenu){wireClickable.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this14);event.preventDefault();});}this._x1=0;this._y1=0;this._x2=0;this._y2=0;this._update();}_createClass(Wire,[{key:"visible",get:function get(){return this._wire.style.visibility==="visible";}},{key:"_update",value:function _update(){var length=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2)));var angle=Math.atan2(this._y2-this._y1,this._x2-this._x1)*180.0/Math.PI;var wireStyle=this._wire.style;wireStyle["width"]=Math.round(length)+'px';wireStyle["left"]=Math.round(this._x1)+'px';wireStyle["top"]=Math.round(this._y1)+'px';wireStyle['-webkit-transform']='rotate('+angle+'deg)';wireStyle['-moz-transform']='rotate('+angle+'deg)';wireStyle['-ms-transform']='rotate('+angle+'deg)';wireStyle['-o-transform']='rotate('+angle+'deg)';wireStyle['transform']='rotate('+angle+'deg)';var wireClickableStyle=this._wireClickable.style;wireClickableStyle["width"]=Math.round(length)+'px';wireClickableStyle["left"]=Math.round(this._x1)+'px';wireClickableStyle["top"]=Math.round(this._y1)+'px';wireClickableStyle['-webkit-transform']='rotate('+angle+'deg)';wireClickableStyle['-moz-transform']='rotate('+angle+'deg)';wireClickableStyle['-ms-transform']='rotate('+angle+'deg)';wireClickableStyle['-o-transform']='rotate('+angle+'deg)';wireClickableStyle['transform']='rotate('+angle+'deg)';}},{key:"setStartAndEnd",value:function setStartAndEnd(x1,y1,x2,y2){this._x1=x1;this._y1=y1;this._x2=x2;this._y2=y2;this._update();}},{key:"setColor",value:function setColor(color){this._color=color||"black";this._wire.style.border="solid "+this._thickness+"px "+this._color;}},{key:"setOpacity",value:function setOpacity(opacity){this._wire.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setClickable",value:function setClickable(clickable){this._wireClickable.style["pointer-events"]=!!clickable?"all":"none";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._wire.classList.add(this._highlightClass);}else{this._wire.classList.remove(this._highlightClass);}}},{key:"destroy",value:function destroy(visible){if(this._wire.parentElement){this._wire.parentElement.removeChild(this._wire);}if(this._wireClickable.parentElement){this._wireClickable.parentElement.removeChild(this._wireClickable);}}}]);return Wire;}();/** @private */var Dot=/*#__PURE__*/function(){function Dot(parentElement){var _this15=this;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Dot);this._highlightClass="viewer-ruler-dot-highlighted";this._x=0;this._y=0;this._visible=true;this._dot=document.createElement('div');this._dot.className+=this._dot.className?' viewer-ruler-dot':'viewer-ruler-dot';this._dotClickable=document.createElement('div');this._dotClickable.className+=this._dotClickable.className?' viewer-ruler-dot-clickable':'viewer-ruler-dot-clickable';this._visible=true;this._culled=false;var dot=this._dot;var dotStyle=dot.style;dotStyle["border-radius"]=25+"px";dotStyle.border="solid 2px white";dotStyle.background="lightgreen";dotStyle.position="absolute";dotStyle["z-index"]=cfg.zIndex===undefined?"40000005":cfg.zIndex;dotStyle.width=8+"px";dotStyle.height=8+"px";dotStyle.visibility=cfg.visible!==false?"visible":"hidden";dotStyle.top=0+"px";dotStyle.left=0+"px";dotStyle["box-shadow"]="0 2px 5px 0 #182A3D;";dotStyle["opacity"]=1.0;dotStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(dot);var dotClickable=this._dotClickable;var dotClickableStyle=dotClickable.style;dotClickableStyle["border-radius"]=35+"px";dotClickableStyle.border="solid 10px white";dotClickableStyle.position="absolute";dotClickableStyle["z-index"]=cfg.zIndex===undefined?"40000007":cfg.zIndex+1;dotClickableStyle.width=8+"px";dotClickableStyle.height=8+"px";dotClickableStyle.visibility="visible";dotClickableStyle.top=0+"px";dotClickableStyle.left=0+"px";dotClickableStyle["opacity"]=0.0;dotClickableStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(dotClickable);if(cfg.onMouseOver){dotClickable.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this15);});}if(cfg.onMouseLeave){dotClickable.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this15);});}if(cfg.onMouseWheel){dotClickable.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this15);});}if(cfg.onContextMenu){dotClickable.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this15);event.preventDefault();});}this.setPos(cfg.x||0,cfg.y||0);this.setFillColor(cfg.fillColor);this.setBorderColor(cfg.borderColor);}_createClass(Dot,[{key:"setPos",value:function setPos(x,y){this._x=x;this._y=y;var dotStyle=this._dot.style;dotStyle["left"]=Math.round(x)-4+'px';dotStyle["top"]=Math.round(y)-4+'px';var dotClickableStyle=this._dotClickable.style;dotClickableStyle["left"]=Math.round(x)-9+'px';dotClickableStyle["top"]=Math.round(y)-9+'px';}},{key:"setFillColor",value:function setFillColor(color){this._dot.style.background=color||"lightgreen";}},{key:"setBorderColor",value:function setBorderColor(color){this._dot.style.border="solid 2px"+(color||"black");}},{key:"setOpacity",value:function setOpacity(opacity){this._dot.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setClickable",value:function setClickable(clickable){this._dotClickable.style["pointer-events"]=!!clickable?"all":"none";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._dot.classList.add(this._highlightClass);}else{this._dot.classList.remove(this._highlightClass);}}},{key:"destroy",value:function destroy(){this.setVisible(false);if(this._dot.parentElement){this._dot.parentElement.removeChild(this._dot);}if(this._dotClickable.parentElement){this._dotClickable.parentElement.removeChild(this._dotClickable);}}}]);return Dot;}();/** @private */var Label=/*#__PURE__*/function(){function Label(parentElement){var _this16=this;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Label);this._highlightClass="viewer-ruler-label-highlighted";this._prefix=cfg.prefix||"";this._x=0;this._y=0;this._visible=true;this._culled=false;this._label=document.createElement('div');this._label.className+=this._label.className?' viewer-ruler-label':'viewer-ruler-label';var label=this._label;var style=label.style;style["border-radius"]=5+"px";style.color="white";style.padding="4px";style.border="solid 1px";style.background="lightgreen";style.position="absolute";style["z-index"]=cfg.zIndex===undefined?"5000005":cfg.zIndex;style.width="auto";style.height="auto";style.visibility="visible";style.top=0+"px";style.left=0+"px";style["pointer-events"]="all";style["opacity"]=1.0;if(cfg.onContextMenu);label.innerText="";parentElement.appendChild(label);this.setPos(cfg.x||0,cfg.y||0);this.setFillColor(cfg.fillColor);this.setBorderColor(cfg.fillColor);this.setText(cfg.text);if(cfg.onMouseOver){label.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this16);event.preventDefault();});}if(cfg.onMouseLeave){label.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this16);event.preventDefault();});}if(cfg.onMouseWheel){label.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this16);});}if(cfg.onContextMenu){label.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this16);event.preventDefault();});}}_createClass(Label,[{key:"setPos",value:function setPos(x,y){this._x=x;this._y=y;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setPosOnWire",value:function setPosOnWire(x1,y1,x2,y2){var x=x1+(x2-x1)*0.5;var y=y1+(y2-y1)*0.5;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setPosBetweenWires",value:function setPosBetweenWires(x1,y1,x2,y2,x3,y3){var x=(x1+x2+x3)/3;var y=(y1+y2+y3)/3;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setText",value:function setText(text){this._label.innerHTML=this._prefix+(text||"");}},{key:"setFillColor",value:function setFillColor(color){this._fillColor=color||"lightgreen";this._label.style.background=this._fillColor;}},{key:"setBorderColor",value:function setBorderColor(color){this._borderColor=color||"black";this._label.style.border="solid 1px "+this._borderColor;}},{key:"setOpacity",value:function setOpacity(opacity){this._label.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._label.classList.add(this._highlightClass);}else{this._label.classList.remove(this._highlightClass);}}},{key:"setClickable",value:function setClickable(clickable){this._label.style["pointer-events"]=!!clickable?"all":"none";}},{key:"destroy",value:function destroy(){if(this._label.parentElement){this._label.parentElement.removeChild(this._label);}}}]);return Label;}();var originVec=math.vec3();var targetVec=math.vec3();/** +wireClickableStyle['-webkit-transform-origin']="0 0";wireClickableStyle['-moz-transform-origin']="0 0";wireClickableStyle['-ms-transform-origin']="0 0";wireClickableStyle['-o-transform-origin']="0 0";wireClickableStyle['transform-origin']="0 0";wireClickableStyle['-webkit-transform']='rotate(0deg)';wireClickableStyle['-moz-transform']='rotate(0deg)';wireClickableStyle['-ms-transform']='rotate(0deg)';wireClickableStyle['-o-transform']='rotate(0deg)';wireClickableStyle['transform']='rotate(0deg)';wireClickableStyle["opacity"]=0.0;wireClickableStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(wireClickable);if(cfg.onMouseOver){wireClickable.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this14);});}if(cfg.onMouseLeave){wireClickable.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this14);});}if(cfg.onMouseWheel){wireClickable.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this14);});}if(cfg.onMouseDown){wireClickable.addEventListener('mousedown',function(event){cfg.onMouseDown(event,_this14);});}if(cfg.onMouseUp){wireClickable.addEventListener('mouseup',function(event){cfg.onMouseUp(event,_this14);});}if(cfg.onMouseMove){wireClickable.addEventListener('mousemove',function(event){cfg.onMouseMove(event,_this14);});}if(cfg.onContextMenu){wireClickable.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this14);event.preventDefault();});}this._x1=0;this._y1=0;this._x2=0;this._y2=0;this._update();}_createClass(Wire,[{key:"visible",get:function get(){return this._wire.style.visibility==="visible";}},{key:"_update",value:function _update(){var length=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2)));var angle=Math.atan2(this._y2-this._y1,this._x2-this._x1)*180.0/Math.PI;var wireStyle=this._wire.style;wireStyle["width"]=Math.round(length)+'px';wireStyle["left"]=Math.round(this._x1)+'px';wireStyle["top"]=Math.round(this._y1)+'px';wireStyle['-webkit-transform']='rotate('+angle+'deg)';wireStyle['-moz-transform']='rotate('+angle+'deg)';wireStyle['-ms-transform']='rotate('+angle+'deg)';wireStyle['-o-transform']='rotate('+angle+'deg)';wireStyle['transform']='rotate('+angle+'deg)';var wireClickableStyle=this._wireClickable.style;wireClickableStyle["width"]=Math.round(length)+'px';wireClickableStyle["left"]=Math.round(this._x1)+'px';wireClickableStyle["top"]=Math.round(this._y1)+'px';wireClickableStyle['-webkit-transform']='rotate('+angle+'deg)';wireClickableStyle['-moz-transform']='rotate('+angle+'deg)';wireClickableStyle['-ms-transform']='rotate('+angle+'deg)';wireClickableStyle['-o-transform']='rotate('+angle+'deg)';wireClickableStyle['transform']='rotate('+angle+'deg)';}},{key:"setStartAndEnd",value:function setStartAndEnd(x1,y1,x2,y2){this._x1=x1;this._y1=y1;this._x2=x2;this._y2=y2;this._update();}},{key:"setColor",value:function setColor(color){this._color=color||"black";this._wire.style.border="solid "+this._thickness+"px "+this._color;}},{key:"setOpacity",value:function setOpacity(opacity){this._wire.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setClickable",value:function setClickable(clickable){this._wireClickable.style["pointer-events"]=!!clickable?"all":"none";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._wire.classList.add(this._highlightClass);}else{this._wire.classList.remove(this._highlightClass);}}},{key:"destroy",value:function destroy(visible){if(this._wire.parentElement){this._wire.parentElement.removeChild(this._wire);}if(this._wireClickable.parentElement){this._wireClickable.parentElement.removeChild(this._wireClickable);}}}]);return Wire;}();/** @private */var Dot=/*#__PURE__*/function(){function Dot(parentElement){var _this15=this;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Dot);this._highlightClass="viewer-ruler-dot-highlighted";this._x=0;this._y=0;this._visible=true;this._dot=document.createElement('div');this._dot.className+=this._dot.className?' viewer-ruler-dot':'viewer-ruler-dot';this._dotClickable=document.createElement('div');this._dotClickable.className+=this._dotClickable.className?' viewer-ruler-dot-clickable':'viewer-ruler-dot-clickable';this._visible=true;this._culled=false;var dot=this._dot;var dotStyle=dot.style;dotStyle["border-radius"]=25+"px";dotStyle.border="solid 2px white";dotStyle.background="lightgreen";dotStyle.position="absolute";dotStyle["z-index"]=cfg.zIndex===undefined?"40000005":cfg.zIndex;dotStyle.width=8+"px";dotStyle.height=8+"px";dotStyle.visibility=cfg.visible!==false?"visible":"hidden";dotStyle.top=0+"px";dotStyle.left=0+"px";dotStyle["box-shadow"]="0 2px 5px 0 #182A3D;";dotStyle["opacity"]=1.0;dotStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(dot);var dotClickable=this._dotClickable;var dotClickableStyle=dotClickable.style;dotClickableStyle["border-radius"]=35+"px";dotClickableStyle.border="solid 10px white";dotClickableStyle.position="absolute";dotClickableStyle["z-index"]=cfg.zIndex===undefined?"40000007":cfg.zIndex+1;dotClickableStyle.width=8+"px";dotClickableStyle.height=8+"px";dotClickableStyle.visibility="visible";dotClickableStyle.top=0+"px";dotClickableStyle.left=0+"px";dotClickableStyle["opacity"]=0.0;dotClickableStyle["pointer-events"]="none";if(cfg.onContextMenu);parentElement.appendChild(dotClickable);dotClickable.addEventListener('click',function(event){parentElement.dispatchEvent(new MouseEvent('mouseover',event));});if(cfg.onMouseOver){dotClickable.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this15);parentElement.dispatchEvent(new MouseEvent('mouseover',event));});}if(cfg.onMouseLeave){dotClickable.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this15);});}if(cfg.onMouseWheel){dotClickable.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this15);});}if(cfg.onMouseDown){dotClickable.addEventListener('mousedown',function(event){cfg.onMouseDown(event,_this15);});}if(cfg.onMouseUp){dotClickable.addEventListener('mouseup',function(event){cfg.onMouseUp(event,_this15);});}if(cfg.onMouseMove){dotClickable.addEventListener('mousemove',function(event){cfg.onMouseMove(event,_this15);});}if(cfg.onContextMenu){dotClickable.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this15);event.preventDefault();});}this.setPos(cfg.x||0,cfg.y||0);this.setFillColor(cfg.fillColor);this.setBorderColor(cfg.borderColor);}_createClass(Dot,[{key:"setPos",value:function setPos(x,y){this._x=x;this._y=y;var dotStyle=this._dot.style;dotStyle["left"]=Math.round(x)-4+'px';dotStyle["top"]=Math.round(y)-4+'px';var dotClickableStyle=this._dotClickable.style;dotClickableStyle["left"]=Math.round(x)-9+'px';dotClickableStyle["top"]=Math.round(y)-9+'px';}},{key:"setFillColor",value:function setFillColor(color){this._dot.style.background=color||"lightgreen";}},{key:"setBorderColor",value:function setBorderColor(color){this._dot.style.border="solid 2px"+(color||"black");}},{key:"setOpacity",value:function setOpacity(opacity){this._dot.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setClickable",value:function setClickable(clickable){this._dotClickable.style["pointer-events"]=!!clickable?"all":"none";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._dot.classList.add(this._highlightClass);}else{this._dot.classList.remove(this._highlightClass);}}},{key:"destroy",value:function destroy(){this.setVisible(false);if(this._dot.parentElement){this._dot.parentElement.removeChild(this._dot);}if(this._dotClickable.parentElement){this._dotClickable.parentElement.removeChild(this._dotClickable);}}}]);return Dot;}();/** @private */var Label=/*#__PURE__*/function(){function Label(parentElement){var _this16=this;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Label);this._highlightClass="viewer-ruler-label-highlighted";this._prefix=cfg.prefix||"";this._x=0;this._y=0;this._visible=true;this._culled=false;this._label=document.createElement('div');this._label.className+=this._label.className?' viewer-ruler-label':'viewer-ruler-label';var label=this._label;var style=label.style;style["border-radius"]=5+"px";style.color="white";style.padding="4px";style.border="solid 1px";style.background="lightgreen";style.position="absolute";style["z-index"]=cfg.zIndex===undefined?"5000005":cfg.zIndex;style.width="auto";style.height="auto";style.visibility="visible";style.top=0+"px";style.left=0+"px";style["pointer-events"]="all";style["opacity"]=1.0;if(cfg.onContextMenu);label.innerText="";parentElement.appendChild(label);this.setPos(cfg.x||0,cfg.y||0);this.setFillColor(cfg.fillColor);this.setBorderColor(cfg.fillColor);this.setText(cfg.text);if(cfg.onMouseOver){label.addEventListener('mouseover',function(event){cfg.onMouseOver(event,_this16);event.preventDefault();});}if(cfg.onMouseLeave){label.addEventListener('mouseleave',function(event){cfg.onMouseLeave(event,_this16);event.preventDefault();});}if(cfg.onMouseWheel){label.addEventListener('wheel',function(event){cfg.onMouseWheel(event,_this16);});}if(cfg.onMouseDown){label.addEventListener('mousedown',function(event){cfg.onMouseDown(event,_this16);});}if(cfg.onMouseUp){label.addEventListener('mouseup',function(event){cfg.onMouseUp(event,_this16);});}if(cfg.onMouseMove){label.addEventListener('mousemove',function(event){cfg.onMouseMove(event,_this16);});}if(cfg.onContextMenu){label.addEventListener('contextmenu',function(event){cfg.onContextMenu(event,_this16);event.preventDefault();});}}_createClass(Label,[{key:"setPos",value:function setPos(x,y){this._x=x;this._y=y;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setPosOnWire",value:function setPosOnWire(x1,y1,x2,y2){var x=x1+(x2-x1)*0.5;var y=y1+(y2-y1)*0.5;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setPosBetweenWires",value:function setPosBetweenWires(x1,y1,x2,y2,x3,y3){var x=(x1+x2+x3)/3;var y=(y1+y2+y3)/3;var style=this._label.style;style["left"]=Math.round(x)-20+'px';style["top"]=Math.round(y)-12+'px';}},{key:"setText",value:function setText(text){this._label.innerHTML=this._prefix+(text||"");}},{key:"setFillColor",value:function setFillColor(color){this._fillColor=color||"lightgreen";this._label.style.background=this._fillColor;}},{key:"setBorderColor",value:function setBorderColor(color){this._borderColor=color||"black";this._label.style.border="solid 1px "+this._borderColor;}},{key:"setOpacity",value:function setOpacity(opacity){this._label.style.opacity=opacity;}},{key:"setVisible",value:function setVisible(visible){if(this._visible===visible){return;}this._visible=!!visible;this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setCulled",value:function setCulled(culled){if(this._culled===culled){return;}this._culled=!!culled;this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden";}},{key:"setHighlighted",value:function setHighlighted(highlighted){if(this._highlighted===highlighted){return;}this._highlighted=!!highlighted;if(this._highlighted){this._label.classList.add(this._highlightClass);}else{this._label.classList.remove(this._highlightClass);}}},{key:"setClickable",value:function setClickable(clickable){this._label.style["pointer-events"]=!!clickable?"all":"none";}},{key:"destroy",value:function destroy(){if(this._label.parentElement){this._label.parentElement.removeChild(this._label);}}}]);return Label;}();var originVec=math.vec3();var targetVec=math.vec3();/** * @desc Measures the angle indicated by three 3D points. * * See {@link AngleMeasurementsPlugin} for more info. @@ -2732,7 +2732,7 @@ wireClickableStyle['-webkit-transform-origin']="0 0";wireClickableStyle['-moz-tr */function AngleMeasurement(plugin){var _this17;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,AngleMeasurement);_this17=_super5.call(this,plugin.viewer.scene,cfg);/** * The {@link AngleMeasurementsPlugin} that owns this AngleMeasurement. * @type {AngleMeasurementsPlugin} - */_this17.plugin=plugin;_this17._container=cfg.container;if(!_this17._container){throw"config missing: container";}_this17._color=cfg.color||plugin.defaultColor;var scene=_this17.plugin.viewer.scene;_this17._originMarker=new Marker(scene,cfg.origin);_this17._cornerMarker=new Marker(scene,cfg.corner);_this17._targetMarker=new Marker(scene,cfg.target);_this17._originWorld=math.vec3();_this17._cornerWorld=math.vec3();_this17._targetWorld=math.vec3();_this17._wp=new Float64Array(12);_this17._vp=new Float64Array(12);_this17._pp=new Float64Array(12);_this17._cp=new Int16Array(6);var onMouseOver=cfg.onMouseOver?function(event){cfg.onMouseOver(event,_assertThisInitialized(_this17));}:null;var onMouseLeave=cfg.onMouseLeave?function(event){cfg.onMouseLeave(event,_assertThisInitialized(_this17));}:null;var onContextMenu=cfg.onContextMenu?function(event){cfg.onContextMenu(event,_assertThisInitialized(_this17));}:null;var onMouseWheel=function onMouseWheel(event){_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));};_this17._originDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._cornerDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._targetDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._originWire=new Wire(_this17._container,{color:_this17._color||"blue",thickness:1,zIndex:plugin.zIndex,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._targetWire=new Wire(_this17._container,{color:_this17._color||"red",thickness:1,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._angleLabel=new Label(_this17._container,{fillColor:_this17._color||"#00BBFF",prefix:"",text:"",zIndex:plugin.zIndex+2,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this17._wpDirty=false;_this17._vpDirty=false;_this17._cpDirty=false;_this17._visible=false;_this17._originVisible=false;_this17._cornerVisible=false;_this17._targetVisible=false;_this17._originWireVisible=false;_this17._targetWireVisible=false;_this17._angleVisible=false;_this17._labelsVisible=false;_this17._clickable=false;_this17._originMarker.on("worldPos",function(value){_this17._originWorld.set(value||[0,0,0]);_this17._wpDirty=true;_this17._needUpdate(0);// No lag + */_this17.plugin=plugin;_this17._container=cfg.container;if(!_this17._container){throw"config missing: container";}_this17._color=cfg.color||plugin.defaultColor;var scene=_this17.plugin.viewer.scene;_this17._originMarker=new Marker(scene,cfg.origin);_this17._cornerMarker=new Marker(scene,cfg.corner);_this17._targetMarker=new Marker(scene,cfg.target);_this17._originWorld=math.vec3();_this17._cornerWorld=math.vec3();_this17._targetWorld=math.vec3();_this17._wp=new Float64Array(12);_this17._vp=new Float64Array(12);_this17._pp=new Float64Array(12);_this17._cp=new Int16Array(6);var onMouseOver=cfg.onMouseOver?function(event){cfg.onMouseOver(event,_assertThisInitialized(_this17));_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover',event));}:null;var onMouseLeave=cfg.onMouseLeave?function(event){cfg.onMouseLeave(event,_assertThisInitialized(_this17));_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave',event));}:null;var onContextMenu=cfg.onContextMenu?function(event){cfg.onContextMenu(event,_assertThisInitialized(_this17));}:null;var onMouseWheel=function onMouseWheel(event){_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));};var onMouseDown=function onMouseDown(event){_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown',event));};var onMouseUp=function onMouseUp(event){_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup',event));};var onMouseMove=function onMouseMove(event){_this17.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove',event));};_this17._originDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._cornerDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._targetDot=new Dot(_this17._container,{fillColor:_this17._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._originWire=new Wire(_this17._container,{color:_this17._color||"blue",thickness:1,zIndex:plugin.zIndex,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._targetWire=new Wire(_this17._container,{color:_this17._color||"red",thickness:1,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._angleLabel=new Label(_this17._container,{fillColor:_this17._color||"#00BBFF",prefix:"",text:"",zIndex:plugin.zIndex+2,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this17._wpDirty=false;_this17._vpDirty=false;_this17._cpDirty=false;_this17._visible=false;_this17._originVisible=false;_this17._cornerVisible=false;_this17._targetVisible=false;_this17._originWireVisible=false;_this17._targetWireVisible=false;_this17._angleVisible=false;_this17._labelsVisible=false;_this17._clickable=false;_this17._originMarker.on("worldPos",function(value){_this17._originWorld.set(value||[0,0,0]);_this17._wpDirty=true;_this17._needUpdate(0);// No lag });_this17._cornerMarker.on("worldPos",function(value){_this17._cornerWorld.set(value||[0,0,0]);_this17._wpDirty=true;_this17._needUpdate(0);// No lag });_this17._targetMarker.on("worldPos",function(value){_this17._targetWorld.set(value||[0,0,0]);_this17._wpDirty=true;_this17._needUpdate(0);// No lag });_this17._onViewMatrix=scene.camera.on("viewMatrix",function(){_this17._vpDirty=true;_this17._needUpdate(0);// No lag @@ -3231,7 +3231,7 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi * @param {Entity} params.target.entity Target Entity. * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}. * @returns {AngleMeasurement} The new {@link AngleMeasurement}. - */},{key:"createMeasurement",value:function createMeasurement(){var _this21=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(this.viewer.scene.components[params.id]){this.error("Viewer scene component with this ID already exists: "+params.id);delete params.id;}var origin=params.origin;var corner=params.corner;var target=params.target;var measurement=new AngleMeasurement(this,{id:params.id,plugin:this,container:this._container,origin:{entity:origin.entity,worldPos:origin.worldPos},corner:{entity:corner.entity,worldPos:corner.worldPos},target:{entity:target.entity,worldPos:target.worldPos},visible:params.visible,originVisible:true,originWireVisible:true,cornerVisible:true,targetWireVisible:true,targetVisible:true,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});this._measurements[measurement.id]=measurement;measurement.on("destroyed",function(){delete _this21._measurements[measurement.id];});this.fire("measurementCreated",measurement);return measurement;}/** + */},{key:"createMeasurement",value:function createMeasurement(){var _this21=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(this.viewer.scene.components[params.id]){this.error("Viewer scene component with this ID already exists: "+params.id);delete params.id;}var origin=params.origin;var corner=params.corner;var target=params.target;var measurement=new AngleMeasurement(this,{id:params.id,plugin:this,container:this._container,origin:{entity:origin.entity,worldPos:origin.worldPos},corner:{entity:corner.entity,worldPos:corner.worldPos},target:{entity:target.entity,worldPos:target.worldPos},visible:params.visible,originVisible:true,originWireVisible:true,cornerVisible:true,targetWireVisible:true,targetVisible:true,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});this._measurements[measurement.id]=measurement;measurement.on("destroyed",function(){delete _this21._measurements[measurement.id];});measurement.clickable=true;this.fire("measurementCreated",measurement);return measurement;}/** * Destroys a {@link AngleMeasurement}. * * @param {String} id ID of AngleMeasurement to destroy. @@ -18295,7 +18295,7 @@ origin:eye,direction:look});look=hit?hit.worldPos:math.addVec3(eye,look,tempVec3 */function DistanceMeasurement(plugin){var _this78;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,DistanceMeasurement);_this78=_super108.call(this,plugin.viewer.scene,cfg);/** * The {@link DistanceMeasurementsPlugin} that owns this DistanceMeasurement. * @type {DistanceMeasurementsPlugin} - */_this78.plugin=plugin;_this78._container=cfg.container;if(!_this78._container){throw"config missing: container";}_this78._eventSubs={};var scene=_this78.plugin.viewer.scene;_this78._originMarker=new Marker(scene,cfg.origin);_this78._targetMarker=new Marker(scene,cfg.target);_this78._originWorld=math.vec3();_this78._targetWorld=math.vec3();_this78._wp=new Float64Array(24);_this78._vp=new Float64Array(24);_this78._pp=new Float64Array(24);_this78._cp=new Float64Array(8);_this78._xAxisLabelCulled=false;_this78._yAxisLabelCulled=false;_this78._zAxisLabelCulled=false;_this78._color=cfg.color||_this78.plugin.defaultColor;var onMouseOver=cfg.onMouseOver?function(event){cfg.onMouseOver(event,_assertThisInitialized(_this78));}:null;var onMouseLeave=cfg.onMouseLeave?function(event){cfg.onMouseLeave(event,_assertThisInitialized(_this78));}:null;var onContextMenu=cfg.onContextMenu?function(event){cfg.onContextMenu(event,_assertThisInitialized(_this78));}:null;var onMouseWheel=function onMouseWheel(event){_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));};_this78._originDot=new Dot(_this78._container,{fillColor:_this78._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._targetDot=new Dot(_this78._container,{fillColor:_this78._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._lengthWire=new Wire(_this78._container,{color:_this78._color,thickness:2,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._xAxisWire=new Wire(_this78._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._yAxisWire=new Wire(_this78._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._zAxisWire=new Wire(_this78._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._lengthLabel=new Label(_this78._container,{fillColor:_this78._color,prefix:"",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+4:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._xAxisLabel=new Label(_this78._container,{fillColor:"red",prefix:"X",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._yAxisLabel=new Label(_this78._container,{fillColor:"green",prefix:"Y",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._zAxisLabel=new Label(_this78._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onContextMenu:onContextMenu});_this78._wpDirty=false;_this78._vpDirty=false;_this78._cpDirty=false;_this78._sectionPlanesDirty=true;_this78._visible=false;_this78._originVisible=false;_this78._targetVisible=false;_this78._wireVisible=false;_this78._axisVisible=false;_this78._xAxisVisible=false;_this78._yAxisVisible=false;_this78._zAxisVisible=false;_this78._axisEnabled=true;_this78._labelsVisible=false;_this78._clickable=false;_this78._originMarker.on("worldPos",function(value){_this78._originWorld.set(value||[0,0,0]);_this78._wpDirty=true;_this78._needUpdate(0);// No lag + */_this78.plugin=plugin;_this78._container=cfg.container;if(!_this78._container){throw"config missing: container";}_this78._eventSubs={};var scene=_this78.plugin.viewer.scene;_this78._originMarker=new Marker(scene,cfg.origin);_this78._targetMarker=new Marker(scene,cfg.target);_this78._originWorld=math.vec3();_this78._targetWorld=math.vec3();_this78._wp=new Float64Array(24);_this78._vp=new Float64Array(24);_this78._pp=new Float64Array(24);_this78._cp=new Float64Array(8);_this78._xAxisLabelCulled=false;_this78._yAxisLabelCulled=false;_this78._zAxisLabelCulled=false;_this78._color=cfg.color||_this78.plugin.defaultColor;var onMouseOver=cfg.onMouseOver?function(event){cfg.onMouseOver(event,_assertThisInitialized(_this78));_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseover',event));}:null;var onMouseLeave=cfg.onMouseLeave?function(event){cfg.onMouseLeave(event,_assertThisInitialized(_this78));_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseleave',event));}:null;var onMouseDown=function onMouseDown(event){_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousedown',event));};var onMouseUp=function onMouseUp(event){_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mouseup',event));};var onMouseMove=function onMouseMove(event){_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent('mousemove',event));};var onContextMenu=cfg.onContextMenu?function(event){cfg.onContextMenu(event,_assertThisInitialized(_this78));}:null;var onMouseWheel=function onMouseWheel(event){_this78.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));};_this78._originDot=new Dot(_this78._container,{fillColor:_this78._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._targetDot=new Dot(_this78._container,{fillColor:_this78._color,zIndex:plugin.zIndex!==undefined?plugin.zIndex+2:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._lengthWire=new Wire(_this78._container,{color:_this78._color,thickness:2,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._xAxisWire=new Wire(_this78._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._yAxisWire=new Wire(_this78._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._zAxisWire=new Wire(_this78._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:plugin.zIndex!==undefined?plugin.zIndex+1:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._lengthLabel=new Label(_this78._container,{fillColor:_this78._color,prefix:"",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+4:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._xAxisLabel=new Label(_this78._container,{fillColor:"red",prefix:"X",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._yAxisLabel=new Label(_this78._container,{fillColor:"green",prefix:"Y",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._zAxisLabel=new Label(_this78._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:plugin.zIndex!==undefined?plugin.zIndex+3:undefined,onMouseOver:onMouseOver,onMouseLeave:onMouseLeave,onMouseWheel:onMouseWheel,onMouseDown:onMouseDown,onMouseUp:onMouseUp,onMouseMove:onMouseMove,onContextMenu:onContextMenu});_this78._wpDirty=false;_this78._vpDirty=false;_this78._cpDirty=false;_this78._sectionPlanesDirty=true;_this78._visible=false;_this78._originVisible=false;_this78._targetVisible=false;_this78._wireVisible=false;_this78._axisVisible=false;_this78._xAxisVisible=false;_this78._yAxisVisible=false;_this78._zAxisVisible=false;_this78._axisEnabled=true;_this78._labelsVisible=false;_this78._clickable=false;_this78._originMarker.on("worldPos",function(value){_this78._originWorld.set(value||[0,0,0]);_this78._wpDirty=true;_this78._needUpdate(0);// No lag });_this78._targetMarker.on("worldPos",function(value){_this78._targetWorld.set(value||[0,0,0]);_this78._wpDirty=true;_this78._needUpdate(0);// No lag });_this78._onViewMatrix=scene.camera.on("viewMatrix",function(){_this78._vpDirty=true;_this78._needUpdate(0);// No lag });_this78._onProjMatrix=scene.camera.on("projMatrix",function(){_this78._cpDirty=true;_this78._needUpdate();});_this78._onCanvasBoundary=scene.canvas.on("boundary",function(){_this78._cpDirty=true;_this78._needUpdate(0);// No lag diff --git a/dist/xeokit-sdk.min.cjs.js b/dist/xeokit-sdk.min.cjs.js index 4daf45ae3d..88fc7ff705 100644 --- a/dist/xeokit-sdk.min.cjs.js +++ b/dist/xeokit-sdk.min.cjs.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}const t=new e;class s{constructor(e){this.id=e,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class n{constructor(){this.items=[]}}class i{constructor(e,t,s,n,i){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=n,this.getShown=i,this.itemElement=null,this.subMenu=null,this.enabled=!0}}let a=!0,r=a?Float64Array:Float32Array;const l=new r(3),o=new r(16),c=new r(16),u=new r(4),h={setDoublePrecisionEnabled(e){a=e,r=a?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>a,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(e,t){const s=t.indexOf("#");return s===e.length&&t.startsWith(e)?t.substring(s+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new r(e||2),vec3:e=>new r(e||3),vec4:e=>new r(e||4),mat3:e=>new r(e||9),mat3ToMat4:(e,t=new r(16))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t),mat4:e=>new r(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const n=new r(2);for(let i=0,a=e.length;i{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,s=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&s]}${e[s>>8&255]}-${e[s>>16&15|64]}${e[s>>24&255]}-${e[63&n|128]}${e[n>>8&255]}-${e[n>>16&255]}${e[n>>24&255]}${e[255&i]}${e[i>>8&255]}${e[i>>16&255]}${e[i>>24&255]}`}})(),clamp:(e,t,s)=>Math.max(t,Math.min(s,e)),fmod(e,t){if(ee[0]===t[0]&&e[1]===t[1]&&e[2]===t[2],negateVec3:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t),negateVec4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t),addVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s),addVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s),addVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s),addVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s),subVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s),subVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s),subVec2:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s),geometricMeanVec2(...e){const t=new r(e[0]);for(let s=1;s(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s),subScalarVec4:(e,t,s)=>(s||(s=e),s[0]=t-e[0],s[1]=t-e[1],s[2]=t-e[2],s[3]=t-e[3],s),mulVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]*t[0],s[1]=e[1]*t[1],s[2]=e[2]*t[2],s[3]=e[3]*t[3],s),mulVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s),mulVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s),mulVec2Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s),divVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s),divVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s[3]=e[3]/t[3],s),divScalarVec3:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s),divVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s),divVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s[3]=e[3]/t,s),divScalarVec4:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s[3]=e/t[3],s),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const s=e[0],n=e[1],i=e[2],a=t[0],r=t[1],l=t[2];return[n*l-i*r,i*a-s*l,s*r-n*a,0]},cross3Vec3(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=t[0],l=t[1],o=t[2];return s[0]=i*o-a*l,s[1]=a*r-n*o,s[2]=n*l-i*r,s},sqLenVec4:e=>h.dotVec4(e,e),lenVec4:e=>Math.sqrt(h.sqLenVec4(e)),dotVec3:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],dotVec2:(e,t)=>e[0]*t[0]+e[1]*t[1],sqLenVec3:e=>h.dotVec3(e,e),sqLenVec2:e=>h.dotVec2(e,e),lenVec3:e=>Math.sqrt(h.sqLenVec3(e)),distVec3:(()=>{const e=new r(3);return(t,s)=>h.lenVec3(h.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(h.sqLenVec2(e)),distVec2:(()=>{const e=new r(2);return(t,s)=>h.lenVec2(h.subVec2(t,s,e))})(),rcpVec3:(e,t)=>h.divScalarVec3(1,e,t),normalizeVec4(e,t){const s=1/h.lenVec4(e);return h.mulVec4Scalar(e,s,t)},normalizeVec3(e,t){const s=1/h.lenVec3(e);return h.mulVec3Scalar(e,s,t)},normalizeVec2(e,t){const s=1/h.lenVec2(e);return h.mulVec2Scalar(e,s,t)},angleVec3(e,t){let s=h.dotVec3(e,t)/Math.sqrt(h.sqLenVec3(e)*h.sqLenVec3(t));return s=s<-1?-1:s>1?1:s,Math.acos(s)},vec3FromMat4Scale:(()=>{const e=new r(3);return(t,s)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],s[0]=h.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],s[1]=h.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],s[2]=h.lenVec3(e),s)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let s=0,n=(t=Array.prototype.slice.call(t)).length;s({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||h.vec3())[0]=e.x,t[1]=e.y,t[2]=e.z,t),dupMat4:e=>e.slice(0,16),mat4To3:e=>[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]],m4s:e=>[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],setMat4ToZeroes:()=>h.m4s(0),setMat4ToOnes:()=>h.m4s(1),diagonalMat4v:e=>new r([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,n)=>h.diagonalMat4v([e,t,s,n]),diagonalMat4s:e=>h.diagonalMat4c(e,e,e,e),identityMat4:(e=new r(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),identityMat3:(e=new r(9))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e),isIdentityMat4:e=>1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15],negateMat4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t),addMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s[4]=e[4]+t[4],s[5]=e[5]+t[5],s[6]=e[6]+t[6],s[7]=e[7]+t[7],s[8]=e[8]+t[8],s[9]=e[9]+t[9],s[10]=e[10]+t[10],s[11]=e[11]+t[11],s[12]=e[12]+t[12],s[13]=e[13]+t[13],s[14]=e[14]+t[14],s[15]=e[15]+t[15],s),addMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s[4]=e[4]+t,s[5]=e[5]+t,s[6]=e[6]+t,s[7]=e[7]+t,s[8]=e[8]+t,s[9]=e[9]+t,s[10]=e[10]+t,s[11]=e[11]+t,s[12]=e[12]+t,s[13]=e[13]+t,s[14]=e[14]+t,s[15]=e[15]+t,s),addScalarMat4:(e,t,s)=>h.addMat4Scalar(t,e,s),subMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s[4]=e[4]-t[4],s[5]=e[5]-t[5],s[6]=e[6]-t[6],s[7]=e[7]-t[7],s[8]=e[8]-t[8],s[9]=e[9]-t[9],s[10]=e[10]-t[10],s[11]=e[11]-t[11],s[12]=e[12]-t[12],s[13]=e[13]-t[13],s[14]=e[14]-t[14],s[15]=e[15]-t[15],s),subMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s[4]=e[4]-t,s[5]=e[5]-t,s[6]=e[6]-t,s[7]=e[7]-t,s[8]=e[8]-t,s[9]=e[9]-t,s[10]=e[10]-t,s[11]=e[11]-t,s[12]=e[12]-t,s[13]=e[13]-t,s[14]=e[14]-t,s[15]=e[15]-t,s),subScalarMat4:(e,t,s)=>(s||(s=t),s[0]=e-t[0],s[1]=e-t[1],s[2]=e-t[2],s[3]=e-t[3],s[4]=e-t[4],s[5]=e-t[5],s[6]=e-t[6],s[7]=e-t[7],s[8]=e-t[8],s[9]=e-t[9],s[10]=e-t[10],s[11]=e-t[11],s[12]=e-t[12],s[13]=e-t[13],s[14]=e-t[14],s[15]=e-t[15],s),mulMat4(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=e[3],l=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=e[9],A=e[10],d=e[11],f=e[12],I=e[13],y=e[14],m=e[15],v=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],x=t[15];return s[0]=v*n+w*l+g*h+E*f,s[1]=v*i+w*o+g*p+E*I,s[2]=v*a+w*c+g*A+E*y,s[3]=v*r+w*u+g*d+E*m,s[4]=T*n+b*l+D*h+P*f,s[5]=T*i+b*o+D*p+P*I,s[6]=T*a+b*c+D*A+P*y,s[7]=T*r+b*u+D*d+P*m,s[8]=R*n+C*l+_*h+B*f,s[9]=R*i+C*o+_*p+B*I,s[10]=R*a+C*c+_*A+B*y,s[11]=R*r+C*u+_*d+B*m,s[12]=O*n+S*l+N*h+x*f,s[13]=O*i+S*o+N*p+x*I,s[14]=O*a+S*c+N*A+x*y,s[15]=O*r+S*u+N*d+x*m,s},mulMat3(e,t,s){s||(s=new r(9));const n=e[0],i=e[3],a=e[6],l=e[1],o=e[4],c=e[7],u=e[2],h=e[5],p=e[8],A=t[0],d=t[3],f=t[6],I=t[1],y=t[4],m=t[7],v=t[2],w=t[5],g=t[8];return s[0]=n*A+i*I+a*v,s[3]=n*d+i*y+a*w,s[6]=n*f+i*m+a*g,s[1]=l*A+o*I+c*v,s[4]=l*d+o*y+c*w,s[7]=l*f+o*m+c*g,s[2]=u*A+h*I+p*v,s[5]=u*d+h*y+p*w,s[8]=u*f+h*m+p*g,s},mulMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s[4]=e[4]*t,s[5]=e[5]*t,s[6]=e[6]*t,s[7]=e[7]*t,s[8]=e[8]*t,s[9]=e[9]*t,s[10]=e[10]*t,s[11]=e[11]*t,s[12]=e[12]*t,s[13]=e[13]*t,s[14]=e[14]*t,s[15]=e[15]*t,s),mulMat4v4(e,t,s=h.vec4()){const n=t[0],i=t[1],a=t[2],r=t[3];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12]*r,s[1]=e[1]*n+e[5]*i+e[9]*a+e[13]*r,s[2]=e[2]*n+e[6]*i+e[10]*a+e[14]*r,s[3]=e[3]*n+e[7]*i+e[11]*a+e[15]*r,s},transposeMat4(e,t){const s=e[4],n=e[14],i=e[8],a=e[13],r=e[12],l=e[9];if(!t||e===t){const t=e[1],o=e[2],c=e[3],u=e[6],h=e[7],p=e[11];return e[1]=s,e[2]=i,e[3]=r,e[4]=t,e[6]=l,e[7]=a,e[8]=o,e[9]=u,e[11]=n,e[12]=c,e[13]=h,e[14]=p,e}return t[0]=e[0],t[1]=s,t[2]=i,t[3]=r,t[4]=e[1],t[5]=e[5],t[6]=l,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=n,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const s=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4(e){const t=e[0],s=e[1],n=e[2],i=e[3],a=e[4],r=e[5],l=e[6],o=e[7],c=e[8],u=e[9],h=e[10],p=e[11],A=e[12],d=e[13],f=e[14],I=e[15];return A*u*l*i-c*d*l*i-A*r*h*i+a*d*h*i+c*r*f*i-a*u*f*i-A*u*n*o+c*d*n*o+A*s*h*o-t*d*h*o-c*s*f*o+t*u*f*o+A*r*n*p-a*d*n*p-A*s*l*p+t*d*l*p+a*s*f*p-t*r*f*p-c*r*n*I+a*u*n*I+c*s*l*I-t*u*l*I-a*s*h*I+t*r*h*I},inverseMat4(e,t){t||(t=e);const s=e[0],n=e[1],i=e[2],a=e[3],r=e[4],l=e[5],o=e[6],c=e[7],u=e[8],h=e[9],p=e[10],A=e[11],d=e[12],f=e[13],I=e[14],y=e[15],m=s*l-n*r,v=s*o-i*r,w=s*c-a*r,g=n*o-i*l,E=n*c-a*l,T=i*c-a*o,b=u*f-h*d,D=u*I-p*d,P=u*y-A*d,R=h*I-p*f,C=h*y-A*f,_=p*y-A*I,B=1/(m*_-v*C+w*R+g*P-E*D+T*b);return t[0]=(l*_-o*C+c*R)*B,t[1]=(-n*_+i*C-a*R)*B,t[2]=(f*T-I*E+y*g)*B,t[3]=(-h*T+p*E-A*g)*B,t[4]=(-r*_+o*P-c*D)*B,t[5]=(s*_-i*P+a*D)*B,t[6]=(-d*T+I*w-y*v)*B,t[7]=(u*T-p*w+A*v)*B,t[8]=(r*C-l*P+c*b)*B,t[9]=(-s*C+n*P-a*b)*B,t[10]=(d*E-f*w+y*m)*B,t[11]=(-u*E+h*w-A*m)*B,t[12]=(-r*R+l*D-o*b)*B,t[13]=(s*R-n*D+i*b)*B,t[14]=(-d*g+f*v-I*m)*B,t[15]=(u*g-h*v+p*m)*B,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const s=t||h.identityMat4();return s[12]=e[0],s[13]=e[1],s[14]=e[2],s},translationMat3v(e,t){const s=t||h.identityMat3();return s[6]=e[0],s[7]=e[1],s},translationMat4c:(()=>{const e=new r(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,h.translationMat4v(e,i))})(),translationMat4s:(e,t)=>h.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>h.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,s,n){const i=n[3];n[0]+=i*e,n[1]+=i*t,n[2]+=i*s;const a=n[7];n[4]+=a*e,n[5]+=a*t,n[6]+=a*s;const r=n[11];n[8]+=r*e,n[9]+=r*t,n[10]+=r*s;const l=n[15];return n[12]+=l*e,n[13]+=l*t,n[14]+=l*s,n},setMat4Translation:(e,t,s)=>(s[0]=e[0],s[1]=e[1],s[2]=e[2],s[3]=e[3],s[4]=e[4],s[5]=e[5],s[6]=e[6],s[7]=e[7],s[8]=e[8],s[9]=e[9],s[10]=e[10],s[11]=e[11],s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=e[15],s),rotationMat4v(e,t,s){const n=h.normalizeVec4([t[0],t[1],t[2],0],[]),i=Math.sin(e),a=Math.cos(e),r=1-a,l=n[0],o=n[1],c=n[2];let u,p,A,d,f,I;return u=l*o,p=o*c,A=c*l,d=l*i,f=o*i,I=c*i,(s=s||h.mat4())[0]=r*l*l+a,s[1]=r*u+I,s[2]=r*A-f,s[3]=0,s[4]=r*u-I,s[5]=r*o*o+a,s[6]=r*p+d,s[7]=0,s[8]=r*A+f,s[9]=r*p-d,s[10]=r*c*c+a,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,n,i)=>h.rotationMat4v(e,[t,s,n],i),scalingMat4v:(e,t=h.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=h.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new r(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,h.scalingMat4v(e,i))})(),scaleMat4c:(e,t,s,n)=>(n[0]*=e,n[4]*=t,n[8]*=s,n[1]*=e,n[5]*=t,n[9]*=s,n[2]*=e,n[6]*=t,n[10]*=s,n[3]*=e,n[7]*=t,n[11]*=s,n),scaleMat4v(e,t){const s=e[0],n=e[1],i=e[2];return t[0]*=s,t[4]*=n,t[8]*=i,t[1]*=s,t[5]*=n,t[9]*=i,t[2]*=s,t[6]*=n,t[10]*=i,t[3]*=s,t[7]*=n,t[11]*=i,t},scalingMat4s:e=>h.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=h.mat4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=n+n,o=i+i,c=a+a,u=n*l,p=n*o,A=n*c,d=i*o,f=i*c,I=a*c,y=r*l,m=r*o,v=r*c;return s[0]=1-(d+I),s[1]=p+v,s[2]=A-m,s[3]=0,s[4]=p-v,s[5]=1-(u+I),s[6]=f+y,s[7]=0,s[8]=A+m,s[9]=f-y,s[10]=1-(u+d),s[11]=0,s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=1,s},mat4ToEuler(e,t,s=h.vec4()){const n=h.clamp,i=e[0],a=e[4],r=e[8],l=e[1],o=e[5],c=e[9],u=e[2],p=e[6],A=e[10];return"XYZ"===t?(s[1]=Math.asin(n(r,-1,1)),Math.abs(r)<.99999?(s[0]=Math.atan2(-c,A),s[2]=Math.atan2(-a,i)):(s[0]=Math.atan2(p,o),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-n(c,-1,1)),Math.abs(c)<.99999?(s[1]=Math.atan2(r,A),s[2]=Math.atan2(l,o)):(s[1]=Math.atan2(-u,i),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(n(p,-1,1)),Math.abs(p)<.99999?(s[1]=Math.atan2(-u,A),s[2]=Math.atan2(-a,o)):(s[1]=0,s[2]=Math.atan2(l,i))):"ZYX"===t?(s[1]=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(s[0]=Math.atan2(p,A),s[2]=Math.atan2(l,i)):(s[0]=0,s[2]=Math.atan2(-a,o))):"YZX"===t?(s[2]=Math.asin(n(l,-1,1)),Math.abs(l)<.99999?(s[0]=Math.atan2(-c,o),s[1]=Math.atan2(-u,i)):(s[0]=0,s[1]=Math.atan2(r,A))):"XZY"===t&&(s[2]=Math.asin(-n(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(p,o),s[1]=Math.atan2(r,i)):(s[0]=Math.atan2(-c,A),s[1]=0)),s},composeMat4:(e,t,s,n=h.mat4())=>(h.quaternionToRotationMat4(t,n),h.scaleMat4v(s,n),h.translateMat4v(e,n),n),decomposeMat4:(()=>{const e=new r(3),t=new r(16);return function(s,n,i,a){e[0]=s[0],e[1]=s[1],e[2]=s[2];let r=h.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const l=h.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const o=h.lenVec3(e);h.determinantMat4(s)<0&&(r=-r),n[0]=s[12],n[1]=s[13],n[2]=s[14],t.set(s);const c=1/r,u=1/l,p=1/o;return t[0]*=c,t[1]*=c,t[2]*=c,t[4]*=u,t[5]*=u,t[6]*=u,t[8]*=p,t[9]*=p,t[10]*=p,h.mat4ToQuaternion(t,i),a[0]=r,a[1]=l,a[2]=o,this}})(),getColMat4(e,t){const s=4*t;return[e[s],e[s+1],e[s+2],e[s+3]]},setRowMat4(e,t,s){e[t]=s[0],e[t+4]=s[1],e[t+8]=s[2],e[t+12]=s[3]},lookAtMat4v(e,t,s,n){n||(n=h.mat4());const i=e[0],a=e[1],r=e[2],l=s[0],o=s[1],c=s[2],u=t[0],p=t[1],A=t[2];if(i===u&&a===p&&r===A)return h.identityMat4();let d,f,I,y,m,v,w,g,E,T;return d=i-u,f=a-p,I=r-A,T=1/Math.sqrt(d*d+f*f+I*I),d*=T,f*=T,I*=T,y=o*I-c*f,m=c*d-l*I,v=l*f-o*d,T=Math.sqrt(y*y+m*m+v*v),T?(T=1/T,y*=T,m*=T,v*=T):(y=0,m=0,v=0),w=f*v-I*m,g=I*y-d*v,E=d*m-f*y,T=Math.sqrt(w*w+g*g+E*E),T?(T=1/T,w*=T,g*=T,E*=T):(w=0,g=0,E=0),n[0]=y,n[1]=w,n[2]=d,n[3]=0,n[4]=m,n[5]=g,n[6]=f,n[7]=0,n[8]=v,n[9]=E,n[10]=I,n[11]=0,n[12]=-(y*i+m*a+v*r),n[13]=-(w*i+g*a+E*r),n[14]=-(d*i+f*a+I*r),n[15]=1,n},lookAtMat4c:(e,t,s,n,i,a,r,l,o)=>h.lookAtMat4v([e,t,s],[n,i,a],[r,l,o],[]),orthoMat4c(e,t,s,n,i,a,r){r||(r=h.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/c,r[11]=0,r[12]=-(e+t)/l,r[13]=-(n+s)/o,r[14]=-(a+i)/c,r[15]=1,r},frustumMat4v(e,t,s){s||(s=h.mat4());const n=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];h.addVec4(i,n,o),h.subVec4(i,n,c);const a=2*n[2],r=c[0],l=c[1],u=c[2];return s[0]=a/r,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=a/l,s[6]=0,s[7]=0,s[8]=o[0]/r,s[9]=o[1]/l,s[10]=-o[2]/u,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i[2]/u,s[15]=0,s},frustumMat4(e,t,s,n,i,a,r){r||(r=h.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2*i/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*i/o,r[6]=0,r[7]=0,r[8]=(t+e)/l,r[9]=(n+s)/o,r[10]=-(a+i)/c,r[11]=-1,r[12]=0,r[13]=0,r[14]=-a*i*2/c,r[15]=0,r},perspectiveMat4(e,t,s,n,i){const a=[],r=[];return a[2]=s,r[2]=n,r[1]=a[2]*Math.tan(e/2),a[1]=-r[1],r[0]=r[1]*t,a[0]=-r[0],h.frustumMat4v(a,r,i)},compareMat4:(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15],transformPoint3(e,t,s=h.vec3()){const n=t[0],i=t[1],a=t[2];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12],s[1]=e[1]*n+e[5]*i+e[9]*a+e[13],s[2]=e[2]*n+e[6]*i+e[10]*a+e[14],s},transformPoint4:(e,t,s=h.vec4())=>(s[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],s[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],s[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],s[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],s),transformPoints3(e,t,s){const n=s||[],i=t.length;let a,r,l,o;const c=e[0],u=e[1],h=e[2],p=e[3],A=e[4],d=e[5],f=e[6],I=e[7],y=e[8],m=e[9],v=e[10],w=e[11],g=e[12],E=e[13],T=e[14],b=e[15];let D;for(let e=0;e{const e=new r(16),t=new r(16),s=new r(16);return function(n,i,a,r){return this.transformVec3(this.mulMat4(this.inverseMat4(i,e),this.inverseMat4(a,t),s),n,r)}})(),lerpVec3(e,t,s,n,i,a){const r=a||h.vec3(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r},lerpMat4(e,t,s,n,i,a){const r=a||h.mat4(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r[3]=n[3]+l*(i[3]-n[3]),r[4]=n[4]+l*(i[4]-n[4]),r[5]=n[5]+l*(i[5]-n[5]),r[6]=n[6]+l*(i[6]-n[6]),r[7]=n[7]+l*(i[7]-n[7]),r[8]=n[8]+l*(i[8]-n[8]),r[9]=n[9]+l*(i[9]-n[9]),r[10]=n[10]+l*(i[10]-n[10]),r[11]=n[11]+l*(i[11]-n[11]),r[12]=n[12]+l*(i[12]-n[12]),r[13]=n[13]+l*(i[13]-n[13]),r[14]=n[14]+l*(i[14]-n[14]),r[15]=n[15]+l*(i[15]-n[15]),r},flatten(e){const t=[];let s,n,i,a,r;for(s=0,n=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=h.vec4()){const n=e[0]*h.DEGTORAD/2,i=e[1]*h.DEGTORAD/2,a=e[2]*h.DEGTORAD/2,r=Math.cos(n),l=Math.cos(i),o=Math.cos(a),c=Math.sin(n),u=Math.sin(i),p=Math.sin(a);return"XYZ"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o-c*u*p):"YXZ"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o+c*u*p):"ZXY"===t?(s[0]=c*l*o-r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o-c*u*p):"ZYX"===t?(s[0]=c*l*o-r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o+c*u*p):"YZX"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o-c*u*p):"XZY"===t&&(s[0]=c*l*o-r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o+c*u*p),s},mat4ToQuaternion(e,t=h.vec4()){const s=e[0],n=e[4],i=e[8],a=e[1],r=e[5],l=e[9],o=e[2],c=e[6],u=e[10];let p;const A=s+r+u;return A>0?(p=.5/Math.sqrt(A+1),t[3]=.25/p,t[0]=(c-l)*p,t[1]=(i-o)*p,t[2]=(a-n)*p):s>r&&s>u?(p=2*Math.sqrt(1+s-r-u),t[3]=(c-l)/p,t[0]=.25*p,t[1]=(n+a)/p,t[2]=(i+o)/p):r>u?(p=2*Math.sqrt(1+r-s-u),t[3]=(i-o)/p,t[0]=(n+a)/p,t[1]=.25*p,t[2]=(l+c)/p):(p=2*Math.sqrt(1+u-s-r),t[3]=(a-n)/p,t[0]=(i+o)/p,t[1]=(l+c)/p,t[2]=.25*p),t},vec3PairToQuaternion(e,t,s=h.vec4()){const n=Math.sqrt(h.dotVec3(e,e)*h.dotVec3(t,t));let i=n+h.dotVec3(e,t);return i<1e-8*n?(i=0,Math.abs(e[0])>Math.abs(e[2])?(s[0]=-e[1],s[1]=e[0],s[2]=0):(s[0]=0,s[1]=-e[2],s[2]=e[1])):h.cross3Vec3(e,t,s),s[3]=i,h.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=h.vec4()){const s=e[3]/2,n=Math.sin(s);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new r(16);return(t,s,n)=>(n=n||h.vec3(),h.quaternionToRotationMat4(t,e),h.mat4ToEuler(e,s,n),n)})(),mulQuaternions(e,t,s=h.vec4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=t[0],o=t[1],c=t[2],u=t[3];return s[0]=r*l+n*u+i*c-a*o,s[1]=r*o+i*u+a*l-n*c,s[2]=r*c+a*u+n*o-i*l,s[3]=r*u-n*l-i*o-a*c,s},vec3ApplyQuaternion(e,t,s=h.vec3()){const n=t[0],i=t[1],a=t[2],r=e[0],l=e[1],o=e[2],c=e[3],u=c*n+l*a-o*i,p=c*i+o*n-r*a,A=c*a+r*i-l*n,d=-r*n-l*i-o*a;return s[0]=u*c+d*-r+p*-o-A*-l,s[1]=p*c+d*-l+A*-r-u*-o,s[2]=A*c+d*-o+u*-l-p*-r,s},quaternionToMat4(e,t){t=h.identityMat4(t);const s=e[0],n=e[1],i=e[2],a=e[3],r=2*s,l=2*n,o=2*i,c=r*a,u=l*a,p=o*a,A=r*s,d=l*s,f=o*s,I=l*n,y=o*n,m=o*i;return t[0]=1-(I+m),t[1]=d+p,t[2]=f-u,t[4]=d-p,t[5]=1-(A+m),t[6]=y+c,t[8]=f+u,t[9]=y-c,t[10]=1-(A+I),t},quaternionToRotationMat4(e,t){const s=e[0],n=e[1],i=e[2],a=e[3],r=s+s,l=n+n,o=i+i,c=s*r,u=s*l,h=s*o,p=n*l,A=n*o,d=i*o,f=a*r,I=a*l,y=a*o;return t[0]=1-(p+d),t[4]=u-y,t[8]=h+I,t[1]=u+y,t[5]=1-(c+d),t[9]=A-f,t[2]=h-I,t[6]=A+f,t[10]=1-(c+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion(e,t=e){const s=h.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/s,t[1]=e[1]/s,t[2]=e[2]/s,t[3]=e[3]/s,t},conjugateQuaternion:(e,t=e)=>(t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t),inverseQuaternion:(e,t)=>h.normalizeQuaternion(h.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=h.vec4()){const s=(e=h.normalizeQuaternion(e,u))[3],n=2*Math.acos(s),i=Math.sqrt(1-s*s);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=n,t},AABB3:e=>new r(e||6),AABB2:e=>new r(e||4),OBB3:e=>new r(e||32),OBB2:e=>new r(e||16),Sphere3:(e,t,s,n)=>new r([e,t,s,n]),transformOBB3(e,t,s=t){let n;const i=t.length;let a,r,l;const o=e[0],c=e[1],u=e[2],h=e[3],p=e[4],A=e[5],d=e[6],f=e[7],I=e[8],y=e[9],m=e[10],v=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n{const e=new r(3),t=new r(3),s=new r(3);return n=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5],h.subVec3(t,e,s),Math.abs(h.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new r(3),t=new r(3),s=new r(3);return(n,i)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5];const a=h.subVec3(t,e,s),r=i[0]-n[0],l=n[3]-i[0],o=i[1]-n[1],c=n[4]-i[1],u=i[2]-n[2],p=n[5]-i[2];return a[0]+=r>l?r:l,a[1]+=o>c?o:c,a[2]+=u>p?u:p,Math.abs(h.lenVec3(a))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const s=t||h.vec3();return s[0]=(e[0]+e[3])/2,s[1]=(e[1]+e[4])/2,s[2]=(e[2]+e[5])/2,s},getAABB2Center(e,t){const s=t||h.vec2();return s[0]=(e[2]+e[0])/2,s[1]=(e[3]+e[1])/2,s},collapseAABB3:(e=h.AABB3())=>(e[0]=h.MAX_DOUBLE,e[1]=h.MAX_DOUBLE,e[2]=h.MAX_DOUBLE,e[3]=h.MIN_DOUBLE,e[4]=h.MIN_DOUBLE,e[5]=h.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=h.OBB3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t),positions3ToAABB3:(()=>{const e=new r(3);return(t,s,n)=>{s=s||h.AABB3();let i,a,r,l=h.MAX_DOUBLE,o=h.MAX_DOUBLE,c=h.MAX_DOUBLE,u=h.MIN_DOUBLE,p=h.MIN_DOUBLE,A=h.MIN_DOUBLE;for(let s=0,d=t.length;su&&(u=i),a>p&&(p=a),r>A&&(A=r);return s[0]=l,s[1]=o,s[2]=c,s[3]=u,s[4]=p,s[5]=A,s}})(),OBB3ToAABB3(e,t=h.AABB3()){let s,n,i,a=h.MAX_DOUBLE,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE,u=h.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToAABB3(e,t=h.AABB3()){let s,n,i,a=h.MAX_DOUBLE,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE,u=h.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToSphere3:(()=>{const e=new r(3);return(t,s)=>{s=s||h.vec4();let n,i=0,a=0,r=0;const l=t.length;for(n=0;nc&&(c=o);return s[3]=c,s}})(),positions3ToSphere3:(()=>{const e=new r(3),t=new r(3);return(s,n)=>{n=n||h.vec4();let i,a=0,r=0,l=0;const o=s.length;let c=0;for(i=0;ic&&(c=p);return n[3]=c,n}})(),OBB3ToSphere3:(()=>{const e=new r(3),t=new r(3);return(s,n)=>{n=n||h.vec4();let i,a=0,r=0,l=0;const o=s.length,c=o/4;for(i=0;ip&&(p=u);return n[3]=p,n}})(),getSphere3Center:(e,t=h.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=h.vec3()){let s=0,n=0,i=0;for(var a=0,r=e.length;a(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]s&&(e[0]=s),e[1]>n&&(e[1]=n),e[2]>i&&(e[2]=i),e[3](e[0]=h.MAX_DOUBLE,e[1]=h.MAX_DOUBLE,e[2]=h.MIN_DOUBLE,e[3]=h.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(n=e[0]*s[0],i=e[0]*s[3]):(n=e[0]*s[3],i=e[0]*s[0]),e[1]>0?(n+=e[1]*s[1],i+=e[1]*s[4]):(n+=e[1]*s[4],i+=e[1]*s[1]),e[2]>0?(n+=e[2]*s[2],i+=e[2]*s[5]):(n+=e[2]*s[5],i+=e[2]*s[2]);if(n<=-t&&i<=-t)return-1;return n>=-t&&i>=-t?1:0},OBB3ToAABB2(e,t=h.AABB2()){let s,n,i,a,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE;for(let t=0,u=e.length;to&&(o=s),n>c&&(c=n);return t[0]=r,t[1]=l,t[2]=o,t[3]=c,t},expandAABB2:(e,t)=>(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]2*(1-e)*(s-t)+2*e*(n-s),tangentQuadraticBezier3:(e,t,s,n,i)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*n*(1-e)-3*e*e*n+3*e*e*i,tangentSpline:e=>6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e),catmullRomInterpolate(e,t,s,n,i){const a=.5*(s-e),r=.5*(n-t),l=i*i;return(2*t-2*s+a+r)*(i*l)+(-3*t+3*s-2*a-r)*l+a*i+t},b2p0(e,t){const s=1-e;return s*s*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,s,n){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,n)},b3p0(e,t){const s=1-e;return s*s*s*t},b3p1(e,t){const s=1-e;return 3*s*s*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,s,n,i){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,n)+this.b3p3(e,i)},triangleNormal(e,t,s,n=h.vec3()){const i=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],l=s[0]-e[0],o=s[1]-e[1],c=s[2]-e[2],u=a*c-r*o,p=r*l-i*c,A=i*o-a*l,d=Math.sqrt(u*u+p*p+A*A);return 0===d?(n[0]=0,n[1]=0,n[2]=0):(n[0]=u/d,n[1]=p/d,n[2]=A/d),n},rayTriangleIntersect:(()=>{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3);return(a,r,l,o,c,u)=>{u=u||h.vec3();const p=h.subVec3(o,l,e),A=h.subVec3(c,l,t),d=h.cross3Vec3(r,A,s),f=h.dotVec3(p,d);if(f<1e-6)return null;const I=h.subVec3(a,l,n),y=h.dotVec3(I,d);if(y<0||y>f)return null;const m=h.cross3Vec3(I,p,i),v=h.dotVec3(r,m);if(v<0||y+v>f)return null;const w=h.dotVec3(A,m)/f;return u[0]=a[0]+w*r[0],u[1]=a[1]+w*r[1],u[2]=a[2]+w*r[2],u}})(),rayPlaneIntersect:(()=>{const e=new r(3),t=new r(3),s=new r(3),n=new r(3);return(i,a,r,l,o,c)=>{c=c||h.vec3(),a=h.normalizeVec3(a,e);const u=h.subVec3(l,r,t),p=h.subVec3(o,r,s),A=h.cross3Vec3(u,p,n);h.normalizeVec3(A,A);const d=-h.dotVec3(r,A),f=-(h.dotVec3(i,A)+d)/h.dotVec3(a,A);return c[0]=i[0]+f*a[0],c[1]=i[1]+f*a[1],c[2]=i[2]+f*a[2],c}})(),cartesianToBarycentric:(()=>{const e=new r(3),t=new r(3),s=new r(3);return(n,i,a,r,l)=>{const o=h.subVec3(r,i,e),c=h.subVec3(a,i,t),u=h.subVec3(n,i,s),p=h.dotVec3(o,o),A=h.dotVec3(o,c),d=h.dotVec3(o,u),f=h.dotVec3(c,c),I=h.dotVec3(c,u),y=p*f-A*A;if(0===y)return null;const m=1/y,v=(f*d-A*I)*m,w=(p*I-A*d)*m;return l[0]=1-v-w,l[1]=w,l[2]=v,l}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,n,i=h.vec3()){const a=e[0],r=e[1],l=e[2];return i[0]=t[0]*a+s[0]*r+n[0]*l,i[1]=t[1]*a+s[1]*r+n[1]*l,i[2]=t[2]*a+s[2]*r+n[2]*l,i},mergeVertices(e,t,s,n){const i={},a=[],r=[],l=t?[]:null,o=s?[]:null,c=[];let u,h,p,A;const d=1e4;let f,I,y=0;for(f=0,I=e.length;f{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3),a=new r(3);return(r,l,o)=>{let c,u;const p=new Array(r.length/3);let A,d,f,I,y,m,v;for(c=0,u=l.length;c{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3),a=new r(3),l=new r(3);return(r,o,c)=>{const u=new Float32Array(r.length);for(let p=0;p>24&255,u=p>>16&255,c=p>>8&255,o=255&p,l=t[s],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+1],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+2],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,p++;return{positions:i,colors:a}},faceToVertexNormals(e,t,s={}){const n=s.smoothNormalsAngleThreshold||20,i={},a=[],r={};let l,o,c,u,p;const A=1e4;let d,f,I,y,m,v;for(f=0,y=e.length;f{const e=new r(4),t=new r(4);return(s,n,i,a,r)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=1,h.transformVec4(s,e,t),a[0]=t[0],a[1]=t[1],a[2]=t[2],e[0]=i[0],e[1]=i[1],e[2]=i[2],h.transformVec3(s,e,t),h.normalizeVec3(t),r[0]=t[0],r[1]=t[1],r[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new r(16),t=new r(16),s=new r(4),n=new r(4),i=new r(4),a=new r(4);return(r,l,o,c,u,p)=>{const A=h.mulMat4(o,l,e),d=h.inverseMat4(A,t),f=r.width,I=r.height,y=(c[0]-f/2)/(f/2),m=-(c[1]-I/2)/(I/2);s[0]=y,s[1]=m,s[2]=-1,s[3]=1,h.transformVec4(d,s,n),h.mulVec4Scalar(n,1/n[3]),i[0]=y,i[1]=m,i[2]=1,i[3]=1,h.transformVec4(d,i,a),h.mulVec4Scalar(a,1/a[3]),u[0]=a[0],u[1]=a[1],u[2]=a[2],h.subVec3(a,n,p),h.normalizeVec3(p)}})(),canvasPosToLocalRay:(()=>{const e=new r(3),t=new r(3);return(s,n,i,a,r,l,o)=>{h.canvasPosToWorldRay(s,n,i,r,e,t),h.worldRayToLocalRay(a,e,t,l,o)}})(),worldRayToLocalRay:(()=>{const e=new r(16),t=new r(4),s=new r(4);return(n,i,a,r,l)=>{const o=h.inverseMat4(n,e);t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,h.transformVec4(o,t,s),r[0]=s[0],r[1]=s[1],r[2]=s[2],h.transformVec3(o,a,l)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,n,i,a){const l=new r(6),o={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:l};let c,u;for(l[0]=l[1]=l[2]=Number.POSITIVE_INFINITY,l[3]=l[4]=l[5]=Number.NEGATIVE_INFINITY,c=0,u=s.length;cl[3]&&(l[3]=i[t]),i[t+1]l[4]&&(l[4]=i[t+1]),i[t+2]l[5]&&(l[5]=i[t+2])}}if(s.length<20||a>10)return o.triangles=s,o.leaf=!0,o;e[0]=l[3]-l[0],e[1]=l[4]-l[1],e[2]=l[5]-l[2];let p=0;e[1]>e[p]&&(p=1),e[2]>e[p]&&(p=2),o.splitDim=p;const A=(l[p]+l[p+3])/2,d=new Array(s.length);let f=0;const I=new Array(s.length);let y=0;for(c=0,u=s.length;c{const n=e.length/3,i=new Array(n);for(let e=0;e=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t},octDecodeVec2s(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t}};h.buildEdgeIndices=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}(),h.planeClipsPositions3=function(e,t,s,n=3){for(let i=0,a=s.length;i=this._headLength){const e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}const e=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,e}push(e){return this._length++,this._tail.push(e),this}unshift(e){return this._head[--this._index]=e,this._length++,this}}const d={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var f=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],s=e[0].charCodeAt(0),n=s+e[1],i=s;i{};t=t||n,s=s||n;var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",e,!0),i.addEventListener("load",(function(e){var n=e.target.response;if(200===this.status){var i;try{i=JSON.parse(n)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(i)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(n))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),i.addEventListener("error",(function(e){s(e)}),!1),i.send(null)},loadArraybuffer:function(e,t,s){var n=e=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{w.removeItem(e.id),delete R.scenes[e.id],delete v[e.id],d.components.scenes--}))},this.clear=function(){let e;for(const t in R.scenes)R.scenes.hasOwnProperty(t)&&(e=R.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete R.scenes[e.id]))},this.scheduleTask=function(e,t){g.push(e),g.push(t)},this.runTasks=function(e=-1){let t,s,n=(new Date).getTime(),i=0;for(;g.length>0&&(e<0||n0&&b>0){var t=1e3/b;P+=t,T.push(t),T.length>=30&&(P-=T.shift()),d.frame.fps=Math.round(P/T.length)}!function(e){const t=R.runTasks(e+10),s=R.getNumTasks();d.frame.tasksRun=t,d.frame.tasksScheduled=s,d.frame.tasksBudget=10}(e),function(e){for(var t in E.time=e,R.scenes)if(R.scenes.hasOwnProperty(t)){var s=R.scenes[t];E.sceneId=t,E.startTime=s.startTime,E.deltaTime=null!=E.prevTime?E.time-E.prevTime:0,s.fire("tick",E,!0)}E.prevTime=e}(e),function(){const e=R.scenes,t=!1;let s,n,i,a,r;for(r in e)e.hasOwnProperty(r)&&(s=e[r],n=v[r],n||(n=v[r]={}),i=s.ticksPerOcclusionTest,n.ticksPerOcclusionTest!==i&&(n.ticksPerOcclusionTest=i,n.renderCountdown=i),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=i),a=s.ticksPerRender,n.ticksPerRender!==a&&(n.ticksPerRender=a,n.renderCountdown=a),0==--n.renderCountdown&&(s.render(t),n.renderCountdown=a))}(),D=e,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(C):requestAnimationFrame(C)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(C):requestAnimationFrame(C);class _{get type(){return"Component"}get isComponent(){return!0}constructor(e=null,t={}){if(this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=t.viewer;else{if("Scene"===e.type)this.scene=e;else{if(!(e instanceof _))throw"Invalid param: owner must be a Component";this.scene=e.scene}this._owner=e}this._dontClear=!!t.dontClear,this._renderer=this.scene._renderer,this.meta=t.meta||{},this.id=t.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,e&&e._own(this)}glRedraw(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}glResort(){this._renderer&&this._renderer.needStateSort()}get owner(){return this._owner}isType(e){return this.type===e}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}_message(e){return" ["+this.type+" "+m.inQuotes(this.id)+"]: "+e}warn(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}error(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}_attach(e){const t=e.name;if(!t)return void this.error("Component 'name' expected");let s=e.component;const n=e.sceneDefault,i=e.sceneSingleton,a=e.type,r=e.on,l=!1!==e.recompiles;if(s&&(m.isNumeric(s)||m.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+m.inQuotes(e))}if(!s)if(!0===i){const e=this.scene.types[a];for(const t in e)if(e.hasOwnProperty){s=e[t];break}if(!s)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===n&&(s=this.scene[t],!s))return this.error("Scene has no default component for '"+t+"'"),null;if(s){if(s.scene.id!==this.scene.id)return void this.error("Not in same scene: "+s.type+" "+m.inQuotes(s.id));if(a&&!s.isType(a))return void this.error("Expected a "+a+" type or subtype: "+s.type+" "+m.inQuotes(s.id))}this._attachments||(this._attachments={});const o=this._attached[t];let c,u,h;if(o){if(s&&o.id===s.id)return;const e=this._attachments[o.id];for(c=e.subs,u=0,h=c.length;u{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():R.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}_update(){}clear(){if(this._ownedComponents)for(var e in this._ownedComponents)if(this._ownedComponents.hasOwnProperty(e)){this._ownedComponents[e].destroy(),delete this._ownedComponents[e]}}destroy(){if(this.destroyed)return;let e,t,s,n,i,a;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],s=t.component,n=t.subs,i=0,a=n.length;i=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class x{constructor(){this.planes=[new N,new N,new N,new N,new N,new N]}}function L(e,t,s){const n=h.mulMat4(s,t,S),i=n[0],a=n[1],r=n[2],l=n[3],o=n[4],c=n[5],u=n[6],p=n[7],A=n[8],d=n[9],f=n[10],I=n[11],y=n[12],m=n[13],v=n[14],w=n[15];e.planes[0].set(l-i,p-o,I-A,w-y),e.planes[1].set(l+i,p+o,I+A,w+y),e.planes[2].set(l-a,p-c,I-d,w-m),e.planes[3].set(l+a,p+c,I+d,w+m),e.planes[4].set(l-r,p-u,I-f,w-v),e.planes[5].set(l+r,p+u,I+f,w+v)}function M(e,t){let s=x.INSIDE;const n=B,i=O;n[0]=t[0],n[1]=t[1],n[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];const a=[n,i];for(let t=0;t<6;++t){const n=e.planes[t];if(n.normal[0]*a[n.testVertex[0]][0]+n.normal[1]*a[n.testVertex[1]][1]+n.normal[2]*a[n.testVertex[2]][2]+n.offset<0)return x.OUTSIDE;n.normal[0]*a[1-n.testVertex[0]][0]+n.normal[1]*a[1-n.testVertex[1]][1]+n.normal[2]*a[1-n.testVertex[2]][2]+n.offset<0&&(s=x.INTERSECT)}return s}x.INSIDE=0,x.INTERSECT=1,x.OUTSIDE=2;class F extends _{constructor(e={}){if(!e.viewer)throw"[MarqueePicker] Missing config: viewer";if(!e.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";super(e.viewer.scene,e),this.viewer=e.viewer,this._objectsKdTree3=e.objectsKdTree3,this._canvasMarqueeCorner1=h.vec2(),this._canvasMarqueeCorner2=h.vec2(),this._canvasMarquee=h.AABB2(),this._marqueeFrustum=new x,this._marqueeFrustumProjMat=h.mat4(),this._pickMode=!1,this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement),this._marqueeElement.style.position="absolute",this._marqueeElement.style["z-index"]="40000005",this._marqueeElement.style.width="8px",this._marqueeElement.style.height="8px",this._marqueeElement.style.visibility="hidden",this._marqueeElement.style.top="0px",this._marqueeElement.style.left="0px",this._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",this._marqueeElement.style.opacity=1,this._marqueeElement.style["pointer-events"]="none"}setMarqueeCorner1(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarqueeCorner2(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarquee(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}setMarqueeVisible(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}getMarqueeVisible(){return this._marqueVisible}setPickMode(e){if(e!==F.PICK_MODE_INSIDE&&e!==F.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===F.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const e=[],t=(s,n=x.INTERSECT)=>{if(n===x.INTERSECT&&(n=M(this._marqueeFrustum,s.aabb)),n!==x.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,n=t.length;s3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&t(this._objectsKdTree3.root),this.fire("picked",e),e}_updateMarquee(){this._canvasMarquee[0]=Math.min(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[1]=Math.min(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._canvasMarquee[2]=Math.max(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[3]=Math.max(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._marqueeElement.style.width=this._canvasMarquee[2]-this._canvasMarquee[0]+"px",this._marqueeElement.style.height=this._canvasMarquee[3]-this._canvasMarquee[1]+"px",this._marqueeElement.style.left=`${this._canvasMarquee[0]}px`,this._marqueeElement.style.top=`${this._canvasMarquee[1]}px`}_buildMarqueeFrustum(){const e=this.viewer.scene.canvas.canvas,t=e.clientWidth,s=e.clientHeight,n=e.clientLeft,i=e.clientTop,a=2/t,r=2/s,l=e.clientHeight/e.clientWidth,o=(this._canvasMarquee[0]-n)*a-1,c=(this._canvasMarquee[2]-n)*a-1,u=-(this._canvasMarquee[3]-i)*r+1,p=-(this._canvasMarquee[1]-i)*r+1,A=this.viewer.scene.camera.frustum.near*(17*l);h.frustumMat4(o,c,u*l,p*l,A,1e4,this._marqueeFrustumProjMat),L(this._marqueeFrustum,this.viewer.scene.camera.viewMatrix,this._marqueeFrustumProjMat)}destroy(){super.destroy(),this._marqueeElement.parentElement&&(this._marqueeElement.parentElement.removeChild(this._marqueeElement),this._marqueeElement=null,this._objectsKdTree3=null)}}F.PICK_MODE_INTERSECTS=0,F.PICK_MODE_INSIDE=1;class H{constructor(e,t,s){this.id=s&&s.id?s.id:e,this.viewer=t,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,t.addPlugin(this)}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){console.log(`[xeokit plugin ${this.id}]: ${e}`)}warn(e){console.warn(`[xeokit plugin ${this.id}]: ${e}`)}error(e){console.error(`[xeokit plugin ${this.id}]: ${e}`)}send(e,t){}destroy(){this.viewer.removePlugin(this)}}const U=h.vec3(),G=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(n,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,h.transformVec4(n,t,s),h.setMat4Translation(n,s,a),a.slice()}}();function j(e,t,s){const n=Float32Array.from([e[0]])[0],i=e[0]-n,a=Float32Array.from([e[1]])[0],r=e[1]-a,l=Float32Array.from([e[2]])[0],o=e[2]-l;t[0]=n,t[1]=a,t[2]=l,s[0]=i,s[1]=r,s[2]=o}function V(e,t,s,n=1e3){const i=h.getPositionsCenter(e,U),a=Math.round(i[0]/n)*n,r=Math.round(i[1]/n)*n,l=Math.round(i[2]/n)*n;s[0]=a,s[1]=r,s[2]=l;const o=0!==s[0]||0!==s[1]||0!==s[2];if(o)for(let s=0,n=e.length;s0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,s=this.meshes[0]._colorize[3];let n=255;if(t){if(e<0?e=0:e>1&&(e=1),n=Math.floor(255*e),s===n)return}else if(n=255,s===n)return;for(let e=0,t=this.meshes.length;e{this._viewPosDirty=!0,this._needUpdate()})),this._onCameraProjMatrix=this.scene.camera.on("projMatrix",(()=>{this._canvasPosDirty=!0,this._needUpdate()})),this._onEntityDestroyed=null,this._onEntityModelDestroyed=null,this._renderer.addMarker(this),this.entity=t.entity,this.worldPos=t.worldPos,this.occludable=t.occludable}_update(){if(this._viewPosDirty&&(h.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){se.set(this._viewPos),se[3]=1,h.transformPoint4(this.scene.camera.projMatrix,se,ne);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+ne[0]/ne[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-ne[1]/ne[3])*e[3]/2),this._canvasPosDirty=!1,this.fire("canvasPos",this._canvasPos)}}_setVisible(e){this._visible,this._visible=e,this.fire("visible",this._visible)}set entity(e){if(this._entity){if(this._entity===e)return;null!==this._onEntityDestroyed&&(this._entity.off(this._onEntityDestroyed),this._onEntityDestroyed=null),null!==this._onEntityModelDestroyed&&(this._entity.model.off(this._onEntityModelDestroyed),this._onEntityModelDestroyed=null)}this._entity=e,this._entity&&(this._entity instanceof te?this._onEntityModelDestroyed=this._entity.model.on("destroyed",(()=>{this._entity=null,this._onEntityModelDestroyed=null})):this._onEntityDestroyed=this._entity.on("destroyed",(()=>{this._entity=null,this._onEntityDestroyed=null}))),this.fire("entity",this._entity,!0)}get entity(){return this._entity}set occludable(e){(e=!!e)!==this._occludable&&(this._occludable=e)}get occludable(){return this._occludable}set worldPos(e){this._worldPos.set(e||[0,0,0]),j(this._worldPos,this._origin,this._rtcPos),this._occludable&&this._renderer.markerWorldPosUpdated(this),this._viewPosDirty=!0,this.fire("worldPos",this._worldPos),this._needUpdate()}get worldPos(){return this._worldPos}get origin(){return this._origin}get rtcPos(){return this._rtcPos}get viewPos(){return this._update(),this._viewPos}get canvasPos(){return this._update(),this._canvasPos}get visible(){return!!this._visible}destroy(){this.fire("destroyed",!0),this.scene.camera.off(this._onCameraViewMatrix),this.scene.camera.off(this._onCameraProjMatrix),this._entity&&(null!==this._onEntityDestroyed&&this._entity.off(this._onEntityDestroyed),null!==this._onEntityModelDestroyed&&this._entity.model.off(this._onEntityModelDestroyed)),this._renderer.removeMarker(this),super.destroy()}}class ae{constructor(e,t={}){this._color=t.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=t.thickness||1,this._thicknessClickable=t.thicknessClickable||6,this._visible=!0,this._culled=!1;var s=this._wire,n=s.style;n.border="solid "+this._thickness+"px "+this._color,n.position="absolute",n["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,n.width="0px",n.height="0px",n.visibility="visible",n.top="0px",n.left="0px",n["-webkit-transform-origin"]="0 0",n["-moz-transform-origin"]="0 0",n["-ms-transform-origin"]="0 0",n["-o-transform-origin"]="0 0",n["transform-origin"]="0 0",n["-webkit-transform"]="rotate(0deg)",n["-moz-transform"]="rotate(0deg)",n["-ms-transform"]="rotate(0deg)",n["-o-transform"]="rotate(0deg)",n.transform="rotate(0deg)",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._wireClickable,a=i.style;a.border="solid "+this._thicknessClickable+"px "+this._color,a.position="absolute",a["z-index"]=void 0===t.zIndex?"2000002":t.zIndex+1,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}get visible(){return"visible"===this._wire.style.visibility}_update(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,s=this._wire.style;s.width=Math.round(e)+"px",s.left=Math.round(this._x1)+"px",s.top=Math.round(this._y1)+"px",s["-webkit-transform"]="rotate("+t+"deg)",s["-moz-transform"]="rotate("+t+"deg)",s["-ms-transform"]="rotate("+t+"deg)",s["-o-transform"]="rotate("+t+"deg)",s.transform="rotate("+t+"deg)";var n=this._wireClickable.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,n){this._x1=e,this._y1=t,this._x2=s,this._y2=n,this._update()}setColor(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}setOpacity(e){this._wire.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}destroy(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}class re{constructor(e,t={}){this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var s=this._dot,n=s.style;n["border-radius"]="25px",n.border="solid 2px white",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,n.width="8px",n.height="8px",n.visibility=!1!==t.visible?"visible":"hidden",n.top="0px",n.left="0px",n["box-shadow"]="0 2px 5px 0 #182A3D;",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._dotClickable,a=i.style;a["border-radius"]="35px",a.border="solid 10px white",a.position="absolute",a["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,a.width="8px",a.height="8px",a.visibility="visible",a.top="0px",a.left="0px",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.borderColor)}setPos(e,t){this._x=e,this._y=t;var s=this._dot.style;s.left=Math.round(e)-4+"px",s.top=Math.round(t)-4+"px";var n=this._dotClickable.style;n.left=Math.round(e)-9+"px",n.top=Math.round(t)-9+"px"}setFillColor(e){this._dot.style.background=e||"lightgreen"}setBorderColor(e){this._dot.style.border="solid 2px"+(e||"black")}setOpacity(e){this._dot.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}destroy(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}class le{constructor(e,t={}){this._highlightClass="viewer-ruler-label-highlighted",this._prefix=t.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var s=this._label,n=s.style;n["border-radius"]="5px",n.color="white",n.padding="4px",n.border="solid 1px",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,n.width="auto",n.height="auto",n.visibility="visible",n.top="0px",n.left="0px",n["pointer-events"]="all",n.opacity=1,t.onContextMenu,s.innerText="",e.appendChild(s),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&s.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&s.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),t.onMouseWheel&&s.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&s.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()}))}setPos(e,t){this._x=e,this._y=t;var s=this._label.style;s.left=Math.round(e)-20+"px",s.top=Math.round(t)-12+"px"}setPosOnWire(e,t,s,n){var i=e+.5*(s-e),a=t+.5*(n-t),r=this._label.style;r.left=Math.round(i)-20+"px",r.top=Math.round(a)-12+"px"}setPosBetweenWires(e,t,s,n,i,a){var r=(e+s+i)/3,l=(t+n+a)/3,o=this._label.style;o.left=Math.round(r)-20+"px",o.top=Math.round(l)-12+"px"}setText(e){this._label.innerHTML=this._prefix+(e||"")}setFillColor(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}setBorderColor(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}setOpacity(e){this._label.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}setClickable(e){this._label.style["pointer-events"]=e?"all":"none"}destroy(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}var oe=h.vec3(),ce=h.vec3();class ue extends _{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._color=t.color||e.defaultColor;var s=this.plugin.viewer.scene;this._originMarker=new ie(s,t.origin),this._cornerMarker=new ie(s,t.corner),this._targetMarker=new ie(s,t.target),this._originWorld=h.vec3(),this._cornerWorld=h.vec3(),this._targetWorld=h.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const n=t.onMouseOver?e=>{t.onMouseOver(e,this)}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this)}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._cornerDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._originWire=new ae(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetWire=new ae(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._angleLabel=new le(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._visible=!1,this._originVisible=!1,this._cornerVisible=!1,this._targetVisible=!1,this._originWireVisible=!1,this._targetWireVisible=!1,this._angleVisible=!1,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._cornerMarker.on("worldPos",(e=>{this._cornerWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.cornerVisible=t.cornerVisible,this.targetVisible=t.targetVisible,this.originWireVisible=t.originWireVisible,this.targetWireVisible=t.targetWireVisible,this.angleVisible=t.angleVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(h.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){const A=-.3,d=this._originMarker.viewPos[2],f=this._cornerMarker.viewPos[2],I=this._targetMarker.viewPos[2];if(d>A||f>A||I>A)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);h.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,s=this._cp,n=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var i=n.top-y.top,a=n.left-y.left,r=e.canvas.boundary,l=r[2],o=r[3],c=0,u=0,p=t.length;u{e.snappedToVertex||e.snappedToEdge?(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.canvasPos,n.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(i=!0,a=e.entity,o.set(e.worldPos),c.set(s),this._mouseState){case 0:this.markerDiv.style.marginLeft=s[0]-5+"px",this.markerDiv.style.marginTop=s[1]-5+"px";break;case 1:this._currentAngleMeasurement&&(this._currentAngleMeasurement.originWireVisible=!0,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.cornerVisible=!0,this._currentAngleMeasurement.angleVisible=!1,this._currentAngleMeasurement.corner.worldPos=e.worldPos,this._currentAngleMeasurement.corner.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer";break;case 2:this._currentAngleMeasurement&&(this._currentAngleMeasurement.targetWireVisible=!0,this._currentAngleMeasurement.targetVisible=!0,this._currentAngleMeasurement.angleVisible=!0,this._currentAngleMeasurement.target.worldPos=e.worldPos,this._currentAngleMeasurement.target.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(r=e.clientX,l=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>r+20||e.clientXl+20||e.clientY{if(i=!1,n&&(n.visible=!0,n.pointerPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!1),this.markerDiv.style.marginLeft="-100px",this.markerDiv.style.marginTop="-100px",this._currentAngleMeasurement){switch(this._mouseState){case 0:this._currentAngleMeasurement.originVisible=!1;break;case 1:this._currentAngleMeasurement.cornerVisible=!1,this._currentAngleMeasurement.originWireVisible=!1,this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1;break;case 2:this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1}t.style.cursor="default"}})),this._active=!0}deactivate(){if(!this._active)return;this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.angleMeasurementsPlugin.viewer.cameraControl;t.off(this._onMouseHoverSurface),t.off(this._onPickedSurface),t.off(this._onHoverNothing),t.off(this._onPickedNothing),this._currentAngleMeasurement=null,this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentAngleMeasurement&&(this._currentAngleMeasurement.destroy(),this._currentAngleMeasurement=null),this._mouseState=0)}destroy(){this.deactivate(),super.destroy()}}class Ae extends ie{constructor(e,t){if(super(e,t),this.plugin=t.plugin,this._container=t.container,!this._container)throw"config missing: container";if(!t.markerElement&&!t.markerHTML)throw"config missing: need either markerElement or markerHTML";if(!t.labelElement&&!t.labelHTML)throw"config missing: need either labelElement or labelHTML";this._htmlDirty=!1,t.markerElement?(this._marker=t.markerElement,this._marker.addEventListener("click",this._onMouseClickedExternalMarker=()=>{this.plugin.fire("markerClicked",this)}),this._marker.addEventListener("mouseenter",this._onMouseEnterExternalMarker=()=>{this.plugin.fire("markerMouseEnter",this)}),this._marker.addEventListener("mouseleave",this._onMouseLeaveExternalMarker=()=>{this.plugin.fire("markerMouseLeave",this)}),this._markerExternal=!0):(this._markerHTML=t.markerHTML,this._htmlDirty=!0,this._markerExternal=!1),t.labelElement?(this._label=t.labelElement,this._labelExternal=!0):(this._labelHTML=t.labelHTML,this._htmlDirty=!0,this._labelExternal=!1),this._markerShown=!!t.markerShown,this._labelShown=!!t.labelShown,this._values=t.values||{},this._layoutDirty=!0,this._visibilityDirty=!0,this._buildHTML(),this._onTick=this.scene.on("tick",(()=>{this._htmlDirty&&(this._buildHTML(),this._htmlDirty=!1,this._layoutDirty=!0,this._visibilityDirty=!0),(this._layoutDirty||this._visibilityDirty)&&(this._markerShown||this._labelShown)&&(this._updatePosition(),this._layoutDirty=!1),this._visibilityDirty&&(this._marker.style.visibility=this.visible&&this._markerShown?"visible":"hidden",this._label.style.visibility=this.visible&&this._markerShown&&this._labelShown?"visible":"hidden",this._visibilityDirty=!1)})),this.on("canvasPos",(()=>{this._layoutDirty=!0})),this.on("visible",(()=>{this._visibilityDirty=!0})),this.setMarkerShown(!1!==t.markerShown),this.setLabelShown(t.labelShown),this.eye=t.eye?t.eye.slice():null,this.look=t.look?t.look.slice():null,this.up=t.up?t.up.slice():null,this.projection=t.projection}_buildHTML(){if(!this._markerExternal){this._marker&&(this._container.removeChild(this._marker),this._marker=null);let e=this._markerHTML||"

";m.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._marker=t.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(()=>{this.plugin.fire("markerClicked",this)})),this._marker.addEventListener("mouseenter",(()=>{this.plugin.fire("markerMouseEnter",this)})),this._marker.addEventListener("mouseleave",(()=>{this.plugin.fire("markerMouseLeave",this)})),this._marker.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);let e=this._labelHTML||"

";m.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._label=t.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}}_updatePosition(){const e=this.scene.canvas.boundary,t=e[0],s=e[1],n=this.canvasPos;this._marker.style.left=Math.floor(t+n[0])-12+"px",this._marker.style.top=Math.floor(s+n[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+n[0]+20)+"px",this._label.style.top=Math.floor(s+n[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}_renderTemplate(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){const s=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),s)}return e}setMarkerShown(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}getMarkerShown(){return this._markerShown}setLabelShown(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}getLabelShown(){return this._labelShown}setField(e,t){this._values[e]=t||"",this._htmlDirty=!0}getField(e){return this._values[e]}setValues(e){for(var t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setField(t,s)}}getValues(){return this._values}destroy(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),super.destroy()}}const de=h.vec3(),fe=h.vec3(),Ie=h.vec3();class ye extends _{get type(){return"Spinner"}constructor(e,t={}){super(e,t),this._canvas=t.canvas,this._element=null,this._isCustom=!1,t.elementId&&(this._element=document.getElementById(t.elementId),this._element?this._adjustPosition():this.error("Can't find given Spinner HTML element: '"+t.elementId+"' - will automatically create default element")),this._element||this._createDefaultSpinner(),this.processes=0}_createDefaultSpinner(){this._injectDefaultCSS();const e=document.createElement("div"),t=e.style;t["z-index"]="9000",t.position="absolute",e.innerHTML='
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}_injectDefaultCSS(){const e="xeokit-spinner-css";if(document.getElementById(e))return;const t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}_adjustPosition(){if(this._isCustom)return;const e=this._canvas,t=this._element,s=t.style;s.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",s.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}set processes(e){if(e=e||0,this._processes===e)return;if(e<0)return;const t=this._processes;this._processes=e;const s=this._element;s&&(s.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}get processes(){return this._processes}_destroy(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);const e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}const me=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class ve extends _{constructor(e,t={}){super(e,t),this._backgroundColor=h.vec3([t.backgroundColor?t.backgroundColor[0]:1,t.backgroundColor?t.backgroundColor[1]:1,t.backgroundColor?t.backgroundColor[2]:1]),this._backgroundColorFromAmbientLight=!!t.backgroundColorFromAmbientLight,this.canvas=t.canvas,this.gl=null,this.webgl2=!1,this.transparent=!!t.transparent,this.contextAttr=t.contextAttr||{},this.contextAttr.alpha=this.transparent,this.contextAttr.preserveDrawingBuffer=!!this.contextAttr.preserveDrawingBuffer,this.contextAttr.stencil=!1,this.contextAttr.premultipliedAlpha=!!this.contextAttr.premultipliedAlpha,this.contextAttr.antialias=!1!==this.contextAttr.antialias,this.resolutionScale=t.resolutionScale,this.canvas.width=Math.round(this.canvas.clientWidth*this._resolutionScale),this.canvas.height=Math.round(this.canvas.clientHeight*this._resolutionScale),this.boundary=[this.canvas.offsetLeft,this.canvas.offsetTop,this.canvas.clientWidth,this.canvas.clientHeight],this._initWebGL(t);const s=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),s.scene._webglContextLost(),s.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){s._initWebGL(),s.gl&&(s.scene._webglContextRestored(s.gl),s.fire("webglcontextrestored",s.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let n=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(n=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{n&&(n=!1,s.canvas.width=Math.round(s.canvas.clientWidth*s._resolutionScale),s.canvas.height=Math.round(s.canvas.clientHeight*s._resolutionScale),s.boundary[0]=s.canvas.offsetLeft,s.boundary[1]=s.canvas.offsetTop,s.boundary[2]=s.canvas.clientWidth,s.boundary[3]=s.canvas.clientHeight,s.fire("boundary",s.boundary))})),this._spinner=new ye(this.scene,{canvas:this.canvas,elementId:t.spinnerElementId})}get type(){return"Canvas"}get backgroundColorFromAmbientLight(){return this._backgroundColorFromAmbientLight}set backgroundColorFromAmbientLight(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}get resolutionScale(){return this._resolutionScale}set resolutionScale(e){if((e=e||1)===this._resolutionScale)return;this._resolutionScale=e;const t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}get spinner(){return this._spinner}_createCanvas(){const e="xeokit-canvas-"+h.createUUID(),t=document.getElementsByTagName("body")[0],s=document.createElement("div"),n=s.style;n.height="100%",n.width="100%",n.padding="0",n.margin="0",n.background="rgba(0,0,0,0);",n.float="left",n.left="0",n.top="0",n.position="absolute",n.opacity="1.0",n["z-index"]="-10000",s.innerHTML+='',t.appendChild(s),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,s=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,s+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:s}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?ge.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?ge.FS_MAX_FLOAT_PRECISION="mediump":ge.FS_MAX_FLOAT_PRECISION="lowp":ge.FS_MAX_FLOAT_PRECISION="mediump",ge.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),ge.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),ge.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),ge.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),ge.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),ge.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),ge.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),ge.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),ge.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),ge.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){ge.SUPPORTED_EXTENSIONS[e]=!0})))}class Te{constructor(){this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}get canvasPos(){return this._gotCanvasPos?this._canvasPos:null}set canvasPos(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}get origin(){return this._gotOrigin?this._origin:null}set origin(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}get direction(){return this._gotDirection?this._direction:null}set direction(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}get indices(){return this.entity&&this._gotIndices?this._indices:null}set indices(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}get localPos(){return this.entity&&this._gotLocalPos?this._localPos:null}set localPos(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}get snappedCanvasPos(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null}set snappedCanvasPos(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}get worldPos(){return this._gotWorldPos?this._worldPos:null}set worldPos(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}get viewPos(){return this.entity&&this._gotViewPos?this._viewPos:null}set viewPos(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}get bary(){return this.entity&&this._gotBary?this._bary:null}set bary(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}get worldNormal(){return this.entity&&this._gotWorldNormal?this._worldNormal:null}set worldNormal(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}get uv(){return this.entity&&this._gotUV?this._uv:null}set uv(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}reset(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}class be{constructor(e,t,s){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,s),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=s.split("\n"),n=[];for(let e=0;e0&&"/"===s.charAt(n+1)&&(s=s.substring(0,n)),t.push(s);return t.join("\n")}function _e(e){console.error(e.join("\n"))}class Be{constructor(e,t){this.id=Re.addItem({}),this.source=t,this.init(e)}init(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new be(e,e.VERTEX_SHADER,Ce(this.source.vertex)),this._fragmentShader=new be(e,e.FRAGMENT_SHADER,Ce(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void _e(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void _e(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void _e(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void _e(this.errors);let t,s,n,i,a;if(this.compiled=!0,this.handle=e.createProgram(),!this.handle)return void(this.errors=["Failed to allocate program"]);if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void _e(this.errors);const r=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(s=0;sthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}setData(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}bind(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}unbind(){this.allocated&&this._gl.bindBuffer(this.type,null)}destroy(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}class Se{constructor(e,t){this.scene=e,this.aabb=h.AABB3(),this.origin=h.vec3(t),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}addMarker(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}markerWorldPosUpdated(e){if(!this.markers[e.id])return;const t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}removeMarker(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}update(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}_buildMarkerList(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}_buildPositions(){let e=0;for(let t=0;t-t){s._setVisible(!1);continue}const r=s.canvasPos,l=r[0],o=r[1];l+10<0||o+10<0||l-10>n||o-10>i?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[a++]=l,this.pixels[a++]=o):s._setVisible(!0):s._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let s=0;s{this._occlusionTestListDirty=!0})),this._onCameraProjMatrix=e.camera.on("projMatrix",(()=>{this._occlusionTestListDirty=!0})),this._onCanvasBoundary=e.canvas.on("boundary",(()=>{this._occlusionTestListDirty=!0}))}addMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s||(s=new Se(this._scene,e.origin),this._occlusionLayers[s.originHash]=s,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s,this._occlusionTestListDirty=!0}markerWorldPosUpdated(e){const t=this._markersToOcclusionLayersMap[e.id];if(!t)return void e.error("Marker has not been added to OcclusionTester");const s=e.origin.join();if(s!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let n=this._occlusionLayers[s];n||(n=new Se(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),n.addMarker(e),this._markersToOcclusionLayersMap[e.id]=n}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s&&(1===s.numMarkers?(s.destroy(),delete this._occlusionLayers[s.originHash],this._occlusionLayersListDirty=!0):s.removeMarker(e),delete this._markersToOcclusionLayersMap[e.id])}get needOcclusionTest(){return this._occlusionTestListDirty}bindRenderBuf(){const e=[this._scene.canvas.canvas.id,this._scene._sectionPlanesState.getHash()].join(";");if(e!==this._shaderSourceHash&&(this._shaderSourceHash=e,this._shaderSourceDirty=!0),this._shaderSourceDirty&&(this._buildShaderSource(),this._shaderSourceDirty=!1,this._programDirty=!0),this._programDirty&&(this._buildProgram(),this._programDirty=!1,this._occlusionTestListDirty=!0),this._occlusionLayersListDirty&&(this._buildOcclusionLayersList(),this._occlusionLayersListDirty=!1),this._occlusionTestListDirty){for(let e=0,t=this._occlusionLayersList.length;e0,s=[];return s.push("#version 300 es"),s.push("// OcclusionTester vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("vec4 worldPosition = vec4(position, 1.0); "),s.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&s.push(" vWorldPosition = worldPosition;"),s.push(" vec4 clipPos = projMatrix * viewPosition;"),s.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?s.push("vFragDepth = 1.0 + clipPos.w;"):s.push("clipPos.z += -0.001;"),s.push(" gl_Position = clipPos;"),s.push("}"),s}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,s=t.sectionPlanes.length>0,n=[];if(n.push("#version 300 es"),n.push("// OcclusionTester fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),n.push("}"),n}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Be(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=n.sectionPlanes;for(let n=0;n{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=h.mat4();return()=>(e&&h.inverseMat4(n.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,n=this._scene,i=n.sao,a=t.drawingBufferWidth,r=t.drawingBufferHeight,l=n.camera.project._state,o=l.near,c=l.far,u=l.matrix,p=this._getInverseProjectMat(),A=Math.random(),d="perspective"===n.camera.projection;Me[0]=a,Me[1]=r,t.viewport(0,0,a,r),t.clearColor(0,0,0,1),t.disable(t.DEPTH_TEST),t.disable(t.BLEND),t.frontFace(t.CCW),t.clear(t.COLOR_BUFFER_BIT),s.bind(),t.uniform1f(this._uCameraNear,o),t.uniform1f(this._uCameraFar,c),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,u),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,p),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,i.scale*(c/5)),t.uniform1f(this._uIntensity,i.intensity),t.uniform1f(this._uBias,i.bias),t.uniform1f(this._uKernelRadius,i.kernelRadius),t.uniform1f(this._uMinResolution,i.minResolution),t.uniform2fv(this._uViewport,Me),t.uniform1f(this._uRandomSeed,A);const f=e.getDepthTexture();s.bindTexture(this._uDepthTexture,f,0),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),t.drawElements(t.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}_build(){let e=!1;const t=this._scene.sao;if(t.numSamples!==this._numSamples&&(this._numSamples=Math.floor(t.numSamples),e=!0),!e)return;const s=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Be(s,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV; \n \n out vec2 vUV;\n \n void main () {\n gl_Position = vec4(aPosition, 1.0);\n vUV = aUV;\n }"],fragment:[`#version 300 es \n precision highp float;\n precision highp int; \n \n #define NORMAL_TEXTURE 0\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n #define NUM_SAMPLES ${this._numSamples}\n #define NUM_RINGS 4 \n \n in vec2 vUV;\n \n uniform sampler2D uDepthTexture;\n \n uniform float uCameraNear;\n uniform float uCameraFar;\n uniform mat4 uProjectMatrix;\n uniform mat4 uInverseProjectMatrix;\n \n uniform bool uPerspective;\n\n uniform float uScale;\n uniform float uIntensity;\n uniform float uBias;\n uniform float uKernelRadius;\n uniform float uMinResolution;\n uniform vec2 uViewport;\n uniform float uRandomSeed;\n\n float pow2( const in float x ) { return x*x; }\n \n highp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract(sin(sn) * c);\n }\n\n vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n const float packUpscale = 256. / 255.;\n const float unpackDownScale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. ); \n\n const float shiftRights = 1. / 256.;\n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float unpackRGBAToFloat( const in vec4 v ) { \n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n }\n\n float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n }\n \n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n if (uPerspective) {\n return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );\n } else {\n return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );\n }\n }\n\n vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {\n \tfloat clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];\n \tvec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );\n \tclipPosition *= clipW; \n \treturn ( uInverseProjectMatrix * clipPosition ).xyz;\n }\n\n vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) { \n return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n }\n\n float scaleDividedByCameraFar;\n float minResolutionMultipliedByCameraFar;\n\n float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n \tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n \tfloat viewDistance = length( viewDelta );\n \tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n \treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );\n }\n\n const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n float getAmbientOcclusion( const in vec3 centerViewPosition ) {\n \n \tscaleDividedByCameraFar = uScale / uCameraFar;\n \tminResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;\n \tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );\n\n \tfloat angle = rand( vUV + uRandomSeed ) * PI2;\n \tvec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;\n \tvec2 radiusStep = radius;\n\n \tfloat occlusionSum = 0.0;\n \tfloat weightSum = 0.0;\n\n \tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n \t\tvec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;\n \t\tradius += radiusStep;\n \t\tangle += ANGLE_STEP;\n\n \t\tfloat sampleDepth = getDepth( sampleUv );\n \t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }`]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const n=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Oe(s,s.ARRAY_BUFFER,i,i.length,3,s.STATIC_DRAW),this._uvBuf=new Oe(s,s.ARRAY_BUFFER,n,n.length,2,s.STATIC_DRAW),this._indicesBuf=new Oe(s,s.ELEMENT_ARRAY_BUFFER,a,a.length,1,s.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}destroy(){this._program&&(this._program.destroy(),this._program=null)}}const He=new Float32Array(Qe(17,[0,1])),Ue=new Float32Array(Qe(17,[1,0])),Ge=new Float32Array(function(e,t){const s=[];for(let n=0;n<=e;n++)s.push(ke(n,t));return s}(17,4)),je=new Float32Array(2);class Ve{constructor(e){this._scene=e,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}init(){const e=this._scene.canvas.gl;if(this._program=new Be(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS 16\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }"]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const t=new Float32Array([1,1,0,1,0,0,1,0]),s=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),n=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Oe(e,e.ARRAY_BUFFER,s,s.length,3,e.STATIC_DRAW),this._uvBuf=new Oe(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Oe(e,e.ELEMENT_ARRAY_BUFFER,n,n.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}render(e,t,s){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=h.mat4();return()=>(e&&h.inverseMat4(a.camera.projMatrix,t),t)})());const n=this._scene.canvas.gl,i=this._program,a=this._scene,r=n.drawingBufferWidth,l=n.drawingBufferHeight,o=a.camera.project._state,c=o.near,u=o.far;n.viewport(0,0,r,l),n.clearColor(0,0,0,1),n.enable(n.DEPTH_TEST),n.disable(n.BLEND),n.frontFace(n.CCW),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),i.bind(),je[0]=r,je[1]=l,n.uniform2fv(this._uViewport,je),n.uniform1f(this._uCameraNear,c),n.uniform1f(this._uCameraFar,u),n.uniform1f(this._uDepthCutoff,.01),0===s?n.uniform2fv(this._uSampleOffsets,Ue):n.uniform2fv(this._uSampleOffsets,He),n.uniform1fv(this._uSampleWeights,Ge);const p=e.getDepthTexture(),A=t.getTexture();i.bindTexture(this._uDepthTexture,p,0),i.bindTexture(this._uOcclusionTexture,A,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),n.drawElements(n.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function ke(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Qe(e,t){const s=[];for(let n=0;n<=e;n++)s.push(t[0]*n),s.push(t[1]*n);return s}class We{constructor(e,t,s){s=s||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=s.size,this._hasDepthTexture=!!s.depthTexture}setSize(e){this.size=e}webglContextRestored(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}bind(...e){if(this._touch(...e),this.bound)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}createTexture(e,t,s=null){const n=this.gl,i=n.createTexture();return n.bindTexture(n.TEXTURE_2D,i),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),s?n.texStorage2D(n.TEXTURE_2D,1,s,e,t):n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,t,0,n.RGBA,n.UNSIGNED_BYTE,null),i}_touch(...e){let t,s;const n=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=n.drawingBufferWidth,s=n.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>n.deleteTexture(e))),n.deleteFramebuffer(this.buffer.framebuf),n.deleteRenderbuffer(this.buffer.renderbuf)}const i=[];let a;e.length>0?i.push(...e.map((e=>this.createTexture(t,s,e)))):i.push(this.createTexture(t,s)),this._hasDepthTexture&&(a=n.createTexture(),n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texImage2D(n.TEXTURE_2D,0,n.DEPTH_COMPONENT32F,t,s,0,n.DEPTH_COMPONENT,n.FLOAT,null));const r=n.createRenderbuffer();n.bindRenderbuffer(n.RENDERBUFFER,r),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT32F,t,s);const l=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,l);for(let e=0;e0&&n.drawBuffers(i.map(((e,t)=>n.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,a,0):n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,r),n.bindTexture(n.TEXTURE_2D,null),n.bindRenderbuffer(n.RENDERBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,l),!n.isFramebuffer(l))throw"Invalid framebuffer";n.bindFramebuffer(n.FRAMEBUFFER,null);const o=n.checkFramebufferStatus(n.FRAMEBUFFER);switch(o){case n.FRAMEBUFFER_COMPLETE:break;case n.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case n.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+o}this.buffer={framebuf:l,renderbuf:r,texture:i[0],textures:i,depthTexture:a,width:t,height:s},this.bound=!1}clear(){if(!this.bound)throw"Render buffer not bound";const e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}read(e,t,s=null,n=null,i=Uint8Array,a=4,r=0){const l=e,o=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,c=new i(a),u=this.gl;return u.readBuffer(u.COLOR_ATTACHMENT0+r),u.readPixels(l,o,1,1,s||u.RGBA,n||u.UNSIGNED_BYTE,c,0),c}readArray(e=null,t=null,s=Uint8Array,n=4,i=0){const a=new s(this.buffer.width*this.buffer.height*n),r=this.gl;return r.readBuffer(r.COLOR_ATTACHMENT0+i),r.readPixels(0,0,this.buffer.width,this.buffer.height,e||r.RGBA,t||r.UNSIGNED_BYTE,a,0),a}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,n=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const r=this.buffer.width,l=this.buffer.height,o=l/2|0,c=4*r,u=new Uint8Array(4*r);for(let e=0;ee.deleteTexture(t))),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}class ze{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let n=s[e];return n||(n=new We(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=n),n}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function Ke(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let s;switch(t){case"WEBGL_depth_texture":s=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=e.getExtension(t)}return e._cachedExtensions[t]=s,s}const Ye=function(t,s){s=s||{};const n=new we(t),i=t.canvas.canvas,a=t.canvas.gl,r=!!s.transparent,l=s.alphaDepthMask,o=new e({});let c={},u={},p=!0,A=!0,f=!0,I=!0,y=!0,m=!0,v=!0,w=!0;const g=new ze(t);let E=!1;const T=new Fe(t),b=new Ve(t);function D(){p&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableMap,n=t.drawableListPreCull;let i=0;for(let e in s)s.hasOwnProperty(e)&&(n[i++]=s[e]);n.length=i}}(),p=!1,A=!0),A&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),A=!1,f=!0),f&&function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableListPreCull,n=t.drawableList;let i=0;for(let e=0,t=s.length;e0)for(n.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||k>0||H>0||U>0){if(a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,l||a.depthMask(!1),(H>0||U>0)&&a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),U>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(n.lastProgramId=null,t.highlightMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.enable(a.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||J>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),J>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=A.size[0],n=t%s-Math.floor(s/2),i=Math.floor(t/s)-Math.floor(s/2),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2));R.push({x:n,y:i,dist:a,isVertex:r&&l?m[e+3]>y.length/2:r,result:[m[e+0],m[e+1],m[e+2],m[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[w[e+0],w[e+1],w[e+2],w[e+3]]})}let O=null,S=null,N=null,x=null;if(R.length>0){R.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),x=R[0].isVertex?"vertex":"edge";const e=R[0].result,t=R[0].normal,s=R[0].id,n=y[e[3]],i=n.origin,a=n.coordinateScale;S=h.normalizeVec3([t[0]/h.MAX_INT,t[1]/h.MAX_INT,t[2]/h.MAX_INT]),O=[e[0]*a[0]+i[0],e[1]*a[1]+i[1],e[2]*a[2]+i[2]],N=o.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===E&&null==O)return null;let L=null;null!==O&&(L=t.camera.projectWorldPos(O));const M=N&&N.delegatePickedEntity?N.delegatePickedEntity():N;return u.reset(),u.snappedToEdge="edge"===x,u.snappedToVertex="vertex"===x,u.worldPos=O,u.worldNormal=S,u.entity=M,u.canvasPos=s,u.snappedCanvasPos=L||s,u}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new Le(t,g),this._occlusionTester.addMarker(e),t.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){D(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.clearColor(0,0,0,0),a.enable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.disable(a.BLEND),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);for(let e in c)if(c.hasOwnProperty(e)){const t=c[e].drawableList;for(let e=0,s=t.length;e{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!0:e.keyCode===this.KEY_ALT?this.altDown=!0:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!0),this.keyDown[e.keyCode]=!0,this.fire("keydown",e.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=e=>{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!1:e.keyCode===this.KEY_ALT?this.altDown=!1:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!1),this.keyDown[e.keyCode]=!1,this.fire("keyup",e.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=e=>{this.enabled&&(this.mouseover=!0,this._getMouseCanvasPos(e),this.fire("mouseenter",this.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=e=>{this.enabled&&(this.mouseover=!1,this._getMouseCanvasPos(e),this.fire("mouseleave",this.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!0;break;case 2:this.mouseDownMiddle=!0;break;case 3:this.mouseDownRight=!0}this._getMouseCanvasPos(e),this.element.focus(),this.fire("mousedown",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!1;break;case 2:this.mouseDownMiddle=!1;break;case 3:this.mouseDownRight=!1}this.fire("mouseup",this.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("click",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("dblclick",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}});const e=this.scene.tickify((()=>this.fire("mousemove",this.mouseCanvasPos,!0)));this.element.addEventListener("mousemove",this._mouseMoveListener=t=>{this.enabled&&(this._getMouseCanvasPos(t),e(),this.mouseover&&t.preventDefault())});const t=this.scene.tickify((e=>{this.fire("mousewheel",e,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=(e,s)=>{if(!this.enabled)return;const n=Math.max(-1,Math.min(1,40*-e.deltaY));t(n)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(n=>{e>=n[0]-s&&e<=n[0]+s&&t>=n[1]-s&&t<=n[1]+s&&this.fire("mouseclicked",n,!0)}))}this._eventsBound=!0}_unbindEvents(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}_getMouseCanvasPos(e){if(e){let t=e.target,s=0,n=0;for(;t.offsetParent;)s+=t.offsetLeft,n+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-n}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}setEnabled(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}getEnabled(){return this.enabled}setKeyboardEnabled(e){this.keyboardEnabled=e}getKeyboardEnabled(){return this.keyboardEnabled}destroy(){super.destroy(),this._unbindEvents()}}const qe=new e({});class Je{constructor(e){this.id=qe.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){qe.removeItem(this.id)}}class Ze extends _{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new Je({boundary:[0,0,100,100]}),this.boundary=t.boundary,this.autoBoundary=t.autoBoundary}set boundary(e){if(!this._autoBoundary){if(!e){const t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}get boundary(){return this._state.boundary}set autoBoundary(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){const t=e[2],s=e[3];this._state.boundary=[0,0,t,s],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}get autoBoundary(){return this._autoBoundary}_getState(){return this._state}destroy(){super.destroy(),this._state.destroy()}}class $e extends _{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this._fov=60,this._canvasResized=this.scene.canvas.on("boundary",this._needUpdate,this),this.fov=t.fov,this.fovAxis=t.fovAxis,this.near=t.near,this.far=t.far}_update(){const e=this.scene.canvas.boundary,t=e[2]/e[3],s=this._fovAxis;let n=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(n/=t),n=Math.min(n,120),h.perspectiveMat4(n*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}set fov(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}get fov(){return this._fov}set fovAxis(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}get fovAxis(){return this._fovAxis}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class et extends _{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.scale=t.scale,this.near=t.near,this.far=t.far,this._onCanvasBoundary=this.scene.canvas.on("boundary",this._needUpdate,this)}_update(){const e=this.scene,t=.5*this._scale,s=e.canvas.boundary,n=s[2],i=s[3],a=n/i;let r,l,o,c;n>i?(r=-t,l=t,o=t/a,c=-t/a):(r=-t*a,l=t*a,o=t,c=-t),h.orthoMat4c(r,l,c,o,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set scale(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}get scale(){return this._scale}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class tt extends _{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:1e4}),this._left=-1,this._right=1,this._bottom=-1,this._top=1,this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.left=t.left,this.right=t.right,this.bottom=t.bottom,this.top=t.top,this.near=t.near,this.far=t.far}_update(){h.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set left(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}get left(){return this._left}set right(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}get right(){return this._right}set top(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}get top(){return this._top}set bottom(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}get bottom(){return this._bottom}set near(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}get near(){return this._state.near}set far(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class st extends _{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4()}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!1,this.matrix=t.matrix}set matrix(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}get matrix(){return this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy()}}const nt=h.vec3(),it=h.vec3(),at=h.vec3(),rt=h.vec3(),lt=h.vec3(),ot=h.vec3(),ct=h.vec4(),ut=h.vec4(),ht=h.vec4(),pt=h.mat4(),At=h.mat4(),dt=h.vec3(),ft=h.vec3(),It=h.vec3(),yt=h.vec3();class mt extends _{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new Je({deviceMatrix:h.mat4(),hasDeviceMatrix:!1,matrix:h.mat4(),normalMatrix:h.mat4(),inverseMatrix:h.mat4()}),this._perspective=new $e(this),this._ortho=new et(this),this._frustum=new tt(this),this._customProjection=new st(this),this._project=this._perspective,this._eye=h.vec3([0,0,10]),this._look=h.vec3([0,0,0]),this._up=h.vec3([0,1,0]),this._worldUp=h.vec3([0,1,0]),this._worldRight=h.vec3([1,0,0]),this._worldForward=h.vec3([0,0,-1]),this.deviceMatrix=t.deviceMatrix,this.eye=t.eye,this.look=t.look,this.up=t.up,this.worldAxis=t.worldAxis,this.gimbalLock=t.gimbalLock,this.constrainPitch=t.constrainPitch,this.projection=t.projection,this._perspective.on("matrix",(()=>{"perspective"===this._projectionType&&this.fire("projMatrix",this._perspective.matrix)})),this._ortho.on("matrix",(()=>{"ortho"===this._projectionType&&this.fire("projMatrix",this._ortho.matrix)})),this._frustum.on("matrix",(()=>{"frustum"===this._projectionType&&this.fire("projMatrix",this._frustum.matrix)})),this._customProjection.on("matrix",(()=>{"customProjection"===this._projectionType&&this.fire("projMatrix",this._customProjection.matrix)}))}_update(){const e=this._state;let t;"ortho"===this.projection?(h.subVec3(this._eye,this._look,dt),h.normalizeVec3(dt,ft),h.mulVec3Scalar(ft,1e3,It),h.addVec3(this._look,It,yt),t=yt):t=this._eye,e.hasDeviceMatrix?(h.lookAtMat4v(t,this._look,this._up,At),h.mulMat4(e.deviceMatrix,At,e.matrix)):h.lookAtMat4v(t,this._look,this._up,e.matrix),h.inverseMat4(this._state.matrix,this._state.inverseMatrix),h.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}orbitYaw(e){let t=h.subVec3(this._eye,this._look,nt);h.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,pt),t=h.transformPoint3(pt,t,it),this.eye=h.addVec3(this._look,t,at),this.up=h.transformPoint3(pt,this._up,rt)}orbitPitch(e){if(this._constrainPitch&&(e=h.dotVec3(this._up,this._worldUp)/h.DEGTORAD)<1)return;let t=h.subVec3(this._eye,this._look,nt);const s=h.cross3Vec3(h.normalizeVec3(t,it),h.normalizeVec3(this._up,at));h.rotationMat4v(.0174532925*e,s,pt),t=h.transformPoint3(pt,t,rt),this.up=h.transformPoint3(pt,this._up,lt),this.eye=h.addVec3(t,this._look,ot)}yaw(e){let t=h.subVec3(this._look,this._eye,nt);h.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,pt),t=h.transformPoint3(pt,t,it),this.look=h.addVec3(t,this._eye,at),this._gimbalLock&&(this.up=h.transformPoint3(pt,this._up,rt))}pitch(e){if(this._constrainPitch&&(e=h.dotVec3(this._up,this._worldUp)/h.DEGTORAD)<1)return;let t=h.subVec3(this._look,this._eye,nt);const s=h.cross3Vec3(h.normalizeVec3(t,it),h.normalizeVec3(this._up,at));h.rotationMat4v(.0174532925*e,s,pt),this.up=h.transformPoint3(pt,this._up,ot),t=h.transformPoint3(pt,t,rt),this.look=h.addVec3(t,this._eye,lt)}pan(e){const t=h.subVec3(this._eye,this._look,nt),s=[0,0,0];let n;if(0!==e[0]){const i=h.cross3Vec3(h.normalizeVec3(t,[]),h.normalizeVec3(this._up,it));n=h.mulVec3Scalar(i,e[0]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]}0!==e[1]&&(n=h.mulVec3Scalar(h.normalizeVec3(this._up,at),e[1]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),0!==e[2]&&(n=h.mulVec3Scalar(h.normalizeVec3(t,rt),e[2]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),this.eye=h.addVec3(this._eye,s,lt),this.look=h.addVec3(this._look,s,ot)}zoom(e){const t=h.subVec3(this._eye,this._look,nt),s=Math.abs(h.lenVec3(t,it)),n=Math.abs(s+e);if(n<.5)return;const i=h.normalizeVec3(t,at);this.eye=h.addVec3(this._look,h.mulVec3Scalar(i,n),rt)}set eye(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}get eye(){return this._eye}set look(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}get look(){return this._look}set up(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}get up(){return this._up}set deviceMatrix(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}get deviceMatrix(){return this._state.deviceMatrix}set worldAxis(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=h.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}get worldAxis(){return this._worldAxis}get worldUp(){return this._worldUp}get xUp(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}get yUp(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}get zUp(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}get worldRight(){return this._worldRight}get worldForward(){return this._worldForward}set gimbalLock(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}get gimbalLock(){return this._gimbalLock}set constrainPitch(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}get eyeLookDist(){return h.lenVec3(h.subVec3(this._look,this._eye,nt))}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get viewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get normalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get viewNormalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get inverseViewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}get projMatrix(){return this[this.projection].matrix}get perspective(){return this._perspective}get ortho(){return this._ortho}get frustum(){return this._frustum}get customProjection(){return this._customProjection}set projection(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}get projection(){return this._projectionType}get project(){return this._project}projectWorldPos(e){const t=ct,s=ut,n=ht;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,h.mulMat4v4(this.viewMatrix,t,s),h.mulMat4v4(this.projMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1;const i=this.scene.canvas.canvas,a=i.offsetWidth/2,r=i.offsetHeight/2;return[n[0]*a+a,n[1]*r+r]}destroy(){super.destroy(),this._state.destroy()}}class vt extends _{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class wt extends vt{get type(){return"DirLight"}constructor(e,t={}){super(e,t),this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const s=this.scene.camera,n=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=n.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Je({type:"dir",dir:h.vec3([1,1,1]),color:h.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=h.identityMat4());const e=this.scene.camera,t=this._state.dir,s=e.look,n=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],i=[0,1,0];h.lookAtMat4v(n,s,i,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=h.identityMat4()),h.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new We(this.scene.canvas.canvas,this.scene.canvas.gl,{size:[1024,1024]})),this._shadowRenderBuf)}),this.dir=t.dir,this.color=t.color,this.intensity=t.intensity,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set dir(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get dir(){return this._state.dir}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}class gt extends vt{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:h.vec3([.7,.7,.7]),intensity:1},this.color=t.color,this.intensity=t.intensity,this.scene._lightCreated(this)}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}get intensity(){return this._state.intensity}destroy(){super.destroy(),this.scene._lightDestroyed(this)}}class Et extends _{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),d.memory.meshes++}destroy(){super.destroy(),d.memory.meshes--}}var Tt=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}();const bt=function(){const e=h.mat4(),t=h.mat4();return function(s,n){n=n||h.mat4();const i=s[0],a=s[1],r=s[2],l=s[3]-i,o=s[4]-a,c=s[5]-r,u=65535;return h.identityMat4(e),h.translationMat4v(s,e),h.identityMat4(t),h.scalingMat4v([l/u,o/u,c/u],t),h.mulMat4(e,t,n),n}}();var Dt=function(){const e=h.mat4(),t=h.mat4();return function(s,n,i){const a=new Uint16Array(s.length),r=new Float32Array([i[0]!==n[0]?65535/(i[0]-n[0]):0,i[1]!==n[1]?65535/(i[1]-n[1]):0,i[2]!==n[2]?65535/(i[2]-n[2]):0]);let l;for(l=0;l=0?1:-1),t=(1-Math.abs(i))*(a>=0?1:-1);i=e,a=t}return new Int8Array([Math[s](127.5*i+(i<0?-1:0)),Math[n](127.5*a+(a<0?-1:0))])}function Ct(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}function _t(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Bt={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let n,i;for(n=0;n<3;n++)t[n]=Number.MAX_VALUE,s[n]=-Number.MAX_VALUE;for(n=0;nr&&(i=s,r=a),s=Rt(e,l,"floor","ceil"),n=Ct(s),a=_t(e,l,n),a>r&&(i=s,r=a),s=Rt(e,l,"ceil","ceil"),n=Ct(s),a=_t(e,l,n),a>r&&(i=s,r=a),t[l]=i[0],t[l+1]=i[1];return t},decompressNormals:function(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t},decompressNormal:function(e,t){let s=e[0],n=e[1];s=(2*s+1)/255,n=(2*n+1)/255;const i=1-Math.abs(s)-Math.abs(n);i<0&&(s=(1-Math.abs(n))*(s>=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t}},Ot=d.memory,St=h.AABB3();class Nt extends Et{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Je({compressGeometry:!!t.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._edgeIndicesBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._aabbDirty=!0,this._boundingSphere=!0,this._aabb=null,this._aabbDirty=!0,this._obb=null,this._obbDirty=!0;const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Bt.getPositionsBounds(t.positions),n=Bt.compressPositions(t.positions,e.min,e.max);s.positions=n.quantized,s.positionsDecodeMatrix=n.decodeMatrix}else s.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(s.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Bt.getUVBounds(t.uv),n=Bt.compressUVs(t.uv,e.min,e.max);s.uv=n.quantized,s.uvDecodeMatrix=n.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Bt.compressNormals(t.normals):s.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(s.indices=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)),this._buildHash(),Ot.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Ot.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Ot.positions+=e.positionsBuf.numItems),e.normals){let s=e.compressGeometry;e.normalsBuf=new Oe(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,s),Ot.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Ot.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Oe(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Ot.uvs+=e.uvBuf.numItems)}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}_getPickTrianglePositions(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}_getPickTriangleColors(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}_buildEdgeIndices(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=Tt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,s,s.length,1,t.STATIC_DRAW),Ot.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=h.buildPickTriangles(e.positions,e.indices,e.compressGeometry),n=s.positions,i=s.colors;this._pickTrianglePositionsBuf=new Oe(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Ot.positions+=this._pickTrianglePositionsBuf.numItems,Ot.colors+=this._pickTriangleColorsBuf.numItems}_buildPickVertexVBOs(){}_webglContextLost(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}_webglContextRestored(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}get primitive(){return this._state.primitiveName}get compressGeometry(){return this._state.compressGeometry}get positions(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Bt.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(e){const t=this._state,s=t.positions;if(s)if(s.length===e.length){if(this._state.compressGeometry){const s=Bt.getPositionsBounds(e),n=Bt.compressPositions(e,s.min,s.max);e=n.quantized,t.positionsDecodeMatrix=n.decodeMatrix}s.set(e),t.positionsBuf&&t.positionsBuf.setData(s),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}get normals(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){const e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Bt.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}}set normals(e){if(this._state.compressGeometry)return void this.error("can't update geometry normals - quantized geometry is immutable");const t=this._state,s=t.normals;s?s.length===e.length?(s.set(e),t.normalsBuf&&t.normalsBuf.setData(s),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}get uv(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Bt.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null}set uv(e){if(this._state.compressGeometry)return void this.error("can't update geometry UVs - quantized geometry is immutable");const t=this._state,s=t.uv;s?s.length===e.length?(s.set(e),t.uvBuf&&t.uvBuf.setData(s),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}get colors(){return this._state.colors}set colors(e){if(this._state.compressGeometry)return void this.error("can't update geometry colors - quantized geometry is immutable");const t=this._state,s=t.colors;s?s.length===e.length?(s.set(e),t.colorsBuf&&t.colorsBuf.setData(s),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}get indices(){return this._state.indices}get aabb(){return this._aabbDirty&&(this._aabb||(this._aabb=h.AABB3()),h.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=h.OBB3()),h.positions3ToAABB3(this._state.positions,St,this._state.positionsDecodeMatrix),h.AABB3ToOBB3(St,this._obb),this._obbDirty=!1),this._obb}get numTriangles(){return this._numTriangles}_setAABBDirty(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Ot.meshes--}}function xt(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return m.apply(e,{positions:[h,p,A,o,p,A,o,c,A,h,c,A,h,p,A,h,c,A,h,c,u,h,p,u,h,p,A,h,p,u,o,p,u,o,p,A,o,p,A,o,p,u,o,c,u,o,c,A,o,c,u,h,c,u,h,c,A,o,c,A,h,c,u,o,c,u,o,p,u,h,p,u],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}class Lt extends _{get type(){return"Material"}constructor(e,t={}){super(e,t),d.memory.materials++}destroy(){super.destroy(),d.memory.materials--}}const Mt={opaque:0,mask:1,blend:2},Ft=["opaque","mask","blend"];class Ht extends Lt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new Je({type:"PhongMaterial",ambient:h.vec3([1,1,1]),diffuse:h.vec3([1,1,1]),specular:h.vec3([1,1,1]),emissive:h.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),this.ambient=t.ambient,this.diffuse=t.diffuse,this.specular=t.specular,this.emissive=t.emissive,this.alpha=t.alpha,this.shininess=t.shininess,this.reflectivity=t.reflectivity,this.lineWidth=t.lineWidth,this.pointSize=t.pointSize,t.ambientMap&&(this._ambientMap=this._checkComponent("Texture",t.ambientMap)),t.diffuseMap&&(this._diffuseMap=this._checkComponent("Texture",t.diffuseMap)),t.specularMap&&(this._specularMap=this._checkComponent("Texture",t.specularMap)),t.emissiveMap&&(this._emissiveMap=this._checkComponent("Texture",t.emissiveMap)),t.alphaMap&&(this._alphaMap=this._checkComponent("Texture",t.alphaMap)),t.reflectivityMap&&(this._reflectivityMap=this._checkComponent("Texture",t.reflectivityMap)),t.normalMap&&(this._normalMap=this._checkComponent("Texture",t.normalMap)),t.occlusionMap&&(this._occlusionMap=this._checkComponent("Texture",t.occlusionMap)),t.diffuseFresnel&&(this._diffuseFresnel=this._checkComponent("Fresnel",t.diffuseFresnel)),t.specularFresnel&&(this._specularFresnel=this._checkComponent("Fresnel",t.specularFresnel)),t.emissiveFresnel&&(this._emissiveFresnel=this._checkComponent("Fresnel",t.emissiveFresnel)),t.alphaFresnel&&(this._alphaFresnel=this._checkComponent("Fresnel",t.alphaFresnel)),t.reflectivityFresnel&&(this._reflectivityFresnel=this._checkComponent("Fresnel",t.reflectivityFresnel)),this.alphaMode=t.alphaMode,this.alphaCutoff=t.alphaCutoff,this.backfaces=t.backfaces,this.frontface=t.frontface,this._makeHash()}_makeHash(){const e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}set ambient(e){let t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get ambient(){return this._state.ambient}set diffuse(e){let t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get diffuse(){return this._state.diffuse}set specular(e){let t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get specular(){return this._state.specular}set emissive(e){let t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}get emissive(){return this._state.emissive}set alpha(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}get alpha(){return this._state.alpha}set shininess(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}get shininess(){return this._state.shininess}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set pointSize(e){this._state.pointSize=e||1,this.glRedraw()}get pointSize(){return this._state.pointSize}set reflectivity(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}get reflectivity(){return this._state.reflectivity}get normalMap(){return this._normalMap}get ambientMap(){return this._ambientMap}get diffuseMap(){return this._diffuseMap}get specularMap(){return this._specularMap}get emissiveMap(){return this._emissiveMap}get alphaMap(){return this._alphaMap}get reflectivityMap(){return this._reflectivityMap}get occlusionMap(){return this._occlusionMap}get diffuseFresnel(){return this._diffuseFresnel}get specularFresnel(){return this._specularFresnel}get emissiveFresnel(){return this._emissiveFresnel}get alphaFresnel(){return this._alphaFresnel}get reflectivityFresnel(){return this._reflectivityFresnel}set alphaMode(e){let t=Mt[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}get alphaMode(){return Ft[this._state.alphaMode]}set alphaCutoff(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}get alphaCutoff(){return this._state.alphaCutoff}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set frontface(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}get frontface(){return this._state.frontface?"ccw":"cw"}destroy(){super.destroy(),this._state.destroy()}}const Ut={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}};class Gt extends Lt{get type(){return"EmphasisMaterial"}get presets(){return Ut}constructor(e,t={}){super(e,t),this._state=new Je({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),this._preset="default",t.preset?(this.preset=t.preset,void 0!==t.fill&&(this.fill=t.fill),t.fillColor&&(this.fillColor=t.fillColor),void 0!==t.fillAlpha&&(this.fillAlpha=t.fillAlpha),void 0!==t.edges&&(this.edges=t.edges),t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth),void 0!==t.backfaces&&(this.backfaces=t.backfaces),void 0!==t.glowThrough&&(this.glowThrough=t.glowThrough)):(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.backfaces=t.backfaces,this.glowThrough=t.glowThrough)}set fill(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}get fill(){return this._state.fill}set fillColor(e){let t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}get fillColor(){return this._state.fillColor}set fillAlpha(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}get fillAlpha(){return this._state.fillAlpha}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set glowThrough(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}get glowThrough(){return this._state.glowThrough}set preset(e){if(e=e||"default",this._preset===e)return;const t=Ut[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Ut).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const jt={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}};class Vt extends Lt{get type(){return"EdgeMaterial"}get presets(){return jt}constructor(e,t={}){super(e,t),this._state=new Je({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),this._preset="default",t.preset?(this.preset=t.preset,t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth)):(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth),this.edges=!1!==t.edges}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=jt[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(jt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const kt={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}};class Qt extends _{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=h.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return kt}set units(e){e||(e="meters");kt[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}get units(){return this._units}set scale(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}get scale(){return this._scale}set origin(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}get origin(){return this._origin}worldToRealPos(e,t=h.vec3(3)){t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}realToWorldPos(e,t=h.vec3(3)){return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}class Wt extends _{constructor(e,t={}){super(e,t),this._supported=ge.SUPPORTED_EXTENSIONS.OES_standard_derivatives,this.enabled=t.enabled,this.kernelRadius=t.kernelRadius,this.intensity=t.intensity,this.bias=t.bias,this.scale=t.scale,this.minResolution=t.minResolution,this.numSamples=t.numSamples,this.blur=t.blur,this.blendCutoff=t.blendCutoff,this.blendFactor=t.blendFactor}get supported(){return this._supported}set enabled(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}get enabled(){return this._enabled}get possible(){if(!this._supported)return!1;if(!this._enabled)return!1;const e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}get active(){return this._active}set kernelRadius(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}get kernelRadius(){return this._kernelRadius}set intensity(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}get intensity(){return this._intensity}set bias(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}get bias(){return this._bias}set scale(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}get scale(){return this._scale}set minResolution(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}get minResolution(){return this._minResolution}set numSamples(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}get numSamples(){return this._numSamples}set blur(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}get blur(){return this._blur}set blendCutoff(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}get blendCutoff(){return this._blendCutoff}set blendFactor(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}get blendFactor(){return this._blendFactor}destroy(){super.destroy()}}const zt={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class Kt extends Lt{get type(){return"PointsMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new Je({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),t.preset?(this.preset=t.preset,void 0!==t.pointSize&&(this.pointSize=t.pointSize),void 0!==t.roundPoints&&(this.roundPoints=t.roundPoints),void 0!==t.perspectivePoints&&(this.perspectivePoints=t.perspectivePoints),void 0!==t.minPerspectivePointSize&&(this.minPerspectivePointSize=t.minPerspectivePointSize),void 0!==t.maxPerspectivePointSize&&(this.maxPerspectivePointSize=t.minPerspectivePointSize)):(this._preset="default",this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize),this.filterIntensity=t.filterIntensity,this.minIntensity=t.minIntensity,this.maxIntensity=t.maxIntensity}set pointSize(e){this._state.pointSize=e||2,this.glRedraw()}get pointSize(){return this._state.pointSize}set roundPoints(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}get roundPoints(){return this._state.roundPoints}set perspectivePoints(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}get perspectivePoints(){return this._state.perspectivePoints}set minPerspectivePointSize(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}get minPerspectivePointSize(){return this._state.minPerspectivePointSize}set maxPerspectivePointSize(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}get maxPerspectivePointSize(){return this._state.maxPerspectivePointSize}set filterIntensity(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}get filterIntensity(){return this._state.filterIntensity}set minIntensity(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}get minIntensity(){return this._state.minIntensity}set maxIntensity(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}get maxIntensity(){return this._state.maxIntensity}set preset(e){if(e=e||"default",this._preset===e)return;const t=zt[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(zt).join(", "))}get preset(){return this._preset}get hash(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}destroy(){super.destroy(),this._state.destroy()}}const Yt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Xt extends Lt{get type(){return"LinesMaterial"}get presets(){return Yt}constructor(e,t={}){super(e,t),this._state=new Je({type:"LinesMaterial",lineWidth:null}),t.preset?(this.preset=t.preset,void 0!==t.lineWidth&&(this.lineWidth=t.lineWidth)):(this._preset="default",this.lineWidth=t.lineWidth)}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=Yt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Yt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function qt(e,t){const s={};let n,i;for(let a=0,r=t.length;a{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new Ye(this,{transparent:n,alphaDepthMask:i}),this._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;let e=null;this.getHash=function(){if(e)return e;const t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";const s=[];for(let e=0,n=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=h.vec4([0,0,0,0]),t=h.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let s=null,n=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let n;for(let s=0,i=t.length;s0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),s=e.join(""),s},this.addLight=function(e){this.lights.push(e),n=null,s=null},this.removeLight=function(e){for(let t=0,i=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+m.inQuotes(e.id)+" already exists in Scene - ignoring ID, will randomly-generate instead"),e.id=null),!e.id)for(void 0===window.nextID&&(window.nextID=0),e.id="__"+window.nextID++;this.components[e.id];)e.id=h.createUUID();this.components[e.id]=e;const t=e.type;let s=this.types[e.type];s||(s=this.types[t]={}),s[e.id]=e,e.compile&&(this._compilables[e.id]=e),e.isDrawable&&(this._renderer.addDrawable(e.id,e),this._collidables[e.id]=e)}_removeComponent(e){var t=e.id,s=e.type;delete this.components[t];const n=this.types[s];n&&(delete n[t],m.isEmptyObject(n)&&delete this.types[s]),e.compile&&delete this._compilables[e.id],e.isDrawable&&(this._renderer.removeDrawable(e.id),delete this._collidables[e.id])}_sectionPlaneCreated(e){this.sectionPlanes[e.id]=e,this.scene._sectionPlanesState.addSectionPlane(e._state),this.scene.fire("sectionPlaneCreated",e,!0),this._needRecompile=!0}_bitmapCreated(e){this.bitmaps[e.id]=e,this.scene.fire("bitmapCreated",e,!0)}_lineSetCreated(e){this.lineSets[e.id]=e,this.scene.fire("lineSetCreated",e,!0)}_lightCreated(e){this.lights[e.id]=e,this.scene._lightsState.addLight(e._state),this._needRecompile=!0}_lightMapCreated(e){this.lightMaps[e.id]=e,this.scene._lightsState.addLightMap(e._state),this._needRecompile=!0}_reflectionMapCreated(e){this.reflectionMaps[e.id]=e,this.scene._lightsState.addReflectionMap(e._state),this._needRecompile=!0}_sectionPlaneDestroyed(e){delete this.sectionPlanes[e.id],this.scene._sectionPlanesState.removeSectionPlane(e._state),this.scene.fire("sectionPlaneDestroyed",e,!0),this._needRecompile=!0}_bitmapDestroyed(e){delete this.bitmaps[e.id],this.scene.fire("bitmapDestroyed",e,!0)}_lineSetDestroyed(e){delete this.lineSets[e.id],this.scene.fire("lineSetDestroyed",e,!0)}_lightDestroyed(e){delete this.lights[e.id],this.scene._lightsState.removeLight(e._state),this._needRecompile=!0}_lightMapDestroyed(e){delete this.lightMaps[e.id],this.scene._lightsState.removeLightMap(e._state),this._needRecompile=!0}_reflectionMapDestroyed(e){delete this.reflectionMaps[e.id],this.scene._lightsState.removeReflectionMap(e._state),this._needRecompile=!0}_registerModel(e){this.models[e.id]=e,this._modelIds=null}_deregisterModel(e){const t=e.id;delete this.models[t],this._modelIds=null,this.fire("modelUnloaded",t)}_registerObject(e){this.objects[e.id]=e,this._numObjects++,this._objectIds=null}_deregisterObject(e){delete this.objects[e.id],this._numObjects--,this._objectIds=null}_objectVisibilityUpdated(e,t=!0){e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}_objectXRayedUpdated(e,t=!0){e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}_objectHighlightedUpdated(e,t=!0){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}_objectSelectedUpdated(e,t=!0){e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_objectOpacityUpdated(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}_objectOffsetUpdated(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}_webglContextLost(){this.canvas.spinner.processes++;for(const e in this.components)if(this.components.hasOwnProperty(e)){const t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}_webglContextRestored(){const e=this.canvas.gl;for(const t in this.components)if(this.components.hasOwnProperty(t)){const s=this.components[t];s._webglContextRestored&&s._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}get capabilities(){return this._renderer.capabilities}get entityOffsetsEnabled(){return this._entityOffsetsEnabled}get pickSurfacePrecisionEnabled(){return!1}get logarithmicDepthBufferEnabled(){return this._logarithmicDepthBufferEnabled}set numCachedSectionPlanes(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}get numCachedSectionPlanes(){return this._sectionPlanesState.getNumCachedSectionPlanes()}set pbrEnabled(e){this._pbrEnabled=!!e,this.glRedraw()}get pbrEnabled(){return this._pbrEnabled}set dtxEnabled(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}get dtxEnabled(){return this._dtxEnabled}set colorTextureEnabled(e){this._colorTextureEnabled=!!e,this.glRedraw()}get colorTextureEnabled(){return this._colorTextureEnabled}doOcclusionTest(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}render(e){e&&R.runTasks();const t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),!e&&!this._renderer.needsRender())return;t.sceneId=this.id;const s=this._passes,n=this._clearEachPass;let i,a;for(i=0;ii&&(i=e[3]),e[4]>a&&(a=e[4]),e[5]>r&&(r=e[5]),c=!0}c||(t=-100,s=-100,n=-100,i=100,a=100,r=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=n,this._aabb[3]=i,this._aabb[4]=a,this._aabb[5]=r,this._aabbDirty=!1}return this._aabb}_setAABBDirty(){this._aabbDirty=!0,this.fire("boundary")}pick(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");const s=e.includeEntities||e.include;s&&(e.includeEntityIds=qt(this,s));const n=e.excludeEntities||e.exclude;return n&&(e.excludeEntityIds=qt(this,n)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}snapPick(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}clear(){var e;for(const t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}clearLights(){const e=Object.keys(this.lights);for(let t=0,s=e.length;t{if(e.collidable){const o=e.aabb;o[0]a&&(a=o[3]),o[4]>r&&(r=o[4]),o[5]>l&&(l=o[5]),t=!0}})),t){const e=h.AABB3();return e[0]=s,e[1]=n,e[2]=i,e[3]=a,e[4]=r,e[5]=l,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const s=e.visible!==t;return e.visible=t,s}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const s=e.collidable!==t;return e.collidable=t,s}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const s=e.culled!==t;return e.culled=t,s}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const s=e.selected!==t;return e.selected=t,s}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const s=e.highlighted!==t;return e.highlighted=t,s}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const s=e.xrayed!==t;return e.xrayed=t,s}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const s=e.edges!==t;return e.edges=t,s}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const s=e.opacity!==t;return e.opacity=t,s}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const s=e.pickable!==t;return e.pickable=t,s}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){m.isString(e)&&(e=[e]);let s=!1;for(let n=0,i=e.length;n{i>n&&(n=i,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:r,wrapperFunc:a},a}destroy(){super.destroy();for(const e in this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}const Zt=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,r=e._state.stationary,l=s.getNumAllocatedSectionPlanes()>0,o=!!i.compressGeometry,c=[];c.push("#version 300 es"),c.push("// Lambertian drawing vertex shader"),c.push("in vec3 position;"),c.push("uniform mat4 modelMatrix;"),c.push("uniform mat4 viewMatrix;"),c.push("uniform mat4 projMatrix;"),c.push("uniform vec4 colorize;"),c.push("uniform vec3 offset;"),o&&c.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(c.push("uniform float logDepthBufFC;"),c.push("out float vFragDepth;"),c.push("bool isPerspectiveMatrix(mat4 m) {"),c.push(" return (m[2][3] == - 1.0);"),c.push("}"),c.push("out float isPerspective;"));l&&c.push("out vec4 vWorldPosition;");if(c.push("uniform vec4 lightAmbient;"),c.push("uniform vec4 materialColor;"),c.push("uniform vec3 materialEmissive;"),i.normalsBuf){c.push("in vec3 normal;"),c.push("uniform mat4 modelNormalMatrix;"),c.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=n.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),c.push(" }"),c.push(" return normalize(v);"),c.push("}"))}c.push("out vec4 vColor;"),"points"===i.primitiveName&&c.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(c.push("void billboard(inout mat4 mat) {"),c.push(" mat[0][0] = 1.0;"),c.push(" mat[0][1] = 0.0;"),c.push(" mat[0][2] = 0.0;"),"spherical"===a&&(c.push(" mat[1][0] = 0.0;"),c.push(" mat[1][1] = 1.0;"),c.push(" mat[1][2] = 0.0;")),c.push(" mat[2][0] = 0.0;"),c.push(" mat[2][1] = 0.0;"),c.push(" mat[2][2] =1.0;"),c.push("}"));c.push("void main(void) {"),c.push("vec4 localPosition = vec4(position, 1.0); "),c.push("vec4 worldPosition;"),o&&c.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(o?c.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):c.push("vec4 localNormal = vec4(normal, 0.0); "),c.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),c.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));c.push("mat4 viewMatrix2 = viewMatrix;"),c.push("mat4 modelMatrix2 = modelMatrix;"),r&&c.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(c.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),c.push("billboard(modelMatrix2);"),c.push("billboard(viewMatrix2);"),c.push("billboard(modelViewMatrix);"),i.normalsBuf&&(c.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),c.push("billboard(modelNormalMatrix2);"),c.push("billboard(viewNormalMatrix2);"),c.push("billboard(modelViewNormalMatrix);")),c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&c.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(c.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),c.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),c.push("float lambertian = 1.0;"),i.normalsBuf)for(let e=0,t=n.lights.length;e0,a=t.gammaOutput,r=[];r.push("#version 300 es"),r.push("// Lambertian drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("in vec4 vWorldPosition;"),r.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),r.push("}")}"points"===n.primitiveName&&(r.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),r.push("float r = dot(cxy, cxy);"),r.push("if (r > 1.0) {"),r.push(" discard;"),r.push("}"));t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?r.push("outColor = linearToGamma(vColor, gammaFactor);"):r.push("outColor = vColor;");return r.push("}"),r}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,n=t._sectionPlanesState,i=e._geometry._state,a=t._lightsState;let r;const l=s.billboard,o=s.background,c=s.stationary,u=function(e){if(!e._geometry._state.uvBuf)return!1;const t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),h=ts(e),p=n.getNumAllocatedSectionPlanes()>0,A=es(e),d=!!i.compressGeometry,f=[];f.push("#version 300 es"),f.push("// Drawing vertex shader"),f.push("in vec3 position;"),d&&f.push("uniform mat4 positionsDecodeMatrix;");f.push("uniform mat4 modelMatrix;"),f.push("uniform mat4 viewMatrix;"),f.push("uniform mat4 projMatrix;"),f.push("out vec3 vViewPosition;"),f.push("uniform vec3 offset;"),p&&f.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(f.push("uniform float logDepthBufFC;"),f.push("out float vFragDepth;"),f.push("bool isPerspectiveMatrix(mat4 m) {"),f.push(" return (m[2][3] == - 1.0);"),f.push("}"),f.push("out float isPerspective;"));a.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(h){f.push("in vec3 normal;"),f.push("uniform mat4 modelNormalMatrix;"),f.push("uniform mat4 viewNormalMatrix;"),f.push("out vec3 vViewNormal;");for(let e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),f.push(" }"),f.push(" return normalize(v);"),f.push("}"))}u&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));i.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===i.primitiveName&&f.push("uniform float pointSize;");"spherical"!==l&&"cylindrical"!==l||(f.push("void billboard(inout mat4 mat) {"),f.push(" mat[0][0] = 1.0;"),f.push(" mat[0][1] = 0.0;"),f.push(" mat[0][2] = 0.0;"),"spherical"===l&&(f.push(" mat[1][0] = 0.0;"),f.push(" mat[1][1] = 1.0;"),f.push(" mat[1][2] = 0.0;")),f.push(" mat[2][0] = 0.0;"),f.push(" mat[2][1] = 0.0;"),f.push(" mat[2][2] =1.0;"),f.push("}"));if(A){f.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(let e=0,t=a.lights.length;e0&&f.push("vWorldNormal = worldNormal;"),f.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),f.push("vec3 tmpVec3;"),f.push("float lightDist;");for(let e=0,t=a.lights.length;e0,o=ts(e),c=n.uvBuf,u="PhongMaterial"===r.type,h="MetallicMaterial"===r.type,p="SpecularMaterial"===r.type,A=es(e);t.gammaInput;const d=t.gammaOutput,f=[];f.push("#version 300 es"),f.push("// Drawing fragment shader"),f.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),f.push("precision highp float;"),f.push("precision highp int;"),f.push("#else"),f.push("precision mediump float;"),f.push("precision mediump int;"),f.push("#endif"),t.logarithmicDepthBufferEnabled&&(f.push("in float isPerspective;"),f.push("uniform float logDepthBufFC;"),f.push("in float vFragDepth;"));A&&(f.push("float unpackDepth (vec4 color) {"),f.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),f.push(" return dot(color, bitShift);"),f.push("}"));f.push("uniform float gammaFactor;"),f.push("vec4 linearToLinear( in vec4 value ) {"),f.push(" return value;"),f.push("}"),f.push("vec4 sRGBToLinear( in vec4 value ) {"),f.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),f.push("}"),f.push("vec4 gammaToLinear( in vec4 value) {"),f.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),f.push("}"),d&&(f.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),f.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),f.push("}"));if(l){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var I=0;I0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("uniform mat4 viewMatrix;"),f.push("#define PI 3.14159265359"),f.push("#define RECIPROCAL_PI 0.31830988618"),f.push("#define RECIPROCAL_PI2 0.15915494"),f.push("#define EPSILON 1e-6"),f.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),f.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),f.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),f.push("}"),f.push("struct IncidentLight {"),f.push(" vec3 color;"),f.push(" vec3 direction;"),f.push("};"),f.push("struct ReflectedLight {"),f.push(" vec3 diffuse;"),f.push(" vec3 specular;"),f.push("};"),f.push("struct Geometry {"),f.push(" vec3 position;"),f.push(" vec3 viewNormal;"),f.push(" vec3 worldNormal;"),f.push(" vec3 viewEyeDir;"),f.push("};"),f.push("struct Material {"),f.push(" vec3 diffuseColor;"),f.push(" float specularRoughness;"),f.push(" vec3 specularColor;"),f.push(" float shine;"),f.push("};"),u&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = "+$t[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),f.push(" radiance *= PI;"),f.push(" reflectedLight.specular += radiance;")),f.push("}")),f.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),f.push(" vec3 irradiance = dotNL * directLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),f.push("}")),(h||p)&&(f.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),f.push(" float r = ggxRoughness + 0.0001;"),f.push(" return (2.0 / (r * r) - 2.0);"),f.push("}"),f.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),f.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),f.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),f.push("}"),a.reflectionMaps.length>0&&(f.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),f.push(" vec3 envMapColor = "+$t[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),f.push(" return envMapColor;"),f.push("}")),f.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),f.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),f.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),f.push("}"),f.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" return 1.0 / ( gl * gv );"),f.push("}"),f.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" return 0.5 / max( gv + gl, EPSILON );"),f.push("}"),f.push("float D_GGX(const in float alpha, const in float dotNH) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),f.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float alpha = ( roughness * roughness );"),f.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),f.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),f.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),f.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),f.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),f.push(" vec3 F = F_Schlick( specularColor, dotLH );"),f.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),f.push(" float D = D_GGX( alpha, dotNH );"),f.push(" return F * (G * D);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),f.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),f.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),f.push(" vec4 r = roughness * c0 + c1;"),f.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),f.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),f.push(" return specularColor * AB.x + AB.y;"),f.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),f.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),f.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),f.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),f.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),f.push("}")),f.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),f.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),f.push("}")));f.push("in vec3 vViewPosition;"),n.colors&&f.push("in vec4 vColor;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._occlusionMap||s._alphaMap)&&f.push("in vec2 vUV;");o&&(a.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));r.ambient&&f.push("uniform vec3 materialAmbient;");r.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==r.alpha&&null!==r.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");r.emissive&&f.push("uniform vec3 materialEmissive;");r.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==r.glossiness&&null!==r.glossiness&&f.push("uniform float materialGlossiness;");void 0!==r.shininess&&null!==r.shininess&&f.push("uniform float materialShininess;");r.specular&&f.push("uniform vec3 materialSpecular;");void 0!==r.metallic&&null!==r.metallic&&f.push("uniform float materialMetallic;");void 0!==r.roughness&&null!==r.roughness&&f.push("uniform float materialRoughness;");void 0!==r.specularF0&&null!==r.specularF0&&f.push("uniform float materialSpecularF0;");c&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));c&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));c&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));c&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));o&&c&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));o&&c&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));o&&c&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));o&&s._normalMap&&(f.push("uniform sampler2D normalMap;"),s._normalMap._state.matrix&&f.push("uniform mat4 normalMapMatrix;"),f.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),f.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),f.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),f.push(" vec2 st0 = dFdx( uv.st );"),f.push(" vec2 st1 = dFdy( uv.st );"),f.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),f.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),f.push(" vec3 N = normalize( surf_norm );"),f.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),f.push(" mat3 tsn = mat3( S, T, N );"),f.push(" return normalize( tsn * mapN );"),f.push("}"));c&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));c&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));o&&c&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));o&&c&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));o&&c&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));o&&(s._diffuseFresnel||s._specularFresnel||s._alphaFresnel||s._emissiveFresnel||s._reflectivityFresnel)&&(f.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),f.push(" float fr = abs(dot(eyeDir, normal));"),f.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),f.push(" return pow(finalFr, power);"),f.push("}"),s._diffuseFresnel&&(f.push("uniform float diffuseFresnelCenterBias;"),f.push("uniform float diffuseFresnelEdgeBias;"),f.push("uniform float diffuseFresnelPower;"),f.push("uniform vec3 diffuseFresnelCenterColor;"),f.push("uniform vec3 diffuseFresnelEdgeColor;")),s._specularFresnel&&(f.push("uniform float specularFresnelCenterBias;"),f.push("uniform float specularFresnelEdgeBias;"),f.push("uniform float specularFresnelPower;"),f.push("uniform vec3 specularFresnelCenterColor;"),f.push("uniform vec3 specularFresnelEdgeColor;")),s._alphaFresnel&&(f.push("uniform float alphaFresnelCenterBias;"),f.push("uniform float alphaFresnelEdgeBias;"),f.push("uniform float alphaFresnelPower;"),f.push("uniform vec3 alphaFresnelCenterColor;"),f.push("uniform vec3 alphaFresnelEdgeColor;")),s._reflectivityFresnel&&(f.push("uniform float materialSpecularF0FresnelCenterBias;"),f.push("uniform float materialSpecularF0FresnelEdgeBias;"),f.push("uniform float materialSpecularF0FresnelPower;"),f.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),f.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),s._emissiveFresnel&&(f.push("uniform float emissiveFresnelCenterBias;"),f.push("uniform float emissiveFresnelEdgeBias;"),f.push("uniform float emissiveFresnelPower;"),f.push("uniform vec3 emissiveFresnelCenterColor;"),f.push("uniform vec3 emissiveFresnelEdgeColor;")));if(f.push("uniform vec4 lightAmbient;"),o)for(let e=0,t=a.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===n.primitiveName&&(f.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),f.push("float r = dot(cxy, cxy);"),f.push("if (r > 1.0) {"),f.push(" discard;"),f.push("}"));f.push("float occlusion = 1.0;"),r.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");r.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):r.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");n.colors&&f.push("diffuseColor *= vColor.rgb;");r.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");r.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==r.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");n.colors&&f.push("alpha *= vColor.a;");void 0!==r.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==r.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==r.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==r.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._occlusionMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._alphaMap)&&(f.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),f.push("vec2 textureCoord;"));c&&s._ambientMap&&(s._ambientMap._state.matrix?f.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),f.push("ambientTexel = "+$t[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));c&&s._diffuseMap&&(s._diffuseMap._state.matrix?f.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),f.push("diffuseTexel = "+$t[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));c&&s._baseColorMap&&(s._baseColorMap._state.matrix?f.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),f.push("baseColorTexel = "+$t[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));c&&s._emissiveMap&&(s._emissiveMap._state.matrix?f.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),f.push("emissiveTexel = "+$t[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));c&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));c&&s._occlusionMap&&(s._occlusionMap._state.matrix?f.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(o&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){c&&s._normalMap?(s._normalMap._state.matrix?f.push("textureCoord = (normalMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):f.push("vec3 viewNormal = normalize(vViewNormal);"),c&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),c&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),c&&s._specularGlossinessMap&&(s._specularGlossinessMap._state.matrix?f.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),f.push("specular *= specGlossRGB.rgb;"),f.push("glossiness *= specGlossRGB.a;")),c&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),c&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),c&&s._metallicRoughnessMap&&(s._metallicRoughnessMap._state.matrix?f.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),f.push("metallic *= metalRoughRGB.b;"),f.push("roughness *= metalRoughRGB.g;")),f.push("vec3 viewEyeDir = normalize(-vViewPosition);"),s._diffuseFresnel&&(f.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),f.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),s._specularFresnel&&(f.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),f.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),s._alphaFresnel&&(f.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),f.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),s._emissiveFresnel&&(f.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),f.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),f.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),f.push(" discard;"),f.push("}"),f.push("IncidentLight light;"),f.push("Material material;"),f.push("Geometry geometry;"),f.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),f.push("vec3 viewLightDir;"),u&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),p&&(f.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),f.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),f.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),f.push("material.specularColor = specular;")),h&&(f.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),f.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),f.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),f.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),f.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),u&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||h)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePBRLightMapping(geometry, material, reflectedLight);"),f.push("float shadow = 1.0;"),f.push("float shadowAcneRemover = 0.007;"),f.push("vec3 fragmentDepth;"),f.push("float texelSize = 1.0 / 1024.0;"),f.push("float amountInLight = 0.0;"),f.push("vec3 shadowCoord;"),f.push("vec4 rgbaDepth;"),f.push("float depth;");for(let e=0,t=a.lights.length;e0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(u=0,h=a.sectionPlanes.length;u0&&i.lightMaps[0].texture&&this._uLightMap&&(l.bindTexture(this._uLightMap,i.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),i.reflectionMaps.length>0&&i.reflectionMaps[0].texture&&this._uReflectionMap&&(l.bindTexture(this._uReflectionMap,i.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&n.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class rs{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,n=function(e){const t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,r=e._state.billboard,l=e._state.stationary,o=[];o.push("#version 300 es"),o.push("// EmphasisFillShaderSource vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec4 colorize;"),o.push("uniform vec3 offset;"),a&&o.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));i&&o.push("out vec4 vWorldPosition;");if(o.push("uniform vec4 lightAmbient;"),o.push("uniform vec4 fillColor;"),n){o.push("in vec3 normal;"),o.push("uniform mat4 modelNormalMatrix;"),o.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"))}o.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===r&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),a&&o.push("localPosition = positionsDecodeMatrix * localPosition;");n&&(a?o.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):o.push("vec4 localNormal = vec4(normal, 0.0); "),o.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),o.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),l&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),n&&(o.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),o.push("billboard(modelNormalMatrix2);"),o.push("billboard(viewNormalMatrix2);"),o.push("billboard(modelViewNormalMatrix);")),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&o.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),n)for(let e=0,t=s.lights.length;e0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const ls=new e({}),os=h.vec3(),cs=function(e,t){this.id=ls.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new rs(t),this._allocate(t)},us={};cs.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=us[t];return s||(s=new cs(t,e),us[t]=s,d.memory.programs++),s._useCount++,s},cs.prototype.put=function(){0==--this._useCount&&(ls.removeItem(this.id),this._program&&this._program.destroy(),delete us[this._hash],d.memory.programs--)},cs.prototype.webglContextRestored=function(){this._program=null},cs.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl,r=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,l=t._state,o=t._geometry._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(l.originHash,c):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Edges drawing vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec4 edgeColor;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));s&&r.push("out vec4 vWorldPosition;");r.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.push("vColor = edgeColor;"),s&&r.push("vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene.gammaOutput,i=s.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const ps=new e({}),As=h.vec3(),ds=function(e,t){this.id=ps.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new hs(t),this._allocate(t)},fs={};ds.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=fs[t];return s||(s=new ds(t,e),fs[t]=s,d.memory.programs++),s._useCount++,s},ds.prototype.put=function(){0==--this._useCount&&(ps.removeItem(this.id),this._program&&this._program.destroy(),delete fs[this._hash],d.memory.programs--)},ds.prototype.webglContextRestored=function(){this._program=null},ds.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl;let r;const l=t._state,o=t._geometry,c=o._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(l.originHash,u):i.viewMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh picking vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("out vec4 vViewPosition;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("uniform vec2 pickClipPos;"),r.push("vec4 remapClipPos(vec4 clipPos) {"),r.push(" clipPos.xy /= clipPos.w;"),r.push(" clipPos.xy -= pickClipPos;"),r.push(" clipPos.xy *= clipPos.w;"),r.push(" return clipPos;"),r.push("}"),r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"));r.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = remapClipPos(clipPos);"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(e)}}const ys=h.vec3(),ms=function(e,t){this._hash=e,this._shaderSource=new Is(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},vs={};ms.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=vs[t];if(!s){if(s=new ms(t,e),s.errors)return console.log(s.errors.join("\n")),null;vs[t]=s,d.memory.programs++}return s._useCount++,s},ms.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete vs[this._hash],d.memory.programs--)},ms.prototype.webglContextRestored=function(){this._program=null},ms.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t>24&255,u=o>>16&255,h=o>>8&255,p=255&o;n.uniform4f(this._uPickColor,p/255,h/255,u/255,c/255),n.uniform2fv(this._uPickClipPos,e.pickClipPos),r.indicesBuf?(n.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&n.drawArrays(n.TRIANGLES,0,r.positions.numItems)},ms.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Be(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,n=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),s&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),n&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),n&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(e)}}const gs=h.vec3(),Es=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new ws(t),this._allocate(t)},Ts={};Es.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Ts[t];if(!s){if(s=new Es(t,e),s.errors)return console.log(s.errors.join("\n")),null;Ts[t]=s,d.memory.programs++}return s._useCount++,s},Es.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ts[this._hash],d.memory.programs--)},Es.prototype.webglContextRestored=function(){this._program=null},Es.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry,l=t._geometry._state,o=t.origin,c=a.backfaces,u=a.frontface,h=s.camera.project,p=r._getPickTrianglePositions(),A=r._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(h.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}if(n.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh occlusion vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(e)}}const Ds=h.vec3(),Ps=function(e,t){this._hash=e,this._shaderSource=new bs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Rs={};Ps.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let s=Rs[t];if(!s){if(s=new Ps(t,e),s.errors)return console.log(s.errors.join("\n")),null;Rs[t]=s,d.memory.programs++}return s._useCount++,s},Ps.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Rs[this._hash],d.memory.programs--)},Ps.prototype.webglContextRestored=function(){this._program=null},Ps.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._material._state,a=t._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){const t=i.backfaces;e.backfaces!==t&&(t?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=t);const s=i.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),this._lastMaterialId=i.id}const o=s.camera;if(n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCViewMatrix(a.originHash,l):o.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,n=[];n.push("// Mesh shadow vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t&&n.push("out vec4 vWorldPosition;");n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("worldPosition = modelMatrix * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&n.push("vWorldPosition = worldPosition;");return n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(e)}}const _s=function(e,t){this._hash=e,this._shaderSource=new Cs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Bs={};_s.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let n=Bs[s];if(!n){if(n=new _s(s,e),n.errors)return console.log(n.errors.join("\n")),null;Bs[s]=n,d.memory.programs++}return n._useCount++,n},_s.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Bs[this._hash],d.memory.programs--)},_s.prototype.webglContextRestored=function(){this._program=null},_s.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,n=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.id!==this._lastMaterialId){const t=n.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=n.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),e.lineWidth!==n.lineWidth&&(s.lineWidth(n.lineWidth),e.lineWidth=n.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,n.pointSize),this._lastMaterialId=n.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),i.combineGeometry){const n=t.vertexBufs;n.id!==this._lastVertexBufsId&&(n.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(n.positionsBuf,n.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=n.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(s.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(s.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(s.drawArrays(s.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},_s.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Be(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uShadowViewMatrix=n.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=n.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,i,a,r;for(let l=0,o=this._uSectionPlanes.length;l0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const ks=function(){const e=h.vec3(),t=h.vec3(),s=h.vec3(),n=h.vec3(),i=h.vec3(),a=h.vec3(),r=h.vec4(),l=h.vec3(),o=h.vec3(),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3(),y=h.vec4(),m=h.vec4(),v=h.vec4(),w=h.vec3(),g=h.vec3(),E=h.vec3(),T=h.vec3(),b=h.vec3(),D=h.vec3(),P=h.vec3(),R=h.vec3(),C=h.vec3(),_=h.vec3(),B=h.vec3();return function(O,S,N,x){var L=x.primIndex;if(null!=L&&L>-1){const U=O.geometry._state,j=O.scene,V=j.camera,k=j.canvas;if("triangles"===U.primitiveName){x.primitive="triangle";const j=L,Q=U.indices,W=U.positions;let z,K,Y;if(Q){var M=Q[j+0],F=Q[j+1],H=Q[j+2];a[0]=M,a[1]=F,a[2]=H,x.indices=a,z=3*M,K=3*F,Y=3*H}else z=3*j,K=z+3,Y=K+3;if(s[0]=W[z+0],s[1]=W[z+1],s[2]=W[z+2],n[0]=W[K+0],n[1]=W[K+1],n[2]=W[K+2],i[0]=W[Y+0],i[1]=W[Y+1],i[2]=W[Y+2],U.compressGeometry){const e=U.positionsDecodeMatrix;e&&(Bt.decompressPosition(s,e,s),Bt.decompressPosition(n,e,n),Bt.decompressPosition(i,e,i))}x.canvasPos?h.canvasPosToLocalRay(k.canvas,O.origin?G(S,O.origin):S,N,O.worldMatrix,x.canvasPos,e,t):x.origin&&x.direction&&h.worldRayToLocalRay(O.worldMatrix,x.origin,x.direction,e,t),h.normalizeVec3(t),h.rayPlaneIntersect(e,t,s,n,i,r),x.localPos=r,x.position=r,y[0]=r[0],y[1]=r[1],y[2]=r[2],y[3]=1,h.transformVec4(O.worldMatrix,y,m),l[0]=m[0],l[1]=m[1],l[2]=m[2],x.canvasPos&&O.origin&&(l[0]+=O.origin[0],l[1]+=O.origin[1],l[2]+=O.origin[2]),x.worldPos=l,h.transformVec4(V.matrix,m,v),o[0]=v[0],o[1]=v[1],o[2]=v[2],x.viewPos=o,h.cartesianToBarycentric(r,s,n,i,c),x.bary=c;const X=U.normals;if(X){if(U.compressGeometry){const e=3*M,t=3*F,s=3*H;Bt.decompressNormal(X.subarray(e,e+2),u),Bt.decompressNormal(X.subarray(t,t+2),p),Bt.decompressNormal(X.subarray(s,s+2),A)}else u[0]=X[z],u[1]=X[z+1],u[2]=X[z+2],p[0]=X[K],p[1]=X[K+1],p[2]=X[K+2],A[0]=X[Y],A[1]=X[Y+1],A[2]=X[Y+2];const e=h.addVec3(h.addVec3(h.mulVec3Scalar(u,c[0],w),h.mulVec3Scalar(p,c[1],g),E),h.mulVec3Scalar(A,c[2],T),b);x.worldNormal=h.normalizeVec3(h.transformVec3(O.worldNormalMatrix,e,D))}const q=U.uv;if(q){if(d[0]=q[2*M],d[1]=q[2*M+1],f[0]=q[2*F],f[1]=q[2*F+1],I[0]=q[2*H],I[1]=q[2*H+1],U.compressGeometry){const e=U.uvDecodeMatrix;e&&(Bt.decompressUV(d,e,d),Bt.decompressUV(f,e,f),Bt.decompressUV(I,e,I))}x.uv=h.addVec3(h.addVec3(h.mulVec2Scalar(d,c[0],P),h.mulVec2Scalar(f,c[1],R),C),h.mulVec2Scalar(I,c[2],_),B)}}}}}();function Qs(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let s=e.radiusBottom||1;s<0&&(console.error("negative radiusBottom not allowed - will invert"),s*=-1);let n=e.height||1;n<0&&(console.error("negative height not allowed - will invert"),n*=-1);let i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);let a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);const r=!!e.openEnded;let l=e.center;const o=l?l[0]:0,c=l?l[1]:0,u=l?l[2]:0,h=n/2,p=n/a,A=2*Math.PI/i,d=1/i,f=(t-s)/a,I=[],y=[],v=[],w=[];let g,E,T,b,D,P,R,C,_,B,O;const S=(90-180*Math.atan(n/(s-t))/Math.PI)/90;for(g=0;g<=a;g++)for(D=t-g*f,P=h-g*p,E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),y.push(D*T),y.push(S),y.push(D*b),v.push(E*d),v.push(1*g/a),I.push(D*T+o),I.push(P+c),I.push(D*b+u);for(g=0;g0){for(_=I.length/3,y.push(0),y.push(1),y.push(0),v.push(.5),v.push(.5),I.push(0+o),I.push(h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(t*T),y.push(1),y.push(t*b),v.push(B),v.push(O),I.push(t*T+o),I.push(h+c),I.push(t*b+u);for(E=0;E0){for(_=I.length/3,y.push(0),y.push(-1),y.push(0),v.push(.5),v.push(.5),I.push(0+o),I.push(0-h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(s*T),y.push(-1),y.push(s*b),v.push(B),v.push(O),I.push(s*T+o),I.push(0-h+c),I.push(s*b+u);for(E=0;E":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function Ks(e={}){var t=e.origin||[0,0,0],s=t[0],n=t[1],i=t[2],a=e.size||1,r=[],l=[],o=e.text;m.isNumeric(o)&&(o=""+o);for(var c,u,h,p,A,d,f,I,y,v=(o||"").split("\n"),w=0,g=0,E=.04,T=0;T0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let s=0,n=e.length;s1;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,this.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE);const a=An(s,this.wrapS);a&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,a);const r=An(s,this.wrapT);if(r&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,r),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=An(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}i?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,yn(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,yn(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,An(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,An(s,this.magFilter)));const l=An(s,this.format,this.encoding),o=An(s,this.type),c=In(s,this.internalFormat,l,o,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,n,c,e[0].width,e[0].height);for(let t=0,n=e.length;t>t;return e+1}class gn extends _{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new Je({texture:new fn({gl:this.scene.canvas.gl}),matrix:h.identityMat4(),hasMatrix:t.translate&&(0!==t.translate[0]||0!==t.translate[1])||!!t.rotate||t.scale&&(0!==t.scale[0]||0!==t.scale[1]),minFilter:this._checkMinFilter(t.minFilter),magFilter:this._checkMagFilter(t.magFilter),wrapS:this._checkWrapS(t.wrapS),wrapT:this._checkWrapT(t.wrapT),flipY:this._checkFlipY(t.flipY),encoding:this._checkEncoding(t.encoding)}),this._src=null,this._image=null,this._translate=h.vec2([0,0]),this._scale=h.vec2([1,1]),this._rotate=h.vec2([0,0]),this._matrixDirty=!1,this.translate=t.translate,this.scale=t.scale,this.rotate=t.rotate,t.src?this.src=t.src:t.image&&(this.image=t.image),d.memory.textures++}_checkMinFilter(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}_checkMagFilter(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}_checkWrapS(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkWrapT(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this._state.texture=new fn({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}_update(){const e=this._state;if(this._matrixDirty){let t,s;0===this._translate[0]&&0===this._translate[1]||(t=h.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(s=h.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?h.mulMat4(t,s):s),0!==this._rotate&&(s=h.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?h.mulMat4(t,s):s),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=mn(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}get image(){return this._image}set src(e){this.scene.loading++,this.scene.canvas.spinner.processes++;const t=this;let s=new Image;s.onload=function(){s=mn(s),t._state.texture.setImage(s,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},s.src=e,this._src=e,this._image=null}get src(){return this._src}set translate(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}get translate(){return this._translate}set scale(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}get scale(){return this._scale}set rotate(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}get rotate(){return this._rotate}get minFilter(){return this._state.minFilter}get magFilter(){return this._state.magFilter}get wrapS(){return this._state.wrapS}get wrapT(){return this._state.wrapT}get flipY(){return this._state.flipY}get encoding(){return this._state.encoding}destroy(){super.destroy(),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),d.memory.textures--}}const En=d.memory,Tn=h.AABB3();class bn extends Et{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Je({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._aabb=null,this._obb=h.OBB3();const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var i;if(t.positionsDecodeMatrix);else{const e=Bt.getPositionsBounds(t.positions),a=Bt.compressPositions(t.positions,e.min,e.max);i=a.quantized,s.positionsDecodeMatrix=a.decodeMatrix,s.positionsBuf=new Oe(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),En.positions+=s.positionsBuf.numItems,h.positions3ToAABB3(t.positions,this._aabb),h.positions3ToAABB3(i,Tn,s.positionsDecodeMatrix),h.AABB3ToOBB3(Tn,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new Oe(n,n.ARRAY_BUFFER,e,e.length,4,n.STATIC_DRAW),En.colors+=s.colorsBuf.numItems}if(t.uv){const e=Bt.getUVBounds(t.uv),i=Bt.compressUVs(t.uv,e.min,e.max),a=i.quantized;s.uvDecodeMatrix=i.decodeMatrix,s.uvBuf=new Oe(n,n.ARRAY_BUFFER,a,a.length,2,n.STATIC_DRAW),En.uvs+=s.uvBuf.numItems}if(t.normals){const e=Bt.compressNormals(t.normals);let i=s.compressGeometry;s.normalsBuf=new Oe(n,n.ARRAY_BUFFER,e,e.length,3,n.STATIC_DRAW,i),En.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,e,e.length,1,n.STATIC_DRAW),En.indices+=s.indicesBuf.numItems;const a=Tt(i,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),En.meshes++}else this.error("Config expected: indices");else this.error("Config expected: positions")}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf}get primitive(){return this._state.primitiveName}get aabb(){return this._aabb}get obb(){return this._obb}get numTriangles(){return this._numTriangles}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),En.meshes--}}var Dn={};function Pn(e={}){let t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);let s=e.divisions||1;s<0&&(console.error("negative divisions not allowed - will invert"),s*=-1),s<1&&(s=1),t=t||10,s=s||10;const n=t/s,i=t/2,a=[],r=[];let l=0;for(let e=0,t=-i;e<=s;e++,t+=n)a.push(-i),a.push(0),a.push(t),a.push(i),a.push(0),a.push(t),a.push(t),a.push(0),a.push(-i),a.push(t),a.push(0),a.push(i),r.push(l++),r.push(l++),r.push(l++),r.push(l++);return m.apply(e,{primitive:"lines",positions:a,indices:r})}function Rn(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);let n=e.xSegments||1;n<0&&(console.error("negative xSegments not allowed - will invert"),n*=-1),n<1&&(n=1);let i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);const a=e.center,r=a?a[0]:0,l=a?a[1]:0,o=a?a[2]:0,c=t/2,u=s/2,h=Math.floor(n)||1,p=Math.floor(i)||1,A=h+1,d=p+1,f=t/h,I=s/p,y=new Float32Array(A*d*3),v=new Float32Array(A*d*3),w=new Float32Array(A*d*2);let g,E,T,b,D,P,R,C=0,_=0;for(g=0;g65535?Uint32Array:Uint16Array)(h*p*6);for(g=0;g360&&(a=360);const r=e.center;let l=r?r[0]:0,o=r?r[1]:0;const c=r?r[2]:0,u=[],p=[],A=[],d=[];let f,I,y,v,w,g,E,T,b,D,P,R;for(T=0;T<=i;T++)for(E=0;E<=n;E++)f=E/n*a,I=.785398+T/i*Math.PI*2,l=t*Math.cos(f),o=t*Math.sin(f),y=(t+s*Math.cos(I))*Math.cos(f),v=(t+s*Math.cos(I))*Math.sin(f),w=s*Math.sin(I),u.push(y+l),u.push(v+o),u.push(w+c),A.push(1-E/n),A.push(T/i),g=h.normalizeVec3(h.subVec3([y,v,w],[l,o,c],[]),[]),p.push(g[0]),p.push(g[1]),p.push(g[2]);for(T=1;T<=i;T++)for(E=1;E<=n;E++)b=(n+1)*T+E-1,D=(n+1)*(T-1)+E-1,P=(n+1)*(T-1)+E,R=(n+1)*T+E,d.push(b),d.push(D),d.push(P),d.push(P),d.push(R),d.push(b);return m.apply(e,{positions:u,normals:p,uv:A,indices:d})}Dn.load=function(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(e){t(e.target.response)},s.send()},Dn.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(Dn.parse._buffToStr(e));window.location.href=s},Dn.clone=function(e){return JSON.parse(JSON.stringify(e))},Dn.bin={},Dn.bin.f=new Float32Array(1),Dn.bin.fb=new Uint8Array(Dn.bin.f.buffer),Dn.bin.rf=function(e,t){for(var s=Dn.bin.f,n=Dn.bin.fb,i=0;i<4;i++)n[i]=e[t+i];return s[0]},Dn.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Dn.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Dn.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},Dn.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},Dn.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},Dn.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},Dn.parse={},Dn.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",n=0;ni&&(i=o),ca&&(a=c),ur&&(r=u)}return{min:{x:t,y:s,z:n},max:{x:i,y:a,z:r}}};class _n extends _{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=h.vec3(t.pos||[0,0,0]),this._up=h.vec3(t.up||[0,1,0]),this._normal=h.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=h.vec3(),this._rtcPos=h.vec3(),this._imageSize=h.vec2(),this._texture=new gn(this,{flipY:!0}),this._image=new Image,"jpg"!==this._type&&"png"!==this._type&&(this.error('Unsupported type - defaulting to "jpg"'),this._type="jpg"),this._node=new an(this,{matrix:h.inverseMat4(h.lookAtMat4v(this._pos,h.subVec3(this._pos,this._normal,h.mat4()),this._up,h.mat4())),children:[this._bitmapMesh=new Vs(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new Nt(this,Rn({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0})})]}),t.image?this.image=t.image:t.src?this.src=t.src:t.imageData&&(this.imageData=t.imageData),this.scene._bitmapCreated(this)}set visible(e){this._bitmapMesh.visible=e}get visible(){return this._bitmapMesh.visible}set image(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}get image(){return this._image}set src(e){if(e){this._image.onload=()=>{this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale()},this._image.src=e;switch(e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}}get src(){return this._image.src}set imageData(e){this._image.onload=()=>{this._texture.image=image,this._imageSize[0]=image.width,this._imageSize[1]=image.height,this._updateBitmapMeshScale()},this._image.src=e}get imageData(){const e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")}set type(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}get type(){return this._type}get pos(){return this._pos}get normal(){return this._normal}get up(){return this._up}set height(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}get height(){return this._height}set collidable(e){this._bitmapMesh.collidable=!1!==e}get collidable(){return this._bitmapMesh.collidable}set clippable(e){this._bitmapMesh.clippable=!1!==e}get clippable(){return this._bitmapMesh.clippable}set pickable(e){this._bitmapMesh.pickable=!1!==e}get pickable(){return this._bitmapMesh.pickable}set opacity(e){this._bitmapMesh.opacity=e}get opacity(){return this._bitmapMesh.opacity}destroy(){super.destroy(),this.scene._bitmapDestroyed(this)}_updateBitmapMeshScale(){const e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}const Bn=h.OBB3(),On=h.OBB3(),Sn=h.OBB3();class Nn{constructor(e,t,s,n,i,a,r=null,l=0){this.model=e,this.object=null,this.parent=null,this.transform=i,this.textureSet=a,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=h.AABB3(),this._aabbWorldDirty=!1,this.layer=r,this.portionId=l,this._color=new Uint8Array([s[0],s[1],s[2],n]),this._colorize=new Uint8Array([s[0],s[1],s[2],n]),this._colorizing=!1,this._transparent=n<255,this.numTriangles=0,this.origin=null,this.entity=null,i&&i._addMesh(this)}_sceneModelDirty(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}_transformDirty(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}_updateMatrix(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}_finalize(e){this.layer.initFlags(this.portionId,e,this._transparent)}_finalize2(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}_setVisible(e){this.layer.setVisible(this.portionId,e,this._transparent)}_setColor(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}_setColorize(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}_setOpacity(e,t){const s=e<255,n=this._transparent!==s;this._color[3]=e,this._colorize[3]=e,this._transparent=s,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),n&&this.layer.setTransparent(this.portionId,t,s)}_setOffset(e){this.layer.setOffset(this.portionId,e)}_setHighlighted(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}_setXRayed(e){this.layer.setXRayed(this.portionId,e,this._transparent)}_setSelected(e){this.layer.setSelected(this.portionId,e,this._transparent)}_setEdges(e){this.layer.setEdges(this.portionId,e,this._transparent)}_setClippable(e){this.layer.setClippable(this.portionId,e,this._transparent)}_setCollidable(e){this.layer.setCollidable(this.portionId,e)}_setPickable(e){this.layer.setPickable(this.portionId,e,this._transparent)}_setCulled(e){this.layer.setCulled(this.portionId,e,this._transparent)}canPickTriangle(){return!1}drawPickTriangles(e,t){}pickTriangleSurface(e){}precisionRayPickSurface(e,t,s,n){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,n)}canPickWorldPos(){return!0}drawPickDepths(e){this.model.drawPickDepths(e)}drawPickNormals(e){this.model.drawPickNormals(e)}delegatePickedEntity(){return this.parent}getEachVertex(e){this.layer.getEachVertex(this.portionId,e)}set aabb(e){this._aabbLocal=e}get aabb(){if(this._aabbWorldDirty){if(h.AABB3ToOBB3(this._aabbLocal,Bn),this.transform?(h.transformOBB3(this.transform.worldMatrix,Bn,On),h.transformOBB3(this.model.worldMatrix,On,Sn),h.OBB3ToAABB3(Sn,this._aabbWorld)):(h.transformOBB3(this.model.worldMatrix,Bn,On),h.OBB3ToAABB3(On,this._aabbWorld)),this.origin){const e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld}_destroy(){this.model.scene._renderer.putPickID(this.pickId)}}const xn=new class{constructor(){this._uint8Arrays={},this._float32Arrays={}}_clear(){this._uint8Arrays={},this._float32Arrays={}}getUInt8Array(e){let t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}getFloat32Array(e){let t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}};let Ln=0;const Mn={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},Fn=new Float32Array([1,1,1,1]),Hn=new Float32Array([0,0,0,1]),Un=h.vec4(),Gn=h.vec3(),jn=h.vec3(),Vn=h.mat4();class kn{constructor(e,t=!1,{instancing:s=!1,edges:n=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=n,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}_getHash(){return this._scene._sectionPlanesState.getHash()}_buildShader(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}_buildVertexShader(){return[""]}_buildFragmentShader(){return[""]}_addMatricesUniformBlockLines(e,t=!1){return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}_addRemapClipPosLines(e,t=1){return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${t}));`),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}getValid(){return this._hash===this._getHash()}setSectionPlanesStateUniforms(e){const t=this._scene,{gl:s}=t.canvas,{model:n,layerIndex:i}=e,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),r=t._sectionPlanesState.sectionPlanes.length;if(a>0){const l=t._sectionPlanesState.sectionPlanes,o=i*r,c=n.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),s.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&d.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,d.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),d.lightMaps.length>0&&d.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,d.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),this._withSAO){const t=r.sao;if(t.possible){const s=l.drawingBufferWidth,n=l.drawingBufferHeight;Un[0]=s,Un[1]=n,Un[2]=t.blendCutoff,Un[3]=t.blendFactor,l.uniform4fv(this._uSAOParams,Un),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++}}if(n){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=r.xrayMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=r.highlightMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=r.selectedMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else l.uniform4fv(this._uColor,this._edges?Hn:Fn)}this._draw({state:o,frameCtx:e,incrementDrawState:i}),l.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,d.memory.programs--}}class Qn extends kn{constructor(e,t,{instancing:s=!1,edges:n=!1}={}){super(e,t,{instancing:s,edges:n})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=n.pickElementsCount||s.indicesBuf.numItems,a=n.pickElementsOffset?n.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,a),i&&n.drawElements++}}}class Wn extends Qn{constructor(e,t){super(e,t,{instancing:!1,edges:!0})}}class zn extends kn{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;this._edges?t.drawElementsInstanced(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0,s.numInstances):(t.drawElementsInstanced(t.TRIANGLES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++)}}class Kn extends zn{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class Yn extends kn{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),i&&n.drawArrays++}}class Xn extends kn{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArraysInstanced(t.POINTS,0,s.positionsBuf.numItems,s.numInstances),i&&n.drawArrays++}}class qn extends kn{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),i&&n.drawElements++}}class Jn extends kn{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElementsInstanced(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++}}class Zn extends Qn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i;const a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class $n extends Qn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching flat-shading draw vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._lightsState,s=e._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),n){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,s=t.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}class ti extends Wn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class si extends Wn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ni extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class ii extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class ai extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec3 worldNormal = octDecode(normal.xy); "),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class ri extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching occlusion vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching occlusion fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class li extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching depth fragment shader"),n.push("precision highp float;"),n.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}}class oi extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class ci extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry shadow vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push(" int colorFlag = int(flags) & 0xF;"),s.push(" bool visible = (colorFlag > 0);"),s.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push(" if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry shadow fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class ui extends Qn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Triangles batching quality draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),r.push("uniform sampler2D uAOMap;"),r.push("in vec4 vViewPosition;"),r.push("in vec3 vViewNormal;"),r.push("in vec4 vColor;"),r.push("in vec2 vUV;"),r.push("in vec2 vMetallicRoughness;"),n.lightMaps.length>0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick flat normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick flat normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class pi extends Qn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching color texture vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._lightsState,n=e._sectionPlanesState,i=n.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,t=s.lights.length;e4096?e=4096:e<1024&&(e=1024),fi=e}get maxDataTextureHeight(){return fi}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Ii=e}get maxGeometryBatchSize(){return Ii}}const mi=new yi;class vi{constructor(){this.maxVerts=mi.maxGeometryBatchSize,this.maxIndices=3*mi.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const wi=h.mat4(),gi=h.mat4();function Ei(e,t,s){const n=e.length,i=new Uint16Array(n),a=t[0],r=t[1],l=t[2],o=t[3]-a,c=t[4]-r,u=t[5]-l,p=65525,A=p/o,d=p/c,f=p/u,I=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(n))*(i>=0?1:-1),n=e,i=t}return new Int8Array([Math[t](127.5*n+(n<0?-1:0)),Math[s](127.5*i+(i<0?-1:0))])}function Di(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}const Pi=h.vec3(),Ri=h.vec3(),Ci=h.vec3(),_i=h.vec3(),Bi=h.mat4();class Oi extends kn{drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Pi;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ri;if(o){const e=Ci;h.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Bi),y=_i,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),l.indicesBuf.bind(),r.drawElements(r.TRIANGLES,l.indicesBuf.numItems,l.indicesBuf.itemType,0),l.indicesBuf.unbind()}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Si=h.vec3(),Ni=h.vec3(),xi=h.vec3(),Li=h.vec3(),Mi=h.mat4();class Fi extends kn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Si;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ni;if(o){const e=xi;h.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Mi),y=Li,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElements(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0),l.edgeIndicesBuf.unbind()):r.drawArrays(r.POINTS,0,l.positionsBuf.numItems)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;const s=[];return s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Hi{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Oi(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Fi(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Oi(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Fi(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const Ui={};const Gi=h.mat4(),ji=h.mat4(),Vi=h.vec4([0,0,0,1]),ki=h.vec3(),Qi=h.vec3(),Wi=h.vec3(),zi=h.vec3(),Ki=h.vec3(),Yi=h.vec3(),Xi=h.vec3();class qi{constructor(e){this.model=e.model,this.sortId="TrianglesBatchingLayer"+(e.solid?"-solid":"-surface")+(e.autoNormals?"-autonormals":"-normals")+(e.textureSet&&e.textureSet.colorTexture?"-colorTexture":"")+(e.textureSet&&e.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=di[t];return s||(s=new Ai(e),di[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete di[t],s._destroy()}))),s}(e.model.scene),this._snapBatchingRenderers=function(e){const t=e.id;let s=Ui[t];return s||(s=new Hi(e),Ui[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ui[t],s._destroy()}))),s}(e.model.scene),this._buffer=new vi(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({origin:h.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:e.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=h.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=h.mat3(e.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,e.origin&&this._state.origin.set(e.origin),this.solid=!!e.solid}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=a.length;e0){const e=Gi;y?h.inverseMat4(h.transposeMat4(y,ji),e):h.identityMat4(e,e),function(e,t,s,n,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let r,l,o,c,u,p,A=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(p=0;pu&&(o=r,u=c),r=bi(d,"floor","ceil"),l=Di(r),c=a(d,l),c>u&&(o=r,u=c),r=bi(d,"ceil","ceil"),l=Di(r),c=a(d,l),c>u&&(o=r,u=c),n[i+p+0]=o[0],n[i+p+1]=o[1],n[i+p+2]=0}(e,i,i.length,w.normals,w.normals.length)}if(o)for(let e=0,t=o.length;e0)for(let e=0,t=r.length;e0)for(let e=0,t=l.length;e0){const n=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):Ei(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=h.mat4());if(e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const n=new Int8Array(s.normals);let i=!0;e.normalsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.normals.length,3,t.STATIC_DRAW,i)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.uv.length>0)if(e.uvDecodeMatrix){let n=!1;e.uvBuf=new Oe(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,n)}else{const n=Bt.getUVBounds(s.uv),i=Bt.compressUVs(s.uv,n.min,n.max),a=i.quantized;let r=!1;e.uvDecodeMatrix=h.mat3(i.decodeMatrix),e.uvBuf=new Oe(t,t.ARRAY_BUFFER,a,a.length,2,t.STATIC_DRAW,r)}if(s.metallicRoughness.length>0){const n=new Uint8Array(s.metallicRoughness);let i=!1;e.metallicRoughnessBuf=new Oe(t,t.ARRAY_BUFFER,n,s.metallicRoughness.length,2,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n),a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const n=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}isEmpty(){return!this._state.indicesBuf}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=e,n=this._portions[s],i=4*n.vertsBaseIndex,a=4*n.numVerts,r=this._scratchMemory.getUInt8Array(a),l=t[0],o=t[1],c=t[2],u=t[3];for(let e=0;em)&&(m=e,n.set(v),i&&h.triangleNormal(d,f,I,i),y=!0)}}return y&&i&&(h.transformVec3(this.model.worldNormalMatrix,i,i),h.normalizeVec3(i)),y}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}class Ji extends zn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i,a,r;const l=[];for(l.push("#version 300 es"),l.push("// Instancing geometry drawing vertex shader"),l.push("uniform int renderPass;"),l.push("in vec3 position;"),l.push("in vec2 normal;"),l.push("in vec4 color;"),l.push("in float flags;"),e.entityOffsetsEnabled&&l.push("in vec3 offset;"),l.push("in vec4 modelMatrixCol0;"),l.push("in vec4 modelMatrixCol1;"),l.push("in vec4 modelMatrixCol2;"),l.push("in vec4 modelNormalMatrixCol0;"),l.push("in vec4 modelNormalMatrixCol1;"),l.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(l,!0),e.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;")),l.push("uniform vec4 lightAmbient;"),i=0,a=s.lights.length;i= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"),n&&(l.push("out vec4 vWorldPosition;"),l.push("out float vFlags;")),l.push("out vec4 vColor;"),l.push("void main(void) {"),l.push("int colorFlag = int(flags) & 0xF;"),l.push("if (colorFlag != renderPass) {"),l.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),l.push("} else {"),l.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),l.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix * worldPosition; "),l.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),l.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),l.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),i=0,a=s.lights.length;i0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class Zi extends zn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState;let n,i;const a=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry flat-shading drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),a){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}for(r.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),r.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),r.push("float lambertian = 1.0;"),r.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),r.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),r.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),n=0,i=s.lights.length;n0,s=[];return s.push("#version 300 es"),s.push("// Instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing fill fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ea extends Kn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ta extends Kn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class sa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class na extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class ia extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec2 normal;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("in vec4 modelNormalMatrixCol0;"),s.push("in vec4 modelNormalMatrixCol1;"),s.push("in vec4 modelNormalMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class aa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class ra extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}class la extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class oa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}const ca={3e3:"linearToLinear",3001:"sRGBToLinear"};class ua extends zn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Instancing geometry quality drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),r.push("#define PI 3.14159265359"),r.push("#define RECIPROCAL_PI 0.31830988618"),r.push("#define RECIPROCAL_PI2 0.15915494"),r.push("#define EPSILON 1e-6"),r.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),r.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),r.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),r.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),r.push(" return normalize(surf_norm );"),r.push(" }"),r.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),r.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),r.push(" vec2 st0 = dFdx( uv.st );"),r.push(" vec2 st1 = dFdy( uv.st );"),r.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),r.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),r.push(" vec3 N = normalize( surf_norm );"),r.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),r.push(" mat3 tsn = mat3( S, T, N );"),r.push(" return normalize( tsn * mapN );"),r.push("}"),r.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),r.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),r.push("}"),r.push("struct IncidentLight {"),r.push(" vec3 color;"),r.push(" vec3 direction;"),r.push("};"),r.push("struct ReflectedLight {"),r.push(" vec3 diffuse;"),r.push(" vec3 specular;"),r.push("};"),r.push("struct Geometry {"),r.push(" vec3 position;"),r.push(" vec3 viewNormal;"),r.push(" vec3 worldNormal;"),r.push(" vec3 viewEyeDir;"),r.push("};"),r.push("struct Material {"),r.push(" vec3 diffuseColor;"),r.push(" float specularRoughness;"),r.push(" vec3 specularColor;"),r.push(" float shine;"),r.push("};"),r.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),r.push(" float r = ggxRoughness + 0.0001;"),r.push(" return (2.0 / (r * r) - 2.0);"),r.push("}"),r.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),r.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),r.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),r.push("}"),n.reflectionMaps.length>0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = "+ca[n.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = "+ca[n.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&s.push("out float vFlags;"),s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&s.push("vFlags = flags;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class pa extends zn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState;let i,a;const r=s.getNumAllocatedSectionPlanes()>0,l=[];if(l.push("#version 300 es"),l.push("// Instancing geometry drawing fragment shader"),l.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),l.push("precision highp float;"),l.push("precision highp int;"),l.push("#else"),l.push("precision mediump float;"),l.push("precision mediump int;"),l.push("#endif"),e.logarithmicDepthBufferEnabled&&(l.push("in float isPerspective;"),l.push("uniform float logDepthBufFC;"),l.push("in float vFragDepth;")),l.push("uniform sampler2D uColorMap;"),this._withSAO&&(l.push("uniform sampler2D uOcclusionTexture;"),l.push("uniform vec4 uSAOParams;"),l.push("const float packUpscale = 256. / 255.;"),l.push("const float unpackDownScale = 255. / 256.;"),l.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),l.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),l.push("float unpackRGBToFloat( const in vec4 v ) {"),l.push(" return dot( v, unPackFactors );"),l.push("}")),l.push("uniform float gammaFactor;"),l.push("vec4 linearToLinear( in vec4 value ) {"),l.push(" return value;"),l.push("}"),l.push("vec4 sRGBToLinear( in vec4 value ) {"),l.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),l.push("}"),l.push("vec4 gammaToLinear( in vec4 value) {"),l.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),l.push("}"),t&&(l.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),l.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),l.push("}")),r){l.push("in vec4 vWorldPosition;"),l.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),l.push(" if (clippable) {"),l.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),l.push(" discard;"),l.push(" }"),l.push("}")}for(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),l.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),l.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),l.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,a=n.lights.length;i0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ga=h.vec3(),Ea=h.vec3(),Ta=h.vec3(),ba=h.vec3(),Da=h.mat4();class Pa extends kn{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=ga;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ea;if(o){const e=h.transformPoint3(u,o,Ta);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Da),y=ba,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(l.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(l.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(l.modelMatrixCol2Buf),r.vertexAttribDivisor(this._aModelMatrixCol0.location,1),r.vertexAttribDivisor(this._aModelMatrixCol1.location,1),r.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(l.flagsBuf),r.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElementsInstanced(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0,l.numInstances),l.edgeIndicesBuf.unbind()):r.drawArraysInstanced(r.POINTS,0,l.positionsBuf.numItems,l.numInstances),r.vertexAttribDivisor(this._aModelMatrixCol0.location,0),r.vertexAttribDivisor(this._aModelMatrixCol1.location,0),r.vertexAttribDivisor(this._aModelMatrixCol2.location,0),r.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&r.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Ra{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new wa(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Pa(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new wa(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Pa(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const Ca={};const _a=new Float32Array(1),Ba=h.vec4([0,0,0,1]),Oa=new Float32Array(3),Sa=h.vec3(),Na=h.vec3(),xa=h.vec3(),La=h.vec3(),Ma=h.vec3(),Fa=h.vec3(),Ha=h.vec3(),Ua=new Float32Array(4);class Ga{constructor(e){this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._instancingRenderers=function(e){const t=e.id;let s=da[t];return s||(s=new Aa(e),da[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete da[t],s._destroy()}))),s}(e.model.scene),this._snapInstancingRenderers=function(e){const t=e.id;let s=Ca[t];return s||(s=new Ra(e),Ca[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ca[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({numInstances:0,obb:h.OBB3(),origin:h.vec3(),geometry:e.geometry,textureSet:e.textureSet,pbrSupported:!1,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,e.origin&&this._state.origin.set(e.origin),this._finalized=!1,this.solid=!!e.solid,this.numIndices=e.geometry.numIndices}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new Oe(n,n.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,n.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new Oe(n,n.ARRAY_BUFFER,t,this._metallicRoughness.length,2,n.STATIC_DRAW,s)}if(a>0){let t=!1;e.flagsBuf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(a),a,1,n.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,n.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new Oe(n,n.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,n.STATIC_DRAW,s),e.positionsDecodeMatrix=h.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),i=!1;e.colorsBuf=new Oe(n,n.ARRAY_BUFFER,s,s.length,4,n.STATIC_DRAW,i)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Oe(n,n.ARRAY_BUFFER,s,s.length,2,n.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,n.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,n.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Oe(n,n.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,n.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&s&&s.colorTexture&&s.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!s&&!!s.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?1:0)<<16,_a[0]=A,this._state.flagsBuf&&this._state.flagsBuf.setData(_a,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Oa[0]=t[0],Oa[1]=t[1],Oa[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(Oa,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const s=this._state,n=s.geometry,i=this._portions[e];if(!i)return void this.model.error("portion not found: "+e);const a=n.quantizedPositions,r=s.origin,l=i.offset,o=r[0]+l[0],c=r[1]+l[1],u=r[2]+l[2],p=Ba,A=i.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=a.length;ev)&&(v=e,n.set(w),i&&h.triangleNormal(f,I,y,i),m=!0)}}return m&&i&&(h.transformVec3(l.normalMatrix,i,i),h.transformVec3(this.model.worldNormalMatrix,i,i),h.normalizeVec3(i)),m}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}class ja extends qn{drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Va extends qn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class ka{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ja(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Va(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const Qa={};class Wa{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class za{constructor(e){this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Qa[t];return s||(s=new ka(e),Qa[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Qa[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new Wa(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:h.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=h.vec3(e.origin))}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ei(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.colors.length>0){const n=s.colors.length/4,i=new Float32Array(n);let a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2],c=t[3];for(let e=0;e0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 lightAmbient;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class Ya extends Jn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 color;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class Xa{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ka(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Ya(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const qa={};const Ja=new Uint8Array(4),Za=new Float32Array(1),$a=new Float32Array(3),er=new Float32Array(4);class tr{constructor(e){this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._linesInstancingRenderers=function(e){const t=e.id;let s=qa[t];return s||(s=new Xa(e),qa[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete qa[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({obb:h.OBB3(),numInstances:0,origin:null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=h.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new Oe(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(s>0){let t=!1;this._state.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(s),s,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Ja[0]=t[0],Ja[1]=t[1],Ja[2]=t[2],Ja[3]=t[3],this._state.colorsBuf.setData(Ja,4*e,4)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?255:0)<<16,Za[0]=A,this._state.flagsBuf.setData(Za,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?($a[0]=t[0],$a[1]=t[1],$a[2]=t[2],this._state.offsetsBuf.setData($a,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;er[0]=t[0],er[1]=t[4],er[2]=t[8],er[3]=t[12],this._state.modelMatrixCol0Buf.setData(er,s),er[0]=t[1],er[1]=t[5],er[2]=t[9],er[3]=t[13],this._state.modelMatrixCol1Buf.setData(er,s),er[0]=t[2],er[1]=t[6],er[2]=t[10],er[3]=t[14],this._state.modelMatrixCol2Buf.setData(er,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawPickNormals(e,t){}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}class sr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial,n=[];return n.push("#version 300 es"),n.push("// Points batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class nr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}class ir extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class ar extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batched pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batched pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class rr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push(" gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}class lr{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new sr(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new nr(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ir(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ar(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new rr(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const or={};class cr{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]}}class ur{constructor(e){this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._pointsBatchingRenderers=function(e){const t=e.id;let s=or[t];return s||(s=new lr(e),or[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete or[t],s._destroy()}))),s}(e.model.scene),this._buffer=new cr(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:h.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=h.vec3(e.origin))}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ei(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n);let a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2];for(let e=0;e0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class pr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 silhouetteColor;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ar extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick mesh fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class dr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class fr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Ir extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class yr extends Xn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("gl_PointSize = pointSize;"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }"),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class mr{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new hr(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new pr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Ir(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ar(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new dr(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new fr(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new yr(this._scene)),this._shadowRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}const vr={};const wr=new Uint8Array(4),gr=new Float32Array(1),Er=new Float32Array(3),Tr=new Float32Array(4);class br{constructor(e){this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._pointsInstancingRenderers=function(e){const t=e.id;let s=vr[t];return s||(s=new mr(e),vr[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete vr[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({obb:h.OBB3(),numInstances:0,origin:e.origin?h.vec3(e.origin):null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let n=!1;s.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,n)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;s.offsetsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(n.positionsCompressed&&n.positionsCompressed.length>0){const t=!1;s.positionsBuf=new Oe(e,e.ARRAY_BUFFER,n.positionsCompressed,n.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=h.mat4(n.positionsDecodeMatrix)}if(n.colorsCompressed&&n.colorsCompressed.length>0){const t=new Uint8Array(n.colorsCompressed),i=!1;s.colorsBuf=new Oe(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,i)}if(this._modelMatrixCol0.length>0){const t=!1;s.modelMatrixCol0Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),s.modelMatrixCol1Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),s.modelMatrixCol2Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){const t=!1;s.pickColorsBuf=new Oe(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}s.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";wr[0]=t[0],wr[1]=t[1],wr[2]=t[2],this._state.colorsBuf.setData(wr,3*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?255:0)<<16,gr[0]=A,this._state.flagsBuf.setData(gr,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Er[0]=t[0],Er[1]=t[1],Er[2]=t[2],this._state.offsetsBuf.setData(Er,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Tr[0]=t[0],Tr[1]=t[4],Tr[2]=t[8],Tr[3]=t[12],this._state.modelMatrixCol0Buf.setData(Tr,s),Tr[0]=t[1],Tr[1]=t[5],Tr[2]=t[9],Tr[3]=t[13],this._state.modelMatrixCol1Buf.setData(Tr,s),Tr[0]=t[2],Tr[1]=t[6],Tr[2]=t[10],Tr[3]=t[14],this._state.modelMatrixCol2Buf.setData(Tr,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,Mn.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,Mn.PICK)}drawPickNormals(e,t){}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}class Dr{constructor(e){this.id=e.id,this.colorTexture=e.colorTexture,this.metallicRoughnessTexture=e.metallicRoughnessTexture,this.normalsTexture=e.normalsTexture,this.emissiveTexture=e.emissiveTexture,this.occlusionTexture=e.occlusionTexture}destroy(){}}class Pr{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const Rr={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class Cr{constructor(e,t,s){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=s}itemStart(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}itemEnd(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}itemError(e){void 0!==this.onError&&this.onError(e)}resolveURL(e){return this.urlModifier?this.urlModifier(e):e}setURLModifier(e){return this.urlModifier=e,this}addHandler(e,t){return this.handlers.push(e,t),this}removeHandler(e){const t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}getHandler(e){for(let t=0,s=this.handlers.length;t{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Or[e])return void Or[e].push({onLoad:t,onProgress:s,onError:n});Or[e]=[],Or[e].push({onLoad:t,onProgress:s,onError:n});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),r=this.mimeType,l=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body.getReader)return t;const s=Or[e],n=t.body.getReader(),i=t.headers.get("Content-Length"),a=i?parseInt(i):0,r=0!==a;let l=0;const o=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{l+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:r,loaded:l,total:a});for(let e=0,t=s.length;e{switch(l){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,r)));case"json":return e.json();default:if(void 0===r)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(r),s=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(s);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{Rr.add(e,t);const s=Or[e];delete Or[e];for(let e=0,n=s.length;e{const s=Or[e];if(void 0===s)throw this.manager.itemError(e),t;delete Or[e];for(let e=0,n=s.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Nr{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let xr=0;class Lr{constructor({viewer:e,transcoderPath:t,workerLimit:s}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new Nr,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const n=e.capabilities;this._workerConfig={astcSupported:n.astcSupported,etc1Supported:n.etc1Supported,etc2Supported:n.etc2Supported,dxtSupported:n.dxtSupported,bptcSupported:n.bptcSupported,pvrtcSupported:n.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new Sr;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new Sr;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const n=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,n]).then((([e,t])=>{const s=Lr.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(Lr.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Lr.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Lr.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([n])),this._transcoderBinary=t,this._workerPool.setWorkerCreator((()=>{const e=new Worker(this._workerSourceURL),t=this._transcoderBinary.slice(0);return e.postMessage({type:"init",config:this._workerConfig,transcoderBinary:t},[t]),e}))})),xr>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),xr++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((n,i)=>{const a=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:a},e))).then((e=>{const s=e.data,{mipmaps:a,width:r,height:l,format:o,type:c,error:u,dfdTransferFn:h,dfdFlags:p}=s;if("error"===c)return i(u);t.setCompressedData({mipmaps:a,props:{format:o,minFilter:1===a.length?1006:1008,magFilter:1===a.length?1006:1008,encoding:2===h?3001:3e3,premultiplyAlpha:!!(1&p)}}),n()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),xr--}}Lr.BasisFormat={ETC1S:0,UASTC_4x4:1},Lr.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},Lr.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},Lr.BasisWorker=function(){let e,t,s;const n=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(r){const u=r.data;switch(u.type){case"init":e=u.config,h=u.transcoderBinary,t=new Promise((e=>{s={wasmBinary:h,onRuntimeInitialized:e},BASIS(s)})).then((()=>{s.initializeBasis(),void 0===s.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:r,hasAlpha:h,mipmaps:p,format:A,dfdTransferFn:d,dfdFlags:f}=function(t){const r=new s.KTX2File(new Uint8Array(t));function u(){r.close(),r.delete()}if(!r.isValid())throw u(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const h=r.isUASTC()?a.UASTC_4x4:a.ETC1S,p=r.getWidth(),A=r.getHeight(),d=r.getLevels(),f=r.getHasAlpha(),I=r.getDFDTransferFunc(),y=r.getDFDFlags(),{transcoderFormat:m,engineFormat:v}=function(t,s,r,u){let h,p;const A=t===a.ETC1S?l:o;for(let n=0;n{delete Mr[t],s.destroy()}))),s} +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}const t=new e;class s{constructor(e){this.id=e,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class n{constructor(){this.items=[]}}class i{constructor(e,t,s,n,i){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=n,this.getShown=i,this.itemElement=null,this.subMenu=null,this.enabled=!0}}let a=!0,r=a?Float64Array:Float32Array;const l=new r(3),o=new r(16),c=new r(16),u=new r(4),h={setDoublePrecisionEnabled(e){a=e,r=a?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>a,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(e,t){const s=t.indexOf("#");return s===e.length&&t.startsWith(e)?t.substring(s+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new r(e||2),vec3:e=>new r(e||3),vec4:e=>new r(e||4),mat3:e=>new r(e||9),mat3ToMat4:(e,t=new r(16))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t),mat4:e=>new r(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const n=new r(2);for(let i=0,a=e.length;i{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,s=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&s]}${e[s>>8&255]}-${e[s>>16&15|64]}${e[s>>24&255]}-${e[63&n|128]}${e[n>>8&255]}-${e[n>>16&255]}${e[n>>24&255]}${e[255&i]}${e[i>>8&255]}${e[i>>16&255]}${e[i>>24&255]}`}})(),clamp:(e,t,s)=>Math.max(t,Math.min(s,e)),fmod(e,t){if(ee[0]===t[0]&&e[1]===t[1]&&e[2]===t[2],negateVec3:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t),negateVec4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t),addVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s),addVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s),addVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s),addVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s),subVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s),subVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s),subVec2:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s),geometricMeanVec2(...e){const t=new r(e[0]);for(let s=1;s(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s),subScalarVec4:(e,t,s)=>(s||(s=e),s[0]=t-e[0],s[1]=t-e[1],s[2]=t-e[2],s[3]=t-e[3],s),mulVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]*t[0],s[1]=e[1]*t[1],s[2]=e[2]*t[2],s[3]=e[3]*t[3],s),mulVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s),mulVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s),mulVec2Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s),divVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s),divVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s[3]=e[3]/t[3],s),divScalarVec3:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s),divVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s),divVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s[3]=e[3]/t,s),divScalarVec4:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s[3]=e/t[3],s),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const s=e[0],n=e[1],i=e[2],a=t[0],r=t[1],l=t[2];return[n*l-i*r,i*a-s*l,s*r-n*a,0]},cross3Vec3(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=t[0],l=t[1],o=t[2];return s[0]=i*o-a*l,s[1]=a*r-n*o,s[2]=n*l-i*r,s},sqLenVec4:e=>h.dotVec4(e,e),lenVec4:e=>Math.sqrt(h.sqLenVec4(e)),dotVec3:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],dotVec2:(e,t)=>e[0]*t[0]+e[1]*t[1],sqLenVec3:e=>h.dotVec3(e,e),sqLenVec2:e=>h.dotVec2(e,e),lenVec3:e=>Math.sqrt(h.sqLenVec3(e)),distVec3:(()=>{const e=new r(3);return(t,s)=>h.lenVec3(h.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(h.sqLenVec2(e)),distVec2:(()=>{const e=new r(2);return(t,s)=>h.lenVec2(h.subVec2(t,s,e))})(),rcpVec3:(e,t)=>h.divScalarVec3(1,e,t),normalizeVec4(e,t){const s=1/h.lenVec4(e);return h.mulVec4Scalar(e,s,t)},normalizeVec3(e,t){const s=1/h.lenVec3(e);return h.mulVec3Scalar(e,s,t)},normalizeVec2(e,t){const s=1/h.lenVec2(e);return h.mulVec2Scalar(e,s,t)},angleVec3(e,t){let s=h.dotVec3(e,t)/Math.sqrt(h.sqLenVec3(e)*h.sqLenVec3(t));return s=s<-1?-1:s>1?1:s,Math.acos(s)},vec3FromMat4Scale:(()=>{const e=new r(3);return(t,s)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],s[0]=h.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],s[1]=h.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],s[2]=h.lenVec3(e),s)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let s=0,n=(t=Array.prototype.slice.call(t)).length;s({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||h.vec3())[0]=e.x,t[1]=e.y,t[2]=e.z,t),dupMat4:e=>e.slice(0,16),mat4To3:e=>[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]],m4s:e=>[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],setMat4ToZeroes:()=>h.m4s(0),setMat4ToOnes:()=>h.m4s(1),diagonalMat4v:e=>new r([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,n)=>h.diagonalMat4v([e,t,s,n]),diagonalMat4s:e=>h.diagonalMat4c(e,e,e,e),identityMat4:(e=new r(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),identityMat3:(e=new r(9))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e),isIdentityMat4:e=>1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15],negateMat4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t),addMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s[4]=e[4]+t[4],s[5]=e[5]+t[5],s[6]=e[6]+t[6],s[7]=e[7]+t[7],s[8]=e[8]+t[8],s[9]=e[9]+t[9],s[10]=e[10]+t[10],s[11]=e[11]+t[11],s[12]=e[12]+t[12],s[13]=e[13]+t[13],s[14]=e[14]+t[14],s[15]=e[15]+t[15],s),addMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s[4]=e[4]+t,s[5]=e[5]+t,s[6]=e[6]+t,s[7]=e[7]+t,s[8]=e[8]+t,s[9]=e[9]+t,s[10]=e[10]+t,s[11]=e[11]+t,s[12]=e[12]+t,s[13]=e[13]+t,s[14]=e[14]+t,s[15]=e[15]+t,s),addScalarMat4:(e,t,s)=>h.addMat4Scalar(t,e,s),subMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s[4]=e[4]-t[4],s[5]=e[5]-t[5],s[6]=e[6]-t[6],s[7]=e[7]-t[7],s[8]=e[8]-t[8],s[9]=e[9]-t[9],s[10]=e[10]-t[10],s[11]=e[11]-t[11],s[12]=e[12]-t[12],s[13]=e[13]-t[13],s[14]=e[14]-t[14],s[15]=e[15]-t[15],s),subMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s[4]=e[4]-t,s[5]=e[5]-t,s[6]=e[6]-t,s[7]=e[7]-t,s[8]=e[8]-t,s[9]=e[9]-t,s[10]=e[10]-t,s[11]=e[11]-t,s[12]=e[12]-t,s[13]=e[13]-t,s[14]=e[14]-t,s[15]=e[15]-t,s),subScalarMat4:(e,t,s)=>(s||(s=t),s[0]=e-t[0],s[1]=e-t[1],s[2]=e-t[2],s[3]=e-t[3],s[4]=e-t[4],s[5]=e-t[5],s[6]=e-t[6],s[7]=e-t[7],s[8]=e-t[8],s[9]=e-t[9],s[10]=e-t[10],s[11]=e-t[11],s[12]=e-t[12],s[13]=e-t[13],s[14]=e-t[14],s[15]=e-t[15],s),mulMat4(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=e[3],l=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=e[9],A=e[10],d=e[11],f=e[12],I=e[13],y=e[14],m=e[15],v=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],x=t[15];return s[0]=v*n+w*l+g*h+E*f,s[1]=v*i+w*o+g*p+E*I,s[2]=v*a+w*c+g*A+E*y,s[3]=v*r+w*u+g*d+E*m,s[4]=T*n+b*l+D*h+P*f,s[5]=T*i+b*o+D*p+P*I,s[6]=T*a+b*c+D*A+P*y,s[7]=T*r+b*u+D*d+P*m,s[8]=R*n+C*l+_*h+B*f,s[9]=R*i+C*o+_*p+B*I,s[10]=R*a+C*c+_*A+B*y,s[11]=R*r+C*u+_*d+B*m,s[12]=O*n+S*l+N*h+x*f,s[13]=O*i+S*o+N*p+x*I,s[14]=O*a+S*c+N*A+x*y,s[15]=O*r+S*u+N*d+x*m,s},mulMat3(e,t,s){s||(s=new r(9));const n=e[0],i=e[3],a=e[6],l=e[1],o=e[4],c=e[7],u=e[2],h=e[5],p=e[8],A=t[0],d=t[3],f=t[6],I=t[1],y=t[4],m=t[7],v=t[2],w=t[5],g=t[8];return s[0]=n*A+i*I+a*v,s[3]=n*d+i*y+a*w,s[6]=n*f+i*m+a*g,s[1]=l*A+o*I+c*v,s[4]=l*d+o*y+c*w,s[7]=l*f+o*m+c*g,s[2]=u*A+h*I+p*v,s[5]=u*d+h*y+p*w,s[8]=u*f+h*m+p*g,s},mulMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s[4]=e[4]*t,s[5]=e[5]*t,s[6]=e[6]*t,s[7]=e[7]*t,s[8]=e[8]*t,s[9]=e[9]*t,s[10]=e[10]*t,s[11]=e[11]*t,s[12]=e[12]*t,s[13]=e[13]*t,s[14]=e[14]*t,s[15]=e[15]*t,s),mulMat4v4(e,t,s=h.vec4()){const n=t[0],i=t[1],a=t[2],r=t[3];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12]*r,s[1]=e[1]*n+e[5]*i+e[9]*a+e[13]*r,s[2]=e[2]*n+e[6]*i+e[10]*a+e[14]*r,s[3]=e[3]*n+e[7]*i+e[11]*a+e[15]*r,s},transposeMat4(e,t){const s=e[4],n=e[14],i=e[8],a=e[13],r=e[12],l=e[9];if(!t||e===t){const t=e[1],o=e[2],c=e[3],u=e[6],h=e[7],p=e[11];return e[1]=s,e[2]=i,e[3]=r,e[4]=t,e[6]=l,e[7]=a,e[8]=o,e[9]=u,e[11]=n,e[12]=c,e[13]=h,e[14]=p,e}return t[0]=e[0],t[1]=s,t[2]=i,t[3]=r,t[4]=e[1],t[5]=e[5],t[6]=l,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=n,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const s=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4(e){const t=e[0],s=e[1],n=e[2],i=e[3],a=e[4],r=e[5],l=e[6],o=e[7],c=e[8],u=e[9],h=e[10],p=e[11],A=e[12],d=e[13],f=e[14],I=e[15];return A*u*l*i-c*d*l*i-A*r*h*i+a*d*h*i+c*r*f*i-a*u*f*i-A*u*n*o+c*d*n*o+A*s*h*o-t*d*h*o-c*s*f*o+t*u*f*o+A*r*n*p-a*d*n*p-A*s*l*p+t*d*l*p+a*s*f*p-t*r*f*p-c*r*n*I+a*u*n*I+c*s*l*I-t*u*l*I-a*s*h*I+t*r*h*I},inverseMat4(e,t){t||(t=e);const s=e[0],n=e[1],i=e[2],a=e[3],r=e[4],l=e[5],o=e[6],c=e[7],u=e[8],h=e[9],p=e[10],A=e[11],d=e[12],f=e[13],I=e[14],y=e[15],m=s*l-n*r,v=s*o-i*r,w=s*c-a*r,g=n*o-i*l,E=n*c-a*l,T=i*c-a*o,b=u*f-h*d,D=u*I-p*d,P=u*y-A*d,R=h*I-p*f,C=h*y-A*f,_=p*y-A*I,B=1/(m*_-v*C+w*R+g*P-E*D+T*b);return t[0]=(l*_-o*C+c*R)*B,t[1]=(-n*_+i*C-a*R)*B,t[2]=(f*T-I*E+y*g)*B,t[3]=(-h*T+p*E-A*g)*B,t[4]=(-r*_+o*P-c*D)*B,t[5]=(s*_-i*P+a*D)*B,t[6]=(-d*T+I*w-y*v)*B,t[7]=(u*T-p*w+A*v)*B,t[8]=(r*C-l*P+c*b)*B,t[9]=(-s*C+n*P-a*b)*B,t[10]=(d*E-f*w+y*m)*B,t[11]=(-u*E+h*w-A*m)*B,t[12]=(-r*R+l*D-o*b)*B,t[13]=(s*R-n*D+i*b)*B,t[14]=(-d*g+f*v-I*m)*B,t[15]=(u*g-h*v+p*m)*B,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const s=t||h.identityMat4();return s[12]=e[0],s[13]=e[1],s[14]=e[2],s},translationMat3v(e,t){const s=t||h.identityMat3();return s[6]=e[0],s[7]=e[1],s},translationMat4c:(()=>{const e=new r(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,h.translationMat4v(e,i))})(),translationMat4s:(e,t)=>h.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>h.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,s,n){const i=n[3];n[0]+=i*e,n[1]+=i*t,n[2]+=i*s;const a=n[7];n[4]+=a*e,n[5]+=a*t,n[6]+=a*s;const r=n[11];n[8]+=r*e,n[9]+=r*t,n[10]+=r*s;const l=n[15];return n[12]+=l*e,n[13]+=l*t,n[14]+=l*s,n},setMat4Translation:(e,t,s)=>(s[0]=e[0],s[1]=e[1],s[2]=e[2],s[3]=e[3],s[4]=e[4],s[5]=e[5],s[6]=e[6],s[7]=e[7],s[8]=e[8],s[9]=e[9],s[10]=e[10],s[11]=e[11],s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=e[15],s),rotationMat4v(e,t,s){const n=h.normalizeVec4([t[0],t[1],t[2],0],[]),i=Math.sin(e),a=Math.cos(e),r=1-a,l=n[0],o=n[1],c=n[2];let u,p,A,d,f,I;return u=l*o,p=o*c,A=c*l,d=l*i,f=o*i,I=c*i,(s=s||h.mat4())[0]=r*l*l+a,s[1]=r*u+I,s[2]=r*A-f,s[3]=0,s[4]=r*u-I,s[5]=r*o*o+a,s[6]=r*p+d,s[7]=0,s[8]=r*A+f,s[9]=r*p-d,s[10]=r*c*c+a,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,n,i)=>h.rotationMat4v(e,[t,s,n],i),scalingMat4v:(e,t=h.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=h.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new r(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,h.scalingMat4v(e,i))})(),scaleMat4c:(e,t,s,n)=>(n[0]*=e,n[4]*=t,n[8]*=s,n[1]*=e,n[5]*=t,n[9]*=s,n[2]*=e,n[6]*=t,n[10]*=s,n[3]*=e,n[7]*=t,n[11]*=s,n),scaleMat4v(e,t){const s=e[0],n=e[1],i=e[2];return t[0]*=s,t[4]*=n,t[8]*=i,t[1]*=s,t[5]*=n,t[9]*=i,t[2]*=s,t[6]*=n,t[10]*=i,t[3]*=s,t[7]*=n,t[11]*=i,t},scalingMat4s:e=>h.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=h.mat4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=n+n,o=i+i,c=a+a,u=n*l,p=n*o,A=n*c,d=i*o,f=i*c,I=a*c,y=r*l,m=r*o,v=r*c;return s[0]=1-(d+I),s[1]=p+v,s[2]=A-m,s[3]=0,s[4]=p-v,s[5]=1-(u+I),s[6]=f+y,s[7]=0,s[8]=A+m,s[9]=f-y,s[10]=1-(u+d),s[11]=0,s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=1,s},mat4ToEuler(e,t,s=h.vec4()){const n=h.clamp,i=e[0],a=e[4],r=e[8],l=e[1],o=e[5],c=e[9],u=e[2],p=e[6],A=e[10];return"XYZ"===t?(s[1]=Math.asin(n(r,-1,1)),Math.abs(r)<.99999?(s[0]=Math.atan2(-c,A),s[2]=Math.atan2(-a,i)):(s[0]=Math.atan2(p,o),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-n(c,-1,1)),Math.abs(c)<.99999?(s[1]=Math.atan2(r,A),s[2]=Math.atan2(l,o)):(s[1]=Math.atan2(-u,i),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(n(p,-1,1)),Math.abs(p)<.99999?(s[1]=Math.atan2(-u,A),s[2]=Math.atan2(-a,o)):(s[1]=0,s[2]=Math.atan2(l,i))):"ZYX"===t?(s[1]=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(s[0]=Math.atan2(p,A),s[2]=Math.atan2(l,i)):(s[0]=0,s[2]=Math.atan2(-a,o))):"YZX"===t?(s[2]=Math.asin(n(l,-1,1)),Math.abs(l)<.99999?(s[0]=Math.atan2(-c,o),s[1]=Math.atan2(-u,i)):(s[0]=0,s[1]=Math.atan2(r,A))):"XZY"===t&&(s[2]=Math.asin(-n(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(p,o),s[1]=Math.atan2(r,i)):(s[0]=Math.atan2(-c,A),s[1]=0)),s},composeMat4:(e,t,s,n=h.mat4())=>(h.quaternionToRotationMat4(t,n),h.scaleMat4v(s,n),h.translateMat4v(e,n),n),decomposeMat4:(()=>{const e=new r(3),t=new r(16);return function(s,n,i,a){e[0]=s[0],e[1]=s[1],e[2]=s[2];let r=h.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const l=h.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const o=h.lenVec3(e);h.determinantMat4(s)<0&&(r=-r),n[0]=s[12],n[1]=s[13],n[2]=s[14],t.set(s);const c=1/r,u=1/l,p=1/o;return t[0]*=c,t[1]*=c,t[2]*=c,t[4]*=u,t[5]*=u,t[6]*=u,t[8]*=p,t[9]*=p,t[10]*=p,h.mat4ToQuaternion(t,i),a[0]=r,a[1]=l,a[2]=o,this}})(),getColMat4(e,t){const s=4*t;return[e[s],e[s+1],e[s+2],e[s+3]]},setRowMat4(e,t,s){e[t]=s[0],e[t+4]=s[1],e[t+8]=s[2],e[t+12]=s[3]},lookAtMat4v(e,t,s,n){n||(n=h.mat4());const i=e[0],a=e[1],r=e[2],l=s[0],o=s[1],c=s[2],u=t[0],p=t[1],A=t[2];if(i===u&&a===p&&r===A)return h.identityMat4();let d,f,I,y,m,v,w,g,E,T;return d=i-u,f=a-p,I=r-A,T=1/Math.sqrt(d*d+f*f+I*I),d*=T,f*=T,I*=T,y=o*I-c*f,m=c*d-l*I,v=l*f-o*d,T=Math.sqrt(y*y+m*m+v*v),T?(T=1/T,y*=T,m*=T,v*=T):(y=0,m=0,v=0),w=f*v-I*m,g=I*y-d*v,E=d*m-f*y,T=Math.sqrt(w*w+g*g+E*E),T?(T=1/T,w*=T,g*=T,E*=T):(w=0,g=0,E=0),n[0]=y,n[1]=w,n[2]=d,n[3]=0,n[4]=m,n[5]=g,n[6]=f,n[7]=0,n[8]=v,n[9]=E,n[10]=I,n[11]=0,n[12]=-(y*i+m*a+v*r),n[13]=-(w*i+g*a+E*r),n[14]=-(d*i+f*a+I*r),n[15]=1,n},lookAtMat4c:(e,t,s,n,i,a,r,l,o)=>h.lookAtMat4v([e,t,s],[n,i,a],[r,l,o],[]),orthoMat4c(e,t,s,n,i,a,r){r||(r=h.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/c,r[11]=0,r[12]=-(e+t)/l,r[13]=-(n+s)/o,r[14]=-(a+i)/c,r[15]=1,r},frustumMat4v(e,t,s){s||(s=h.mat4());const n=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];h.addVec4(i,n,o),h.subVec4(i,n,c);const a=2*n[2],r=c[0],l=c[1],u=c[2];return s[0]=a/r,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=a/l,s[6]=0,s[7]=0,s[8]=o[0]/r,s[9]=o[1]/l,s[10]=-o[2]/u,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i[2]/u,s[15]=0,s},frustumMat4(e,t,s,n,i,a,r){r||(r=h.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2*i/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*i/o,r[6]=0,r[7]=0,r[8]=(t+e)/l,r[9]=(n+s)/o,r[10]=-(a+i)/c,r[11]=-1,r[12]=0,r[13]=0,r[14]=-a*i*2/c,r[15]=0,r},perspectiveMat4(e,t,s,n,i){const a=[],r=[];return a[2]=s,r[2]=n,r[1]=a[2]*Math.tan(e/2),a[1]=-r[1],r[0]=r[1]*t,a[0]=-r[0],h.frustumMat4v(a,r,i)},compareMat4:(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15],transformPoint3(e,t,s=h.vec3()){const n=t[0],i=t[1],a=t[2];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12],s[1]=e[1]*n+e[5]*i+e[9]*a+e[13],s[2]=e[2]*n+e[6]*i+e[10]*a+e[14],s},transformPoint4:(e,t,s=h.vec4())=>(s[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],s[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],s[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],s[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],s),transformPoints3(e,t,s){const n=s||[],i=t.length;let a,r,l,o;const c=e[0],u=e[1],h=e[2],p=e[3],A=e[4],d=e[5],f=e[6],I=e[7],y=e[8],m=e[9],v=e[10],w=e[11],g=e[12],E=e[13],T=e[14],b=e[15];let D;for(let e=0;e{const e=new r(16),t=new r(16),s=new r(16);return function(n,i,a,r){return this.transformVec3(this.mulMat4(this.inverseMat4(i,e),this.inverseMat4(a,t),s),n,r)}})(),lerpVec3(e,t,s,n,i,a){const r=a||h.vec3(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r},lerpMat4(e,t,s,n,i,a){const r=a||h.mat4(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r[3]=n[3]+l*(i[3]-n[3]),r[4]=n[4]+l*(i[4]-n[4]),r[5]=n[5]+l*(i[5]-n[5]),r[6]=n[6]+l*(i[6]-n[6]),r[7]=n[7]+l*(i[7]-n[7]),r[8]=n[8]+l*(i[8]-n[8]),r[9]=n[9]+l*(i[9]-n[9]),r[10]=n[10]+l*(i[10]-n[10]),r[11]=n[11]+l*(i[11]-n[11]),r[12]=n[12]+l*(i[12]-n[12]),r[13]=n[13]+l*(i[13]-n[13]),r[14]=n[14]+l*(i[14]-n[14]),r[15]=n[15]+l*(i[15]-n[15]),r},flatten(e){const t=[];let s,n,i,a,r;for(s=0,n=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=h.vec4()){const n=e[0]*h.DEGTORAD/2,i=e[1]*h.DEGTORAD/2,a=e[2]*h.DEGTORAD/2,r=Math.cos(n),l=Math.cos(i),o=Math.cos(a),c=Math.sin(n),u=Math.sin(i),p=Math.sin(a);return"XYZ"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o-c*u*p):"YXZ"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o+c*u*p):"ZXY"===t?(s[0]=c*l*o-r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o-c*u*p):"ZYX"===t?(s[0]=c*l*o-r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o+c*u*p):"YZX"===t?(s[0]=c*l*o+r*u*p,s[1]=r*u*o+c*l*p,s[2]=r*l*p-c*u*o,s[3]=r*l*o-c*u*p):"XZY"===t&&(s[0]=c*l*o-r*u*p,s[1]=r*u*o-c*l*p,s[2]=r*l*p+c*u*o,s[3]=r*l*o+c*u*p),s},mat4ToQuaternion(e,t=h.vec4()){const s=e[0],n=e[4],i=e[8],a=e[1],r=e[5],l=e[9],o=e[2],c=e[6],u=e[10];let p;const A=s+r+u;return A>0?(p=.5/Math.sqrt(A+1),t[3]=.25/p,t[0]=(c-l)*p,t[1]=(i-o)*p,t[2]=(a-n)*p):s>r&&s>u?(p=2*Math.sqrt(1+s-r-u),t[3]=(c-l)/p,t[0]=.25*p,t[1]=(n+a)/p,t[2]=(i+o)/p):r>u?(p=2*Math.sqrt(1+r-s-u),t[3]=(i-o)/p,t[0]=(n+a)/p,t[1]=.25*p,t[2]=(l+c)/p):(p=2*Math.sqrt(1+u-s-r),t[3]=(a-n)/p,t[0]=(i+o)/p,t[1]=(l+c)/p,t[2]=.25*p),t},vec3PairToQuaternion(e,t,s=h.vec4()){const n=Math.sqrt(h.dotVec3(e,e)*h.dotVec3(t,t));let i=n+h.dotVec3(e,t);return i<1e-8*n?(i=0,Math.abs(e[0])>Math.abs(e[2])?(s[0]=-e[1],s[1]=e[0],s[2]=0):(s[0]=0,s[1]=-e[2],s[2]=e[1])):h.cross3Vec3(e,t,s),s[3]=i,h.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=h.vec4()){const s=e[3]/2,n=Math.sin(s);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new r(16);return(t,s,n)=>(n=n||h.vec3(),h.quaternionToRotationMat4(t,e),h.mat4ToEuler(e,s,n),n)})(),mulQuaternions(e,t,s=h.vec4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=t[0],o=t[1],c=t[2],u=t[3];return s[0]=r*l+n*u+i*c-a*o,s[1]=r*o+i*u+a*l-n*c,s[2]=r*c+a*u+n*o-i*l,s[3]=r*u-n*l-i*o-a*c,s},vec3ApplyQuaternion(e,t,s=h.vec3()){const n=t[0],i=t[1],a=t[2],r=e[0],l=e[1],o=e[2],c=e[3],u=c*n+l*a-o*i,p=c*i+o*n-r*a,A=c*a+r*i-l*n,d=-r*n-l*i-o*a;return s[0]=u*c+d*-r+p*-o-A*-l,s[1]=p*c+d*-l+A*-r-u*-o,s[2]=A*c+d*-o+u*-l-p*-r,s},quaternionToMat4(e,t){t=h.identityMat4(t);const s=e[0],n=e[1],i=e[2],a=e[3],r=2*s,l=2*n,o=2*i,c=r*a,u=l*a,p=o*a,A=r*s,d=l*s,f=o*s,I=l*n,y=o*n,m=o*i;return t[0]=1-(I+m),t[1]=d+p,t[2]=f-u,t[4]=d-p,t[5]=1-(A+m),t[6]=y+c,t[8]=f+u,t[9]=y-c,t[10]=1-(A+I),t},quaternionToRotationMat4(e,t){const s=e[0],n=e[1],i=e[2],a=e[3],r=s+s,l=n+n,o=i+i,c=s*r,u=s*l,h=s*o,p=n*l,A=n*o,d=i*o,f=a*r,I=a*l,y=a*o;return t[0]=1-(p+d),t[4]=u-y,t[8]=h+I,t[1]=u+y,t[5]=1-(c+d),t[9]=A-f,t[2]=h-I,t[6]=A+f,t[10]=1-(c+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion(e,t=e){const s=h.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/s,t[1]=e[1]/s,t[2]=e[2]/s,t[3]=e[3]/s,t},conjugateQuaternion:(e,t=e)=>(t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t),inverseQuaternion:(e,t)=>h.normalizeQuaternion(h.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=h.vec4()){const s=(e=h.normalizeQuaternion(e,u))[3],n=2*Math.acos(s),i=Math.sqrt(1-s*s);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=n,t},AABB3:e=>new r(e||6),AABB2:e=>new r(e||4),OBB3:e=>new r(e||32),OBB2:e=>new r(e||16),Sphere3:(e,t,s,n)=>new r([e,t,s,n]),transformOBB3(e,t,s=t){let n;const i=t.length;let a,r,l;const o=e[0],c=e[1],u=e[2],h=e[3],p=e[4],A=e[5],d=e[6],f=e[7],I=e[8],y=e[9],m=e[10],v=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n{const e=new r(3),t=new r(3),s=new r(3);return n=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5],h.subVec3(t,e,s),Math.abs(h.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new r(3),t=new r(3),s=new r(3);return(n,i)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5];const a=h.subVec3(t,e,s),r=i[0]-n[0],l=n[3]-i[0],o=i[1]-n[1],c=n[4]-i[1],u=i[2]-n[2],p=n[5]-i[2];return a[0]+=r>l?r:l,a[1]+=o>c?o:c,a[2]+=u>p?u:p,Math.abs(h.lenVec3(a))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const s=t||h.vec3();return s[0]=(e[0]+e[3])/2,s[1]=(e[1]+e[4])/2,s[2]=(e[2]+e[5])/2,s},getAABB2Center(e,t){const s=t||h.vec2();return s[0]=(e[2]+e[0])/2,s[1]=(e[3]+e[1])/2,s},collapseAABB3:(e=h.AABB3())=>(e[0]=h.MAX_DOUBLE,e[1]=h.MAX_DOUBLE,e[2]=h.MAX_DOUBLE,e[3]=h.MIN_DOUBLE,e[4]=h.MIN_DOUBLE,e[5]=h.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=h.OBB3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t),positions3ToAABB3:(()=>{const e=new r(3);return(t,s,n)=>{s=s||h.AABB3();let i,a,r,l=h.MAX_DOUBLE,o=h.MAX_DOUBLE,c=h.MAX_DOUBLE,u=h.MIN_DOUBLE,p=h.MIN_DOUBLE,A=h.MIN_DOUBLE;for(let s=0,d=t.length;su&&(u=i),a>p&&(p=a),r>A&&(A=r);return s[0]=l,s[1]=o,s[2]=c,s[3]=u,s[4]=p,s[5]=A,s}})(),OBB3ToAABB3(e,t=h.AABB3()){let s,n,i,a=h.MAX_DOUBLE,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE,u=h.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToAABB3(e,t=h.AABB3()){let s,n,i,a=h.MAX_DOUBLE,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE,u=h.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToSphere3:(()=>{const e=new r(3);return(t,s)=>{s=s||h.vec4();let n,i=0,a=0,r=0;const l=t.length;for(n=0;nc&&(c=o);return s[3]=c,s}})(),positions3ToSphere3:(()=>{const e=new r(3),t=new r(3);return(s,n)=>{n=n||h.vec4();let i,a=0,r=0,l=0;const o=s.length;let c=0;for(i=0;ic&&(c=p);return n[3]=c,n}})(),OBB3ToSphere3:(()=>{const e=new r(3),t=new r(3);return(s,n)=>{n=n||h.vec4();let i,a=0,r=0,l=0;const o=s.length,c=o/4;for(i=0;ip&&(p=u);return n[3]=p,n}})(),getSphere3Center:(e,t=h.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=h.vec3()){let s=0,n=0,i=0;for(var a=0,r=e.length;a(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]s&&(e[0]=s),e[1]>n&&(e[1]=n),e[2]>i&&(e[2]=i),e[3](e[0]=h.MAX_DOUBLE,e[1]=h.MAX_DOUBLE,e[2]=h.MIN_DOUBLE,e[3]=h.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(n=e[0]*s[0],i=e[0]*s[3]):(n=e[0]*s[3],i=e[0]*s[0]),e[1]>0?(n+=e[1]*s[1],i+=e[1]*s[4]):(n+=e[1]*s[4],i+=e[1]*s[1]),e[2]>0?(n+=e[2]*s[2],i+=e[2]*s[5]):(n+=e[2]*s[5],i+=e[2]*s[2]);if(n<=-t&&i<=-t)return-1;return n>=-t&&i>=-t?1:0},OBB3ToAABB2(e,t=h.AABB2()){let s,n,i,a,r=h.MAX_DOUBLE,l=h.MAX_DOUBLE,o=h.MIN_DOUBLE,c=h.MIN_DOUBLE;for(let t=0,u=e.length;to&&(o=s),n>c&&(c=n);return t[0]=r,t[1]=l,t[2]=o,t[3]=c,t},expandAABB2:(e,t)=>(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]2*(1-e)*(s-t)+2*e*(n-s),tangentQuadraticBezier3:(e,t,s,n,i)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*n*(1-e)-3*e*e*n+3*e*e*i,tangentSpline:e=>6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e),catmullRomInterpolate(e,t,s,n,i){const a=.5*(s-e),r=.5*(n-t),l=i*i;return(2*t-2*s+a+r)*(i*l)+(-3*t+3*s-2*a-r)*l+a*i+t},b2p0(e,t){const s=1-e;return s*s*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,s,n){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,n)},b3p0(e,t){const s=1-e;return s*s*s*t},b3p1(e,t){const s=1-e;return 3*s*s*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,s,n,i){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,n)+this.b3p3(e,i)},triangleNormal(e,t,s,n=h.vec3()){const i=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],l=s[0]-e[0],o=s[1]-e[1],c=s[2]-e[2],u=a*c-r*o,p=r*l-i*c,A=i*o-a*l,d=Math.sqrt(u*u+p*p+A*A);return 0===d?(n[0]=0,n[1]=0,n[2]=0):(n[0]=u/d,n[1]=p/d,n[2]=A/d),n},rayTriangleIntersect:(()=>{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3);return(a,r,l,o,c,u)=>{u=u||h.vec3();const p=h.subVec3(o,l,e),A=h.subVec3(c,l,t),d=h.cross3Vec3(r,A,s),f=h.dotVec3(p,d);if(f<1e-6)return null;const I=h.subVec3(a,l,n),y=h.dotVec3(I,d);if(y<0||y>f)return null;const m=h.cross3Vec3(I,p,i),v=h.dotVec3(r,m);if(v<0||y+v>f)return null;const w=h.dotVec3(A,m)/f;return u[0]=a[0]+w*r[0],u[1]=a[1]+w*r[1],u[2]=a[2]+w*r[2],u}})(),rayPlaneIntersect:(()=>{const e=new r(3),t=new r(3),s=new r(3),n=new r(3);return(i,a,r,l,o,c)=>{c=c||h.vec3(),a=h.normalizeVec3(a,e);const u=h.subVec3(l,r,t),p=h.subVec3(o,r,s),A=h.cross3Vec3(u,p,n);h.normalizeVec3(A,A);const d=-h.dotVec3(r,A),f=-(h.dotVec3(i,A)+d)/h.dotVec3(a,A);return c[0]=i[0]+f*a[0],c[1]=i[1]+f*a[1],c[2]=i[2]+f*a[2],c}})(),cartesianToBarycentric:(()=>{const e=new r(3),t=new r(3),s=new r(3);return(n,i,a,r,l)=>{const o=h.subVec3(r,i,e),c=h.subVec3(a,i,t),u=h.subVec3(n,i,s),p=h.dotVec3(o,o),A=h.dotVec3(o,c),d=h.dotVec3(o,u),f=h.dotVec3(c,c),I=h.dotVec3(c,u),y=p*f-A*A;if(0===y)return null;const m=1/y,v=(f*d-A*I)*m,w=(p*I-A*d)*m;return l[0]=1-v-w,l[1]=w,l[2]=v,l}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,n,i=h.vec3()){const a=e[0],r=e[1],l=e[2];return i[0]=t[0]*a+s[0]*r+n[0]*l,i[1]=t[1]*a+s[1]*r+n[1]*l,i[2]=t[2]*a+s[2]*r+n[2]*l,i},mergeVertices(e,t,s,n){const i={},a=[],r=[],l=t?[]:null,o=s?[]:null,c=[];let u,h,p,A;const d=1e4;let f,I,y=0;for(f=0,I=e.length;f{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3),a=new r(3);return(r,l,o)=>{let c,u;const p=new Array(r.length/3);let A,d,f,I,y,m,v;for(c=0,u=l.length;c{const e=new r(3),t=new r(3),s=new r(3),n=new r(3),i=new r(3),a=new r(3),l=new r(3);return(r,o,c)=>{const u=new Float32Array(r.length);for(let p=0;p>24&255,u=p>>16&255,c=p>>8&255,o=255&p,l=t[s],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+1],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+2],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,p++;return{positions:i,colors:a}},faceToVertexNormals(e,t,s={}){const n=s.smoothNormalsAngleThreshold||20,i={},a=[],r={};let l,o,c,u,p;const A=1e4;let d,f,I,y,m,v;for(f=0,y=e.length;f{const e=new r(4),t=new r(4);return(s,n,i,a,r)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=1,h.transformVec4(s,e,t),a[0]=t[0],a[1]=t[1],a[2]=t[2],e[0]=i[0],e[1]=i[1],e[2]=i[2],h.transformVec3(s,e,t),h.normalizeVec3(t),r[0]=t[0],r[1]=t[1],r[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new r(16),t=new r(16),s=new r(4),n=new r(4),i=new r(4),a=new r(4);return(r,l,o,c,u,p)=>{const A=h.mulMat4(o,l,e),d=h.inverseMat4(A,t),f=r.width,I=r.height,y=(c[0]-f/2)/(f/2),m=-(c[1]-I/2)/(I/2);s[0]=y,s[1]=m,s[2]=-1,s[3]=1,h.transformVec4(d,s,n),h.mulVec4Scalar(n,1/n[3]),i[0]=y,i[1]=m,i[2]=1,i[3]=1,h.transformVec4(d,i,a),h.mulVec4Scalar(a,1/a[3]),u[0]=a[0],u[1]=a[1],u[2]=a[2],h.subVec3(a,n,p),h.normalizeVec3(p)}})(),canvasPosToLocalRay:(()=>{const e=new r(3),t=new r(3);return(s,n,i,a,r,l,o)=>{h.canvasPosToWorldRay(s,n,i,r,e,t),h.worldRayToLocalRay(a,e,t,l,o)}})(),worldRayToLocalRay:(()=>{const e=new r(16),t=new r(4),s=new r(4);return(n,i,a,r,l)=>{const o=h.inverseMat4(n,e);t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,h.transformVec4(o,t,s),r[0]=s[0],r[1]=s[1],r[2]=s[2],h.transformVec3(o,a,l)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,n,i,a){const l=new r(6),o={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:l};let c,u;for(l[0]=l[1]=l[2]=Number.POSITIVE_INFINITY,l[3]=l[4]=l[5]=Number.NEGATIVE_INFINITY,c=0,u=s.length;cl[3]&&(l[3]=i[t]),i[t+1]l[4]&&(l[4]=i[t+1]),i[t+2]l[5]&&(l[5]=i[t+2])}}if(s.length<20||a>10)return o.triangles=s,o.leaf=!0,o;e[0]=l[3]-l[0],e[1]=l[4]-l[1],e[2]=l[5]-l[2];let p=0;e[1]>e[p]&&(p=1),e[2]>e[p]&&(p=2),o.splitDim=p;const A=(l[p]+l[p+3])/2,d=new Array(s.length);let f=0;const I=new Array(s.length);let y=0;for(c=0,u=s.length;c{const n=e.length/3,i=new Array(n);for(let e=0;e=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t},octDecodeVec2s(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t}};h.buildEdgeIndices=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}(),h.planeClipsPositions3=function(e,t,s,n=3){for(let i=0,a=s.length;i=this._headLength){const e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}const e=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,e}push(e){return this._length++,this._tail.push(e),this}unshift(e){return this._head[--this._index]=e,this._length++,this}}const d={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var f=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],s=e[0].charCodeAt(0),n=s+e[1],i=s;i{};t=t||n,s=s||n;var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",e,!0),i.addEventListener("load",(function(e){var n=e.target.response;if(200===this.status){var i;try{i=JSON.parse(n)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(i)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(n))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),i.addEventListener("error",(function(e){s(e)}),!1),i.send(null)},loadArraybuffer:function(e,t,s){var n=e=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{w.removeItem(e.id),delete R.scenes[e.id],delete v[e.id],d.components.scenes--}))},this.clear=function(){let e;for(const t in R.scenes)R.scenes.hasOwnProperty(t)&&(e=R.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete R.scenes[e.id]))},this.scheduleTask=function(e,t){g.push(e),g.push(t)},this.runTasks=function(e=-1){let t,s,n=(new Date).getTime(),i=0;for(;g.length>0&&(e<0||n0&&b>0){var t=1e3/b;P+=t,T.push(t),T.length>=30&&(P-=T.shift()),d.frame.fps=Math.round(P/T.length)}!function(e){const t=R.runTasks(e+10),s=R.getNumTasks();d.frame.tasksRun=t,d.frame.tasksScheduled=s,d.frame.tasksBudget=10}(e),function(e){for(var t in E.time=e,R.scenes)if(R.scenes.hasOwnProperty(t)){var s=R.scenes[t];E.sceneId=t,E.startTime=s.startTime,E.deltaTime=null!=E.prevTime?E.time-E.prevTime:0,s.fire("tick",E,!0)}E.prevTime=e}(e),function(){const e=R.scenes,t=!1;let s,n,i,a,r;for(r in e)e.hasOwnProperty(r)&&(s=e[r],n=v[r],n||(n=v[r]={}),i=s.ticksPerOcclusionTest,n.ticksPerOcclusionTest!==i&&(n.ticksPerOcclusionTest=i,n.renderCountdown=i),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=i),a=s.ticksPerRender,n.ticksPerRender!==a&&(n.ticksPerRender=a,n.renderCountdown=a),0==--n.renderCountdown&&(s.render(t),n.renderCountdown=a))}(),D=e,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(C):requestAnimationFrame(C)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(C):requestAnimationFrame(C);class _{get type(){return"Component"}get isComponent(){return!0}constructor(e=null,t={}){if(this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=t.viewer;else{if("Scene"===e.type)this.scene=e;else{if(!(e instanceof _))throw"Invalid param: owner must be a Component";this.scene=e.scene}this._owner=e}this._dontClear=!!t.dontClear,this._renderer=this.scene._renderer,this.meta=t.meta||{},this.id=t.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,e&&e._own(this)}glRedraw(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}glResort(){this._renderer&&this._renderer.needStateSort()}get owner(){return this._owner}isType(e){return this.type===e}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}_message(e){return" ["+this.type+" "+m.inQuotes(this.id)+"]: "+e}warn(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}error(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}_attach(e){const t=e.name;if(!t)return void this.error("Component 'name' expected");let s=e.component;const n=e.sceneDefault,i=e.sceneSingleton,a=e.type,r=e.on,l=!1!==e.recompiles;if(s&&(m.isNumeric(s)||m.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+m.inQuotes(e))}if(!s)if(!0===i){const e=this.scene.types[a];for(const t in e)if(e.hasOwnProperty){s=e[t];break}if(!s)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===n&&(s=this.scene[t],!s))return this.error("Scene has no default component for '"+t+"'"),null;if(s){if(s.scene.id!==this.scene.id)return void this.error("Not in same scene: "+s.type+" "+m.inQuotes(s.id));if(a&&!s.isType(a))return void this.error("Expected a "+a+" type or subtype: "+s.type+" "+m.inQuotes(s.id))}this._attachments||(this._attachments={});const o=this._attached[t];let c,u,h;if(o){if(s&&o.id===s.id)return;const e=this._attachments[o.id];for(c=e.subs,u=0,h=c.length;u{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():R.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}_update(){}clear(){if(this._ownedComponents)for(var e in this._ownedComponents)if(this._ownedComponents.hasOwnProperty(e)){this._ownedComponents[e].destroy(),delete this._ownedComponents[e]}}destroy(){if(this.destroyed)return;let e,t,s,n,i,a;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],s=t.component,n=t.subs,i=0,a=n.length;i=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class x{constructor(){this.planes=[new N,new N,new N,new N,new N,new N]}}function L(e,t,s){const n=h.mulMat4(s,t,S),i=n[0],a=n[1],r=n[2],l=n[3],o=n[4],c=n[5],u=n[6],p=n[7],A=n[8],d=n[9],f=n[10],I=n[11],y=n[12],m=n[13],v=n[14],w=n[15];e.planes[0].set(l-i,p-o,I-A,w-y),e.planes[1].set(l+i,p+o,I+A,w+y),e.planes[2].set(l-a,p-c,I-d,w-m),e.planes[3].set(l+a,p+c,I+d,w+m),e.planes[4].set(l-r,p-u,I-f,w-v),e.planes[5].set(l+r,p+u,I+f,w+v)}function M(e,t){let s=x.INSIDE;const n=B,i=O;n[0]=t[0],n[1]=t[1],n[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];const a=[n,i];for(let t=0;t<6;++t){const n=e.planes[t];if(n.normal[0]*a[n.testVertex[0]][0]+n.normal[1]*a[n.testVertex[1]][1]+n.normal[2]*a[n.testVertex[2]][2]+n.offset<0)return x.OUTSIDE;n.normal[0]*a[1-n.testVertex[0]][0]+n.normal[1]*a[1-n.testVertex[1]][1]+n.normal[2]*a[1-n.testVertex[2]][2]+n.offset<0&&(s=x.INTERSECT)}return s}x.INSIDE=0,x.INTERSECT=1,x.OUTSIDE=2;class F extends _{constructor(e={}){if(!e.viewer)throw"[MarqueePicker] Missing config: viewer";if(!e.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";super(e.viewer.scene,e),this.viewer=e.viewer,this._objectsKdTree3=e.objectsKdTree3,this._canvasMarqueeCorner1=h.vec2(),this._canvasMarqueeCorner2=h.vec2(),this._canvasMarquee=h.AABB2(),this._marqueeFrustum=new x,this._marqueeFrustumProjMat=h.mat4(),this._pickMode=!1,this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement),this._marqueeElement.style.position="absolute",this._marqueeElement.style["z-index"]="40000005",this._marqueeElement.style.width="8px",this._marqueeElement.style.height="8px",this._marqueeElement.style.visibility="hidden",this._marqueeElement.style.top="0px",this._marqueeElement.style.left="0px",this._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",this._marqueeElement.style.opacity=1,this._marqueeElement.style["pointer-events"]="none"}setMarqueeCorner1(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarqueeCorner2(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarquee(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}setMarqueeVisible(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}getMarqueeVisible(){return this._marqueVisible}setPickMode(e){if(e!==F.PICK_MODE_INSIDE&&e!==F.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===F.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const e=[],t=(s,n=x.INTERSECT)=>{if(n===x.INTERSECT&&(n=M(this._marqueeFrustum,s.aabb)),n!==x.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,n=t.length;s3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&t(this._objectsKdTree3.root),this.fire("picked",e),e}_updateMarquee(){this._canvasMarquee[0]=Math.min(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[1]=Math.min(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._canvasMarquee[2]=Math.max(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[3]=Math.max(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._marqueeElement.style.width=this._canvasMarquee[2]-this._canvasMarquee[0]+"px",this._marqueeElement.style.height=this._canvasMarquee[3]-this._canvasMarquee[1]+"px",this._marqueeElement.style.left=`${this._canvasMarquee[0]}px`,this._marqueeElement.style.top=`${this._canvasMarquee[1]}px`}_buildMarqueeFrustum(){const e=this.viewer.scene.canvas.canvas,t=e.clientWidth,s=e.clientHeight,n=e.clientLeft,i=e.clientTop,a=2/t,r=2/s,l=e.clientHeight/e.clientWidth,o=(this._canvasMarquee[0]-n)*a-1,c=(this._canvasMarquee[2]-n)*a-1,u=-(this._canvasMarquee[3]-i)*r+1,p=-(this._canvasMarquee[1]-i)*r+1,A=this.viewer.scene.camera.frustum.near*(17*l);h.frustumMat4(o,c,u*l,p*l,A,1e4,this._marqueeFrustumProjMat),L(this._marqueeFrustum,this.viewer.scene.camera.viewMatrix,this._marqueeFrustumProjMat)}destroy(){super.destroy(),this._marqueeElement.parentElement&&(this._marqueeElement.parentElement.removeChild(this._marqueeElement),this._marqueeElement=null,this._objectsKdTree3=null)}}F.PICK_MODE_INTERSECTS=0,F.PICK_MODE_INSIDE=1;class H{constructor(e,t,s){this.id=s&&s.id?s.id:e,this.viewer=t,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,t.addPlugin(this)}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){console.log(`[xeokit plugin ${this.id}]: ${e}`)}warn(e){console.warn(`[xeokit plugin ${this.id}]: ${e}`)}error(e){console.error(`[xeokit plugin ${this.id}]: ${e}`)}send(e,t){}destroy(){this.viewer.removePlugin(this)}}const U=h.vec3(),G=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(n,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,h.transformVec4(n,t,s),h.setMat4Translation(n,s,a),a.slice()}}();function j(e,t,s){const n=Float32Array.from([e[0]])[0],i=e[0]-n,a=Float32Array.from([e[1]])[0],r=e[1]-a,l=Float32Array.from([e[2]])[0],o=e[2]-l;t[0]=n,t[1]=a,t[2]=l,s[0]=i,s[1]=r,s[2]=o}function V(e,t,s,n=1e3){const i=h.getPositionsCenter(e,U),a=Math.round(i[0]/n)*n,r=Math.round(i[1]/n)*n,l=Math.round(i[2]/n)*n;s[0]=a,s[1]=r,s[2]=l;const o=0!==s[0]||0!==s[1]||0!==s[2];if(o)for(let s=0,n=e.length;s0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,s=this.meshes[0]._colorize[3];let n=255;if(t){if(e<0?e=0:e>1&&(e=1),n=Math.floor(255*e),s===n)return}else if(n=255,s===n)return;for(let e=0,t=this.meshes.length;e{this._viewPosDirty=!0,this._needUpdate()})),this._onCameraProjMatrix=this.scene.camera.on("projMatrix",(()=>{this._canvasPosDirty=!0,this._needUpdate()})),this._onEntityDestroyed=null,this._onEntityModelDestroyed=null,this._renderer.addMarker(this),this.entity=t.entity,this.worldPos=t.worldPos,this.occludable=t.occludable}_update(){if(this._viewPosDirty&&(h.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){se.set(this._viewPos),se[3]=1,h.transformPoint4(this.scene.camera.projMatrix,se,ne);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+ne[0]/ne[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-ne[1]/ne[3])*e[3]/2),this._canvasPosDirty=!1,this.fire("canvasPos",this._canvasPos)}}_setVisible(e){this._visible,this._visible=e,this.fire("visible",this._visible)}set entity(e){if(this._entity){if(this._entity===e)return;null!==this._onEntityDestroyed&&(this._entity.off(this._onEntityDestroyed),this._onEntityDestroyed=null),null!==this._onEntityModelDestroyed&&(this._entity.model.off(this._onEntityModelDestroyed),this._onEntityModelDestroyed=null)}this._entity=e,this._entity&&(this._entity instanceof te?this._onEntityModelDestroyed=this._entity.model.on("destroyed",(()=>{this._entity=null,this._onEntityModelDestroyed=null})):this._onEntityDestroyed=this._entity.on("destroyed",(()=>{this._entity=null,this._onEntityDestroyed=null}))),this.fire("entity",this._entity,!0)}get entity(){return this._entity}set occludable(e){(e=!!e)!==this._occludable&&(this._occludable=e)}get occludable(){return this._occludable}set worldPos(e){this._worldPos.set(e||[0,0,0]),j(this._worldPos,this._origin,this._rtcPos),this._occludable&&this._renderer.markerWorldPosUpdated(this),this._viewPosDirty=!0,this.fire("worldPos",this._worldPos),this._needUpdate()}get worldPos(){return this._worldPos}get origin(){return this._origin}get rtcPos(){return this._rtcPos}get viewPos(){return this._update(),this._viewPos}get canvasPos(){return this._update(),this._canvasPos}get visible(){return!!this._visible}destroy(){this.fire("destroyed",!0),this.scene.camera.off(this._onCameraViewMatrix),this.scene.camera.off(this._onCameraProjMatrix),this._entity&&(null!==this._onEntityDestroyed&&this._entity.off(this._onEntityDestroyed),null!==this._onEntityModelDestroyed&&this._entity.model.off(this._onEntityModelDestroyed)),this._renderer.removeMarker(this),super.destroy()}}class ae{constructor(e,t={}){this._color=t.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=t.thickness||1,this._thicknessClickable=t.thicknessClickable||6,this._visible=!0,this._culled=!1;var s=this._wire,n=s.style;n.border="solid "+this._thickness+"px "+this._color,n.position="absolute",n["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,n.width="0px",n.height="0px",n.visibility="visible",n.top="0px",n.left="0px",n["-webkit-transform-origin"]="0 0",n["-moz-transform-origin"]="0 0",n["-ms-transform-origin"]="0 0",n["-o-transform-origin"]="0 0",n["transform-origin"]="0 0",n["-webkit-transform"]="rotate(0deg)",n["-moz-transform"]="rotate(0deg)",n["-ms-transform"]="rotate(0deg)",n["-o-transform"]="rotate(0deg)",n.transform="rotate(0deg)",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._wireClickable,a=i.style;a.border="solid "+this._thicknessClickable+"px "+this._color,a.position="absolute",a["z-index"]=void 0===t.zIndex?"2000002":t.zIndex+1,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&i.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&i.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&i.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}get visible(){return"visible"===this._wire.style.visibility}_update(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,s=this._wire.style;s.width=Math.round(e)+"px",s.left=Math.round(this._x1)+"px",s.top=Math.round(this._y1)+"px",s["-webkit-transform"]="rotate("+t+"deg)",s["-moz-transform"]="rotate("+t+"deg)",s["-ms-transform"]="rotate("+t+"deg)",s["-o-transform"]="rotate("+t+"deg)",s.transform="rotate("+t+"deg)";var n=this._wireClickable.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,n){this._x1=e,this._y1=t,this._x2=s,this._y2=n,this._update()}setColor(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}setOpacity(e){this._wire.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}destroy(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}class re{constructor(e,t={}){this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var s=this._dot,n=s.style;n["border-radius"]="25px",n.border="solid 2px white",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,n.width="8px",n.height="8px",n.visibility=!1!==t.visible?"visible":"hidden",n.top="0px",n.left="0px",n["box-shadow"]="0 2px 5px 0 #182A3D;",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._dotClickable,a=i.style;a["border-radius"]="35px",a.border="solid 10px white",a.position="absolute",a["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,a.width="8px",a.height="8px",a.visibility="visible",a.top="0px",a.left="0px",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),i.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&i.addEventListener("mouseover",(s=>{t.onMouseOver(s,this),e.dispatchEvent(new MouseEvent("mouseover",s))})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&i.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&i.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&i.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.borderColor)}setPos(e,t){this._x=e,this._y=t;var s=this._dot.style;s.left=Math.round(e)-4+"px",s.top=Math.round(t)-4+"px";var n=this._dotClickable.style;n.left=Math.round(e)-9+"px",n.top=Math.round(t)-9+"px"}setFillColor(e){this._dot.style.background=e||"lightgreen"}setBorderColor(e){this._dot.style.border="solid 2px"+(e||"black")}setOpacity(e){this._dot.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}destroy(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}class le{constructor(e,t={}){this._highlightClass="viewer-ruler-label-highlighted",this._prefix=t.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var s=this._label,n=s.style;n["border-radius"]="5px",n.color="white",n.padding="4px",n.border="solid 1px",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,n.width="auto",n.height="auto",n.visibility="visible",n.top="0px",n.left="0px",n["pointer-events"]="all",n.opacity=1,t.onContextMenu,s.innerText="",e.appendChild(s),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&s.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&s.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),t.onMouseWheel&&s.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&s.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&s.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&s.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&s.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()}))}setPos(e,t){this._x=e,this._y=t;var s=this._label.style;s.left=Math.round(e)-20+"px",s.top=Math.round(t)-12+"px"}setPosOnWire(e,t,s,n){var i=e+.5*(s-e),a=t+.5*(n-t),r=this._label.style;r.left=Math.round(i)-20+"px",r.top=Math.round(a)-12+"px"}setPosBetweenWires(e,t,s,n,i,a){var r=(e+s+i)/3,l=(t+n+a)/3,o=this._label.style;o.left=Math.round(r)-20+"px",o.top=Math.round(l)-12+"px"}setText(e){this._label.innerHTML=this._prefix+(e||"")}setFillColor(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}setBorderColor(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}setOpacity(e){this._label.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}setClickable(e){this._label.style["pointer-events"]=e?"all":"none"}destroy(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}var oe=h.vec3(),ce=h.vec3();class ue extends _{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._color=t.color||e.defaultColor;var s=this.plugin.viewer.scene;this._originMarker=new ie(s,t.origin),this._cornerMarker=new ie(s,t.corner),this._targetMarker=new ie(s,t.target),this._originWorld=h.vec3(),this._cornerWorld=h.vec3(),this._targetWorld=h.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const n=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},c=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._cornerDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._targetDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._originWire=new ae(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._targetWire=new ae(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._angleLabel=new le(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._visible=!1,this._originVisible=!1,this._cornerVisible=!1,this._targetVisible=!1,this._originWireVisible=!1,this._targetWireVisible=!1,this._angleVisible=!1,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._cornerMarker.on("worldPos",(e=>{this._cornerWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.cornerVisible=t.cornerVisible,this.targetVisible=t.targetVisible,this.originWireVisible=t.originWireVisible,this.targetWireVisible=t.targetWireVisible,this.angleVisible=t.angleVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(h.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){const A=-.3,d=this._originMarker.viewPos[2],f=this._cornerMarker.viewPos[2],I=this._targetMarker.viewPos[2];if(d>A||f>A||I>A)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);h.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,s=this._cp,n=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var i=n.top-y.top,a=n.left-y.left,r=e.canvas.boundary,l=r[2],o=r[3],c=0,u=0,p=t.length;u{e.snappedToVertex||e.snappedToEdge?(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.canvasPos,n.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(i=!0,a=e.entity,o.set(e.worldPos),c.set(s),this._mouseState){case 0:this.markerDiv.style.marginLeft=s[0]-5+"px",this.markerDiv.style.marginTop=s[1]-5+"px";break;case 1:this._currentAngleMeasurement&&(this._currentAngleMeasurement.originWireVisible=!0,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.cornerVisible=!0,this._currentAngleMeasurement.angleVisible=!1,this._currentAngleMeasurement.corner.worldPos=e.worldPos,this._currentAngleMeasurement.corner.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer";break;case 2:this._currentAngleMeasurement&&(this._currentAngleMeasurement.targetWireVisible=!0,this._currentAngleMeasurement.targetVisible=!0,this._currentAngleMeasurement.angleVisible=!0,this._currentAngleMeasurement.target.worldPos=e.worldPos,this._currentAngleMeasurement.target.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(r=e.clientX,l=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>r+20||e.clientXl+20||e.clientY{if(i=!1,n&&(n.visible=!0,n.pointerPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!1),this.markerDiv.style.marginLeft="-100px",this.markerDiv.style.marginTop="-100px",this._currentAngleMeasurement){switch(this._mouseState){case 0:this._currentAngleMeasurement.originVisible=!1;break;case 1:this._currentAngleMeasurement.cornerVisible=!1,this._currentAngleMeasurement.originWireVisible=!1,this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1;break;case 2:this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1}t.style.cursor="default"}})),this._active=!0}deactivate(){if(!this._active)return;this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.angleMeasurementsPlugin.viewer.cameraControl;t.off(this._onMouseHoverSurface),t.off(this._onPickedSurface),t.off(this._onHoverNothing),t.off(this._onPickedNothing),this._currentAngleMeasurement=null,this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentAngleMeasurement&&(this._currentAngleMeasurement.destroy(),this._currentAngleMeasurement=null),this._mouseState=0)}destroy(){this.deactivate(),super.destroy()}}class Ae extends ie{constructor(e,t){if(super(e,t),this.plugin=t.plugin,this._container=t.container,!this._container)throw"config missing: container";if(!t.markerElement&&!t.markerHTML)throw"config missing: need either markerElement or markerHTML";if(!t.labelElement&&!t.labelHTML)throw"config missing: need either labelElement or labelHTML";this._htmlDirty=!1,t.markerElement?(this._marker=t.markerElement,this._marker.addEventListener("click",this._onMouseClickedExternalMarker=()=>{this.plugin.fire("markerClicked",this)}),this._marker.addEventListener("mouseenter",this._onMouseEnterExternalMarker=()=>{this.plugin.fire("markerMouseEnter",this)}),this._marker.addEventListener("mouseleave",this._onMouseLeaveExternalMarker=()=>{this.plugin.fire("markerMouseLeave",this)}),this._markerExternal=!0):(this._markerHTML=t.markerHTML,this._htmlDirty=!0,this._markerExternal=!1),t.labelElement?(this._label=t.labelElement,this._labelExternal=!0):(this._labelHTML=t.labelHTML,this._htmlDirty=!0,this._labelExternal=!1),this._markerShown=!!t.markerShown,this._labelShown=!!t.labelShown,this._values=t.values||{},this._layoutDirty=!0,this._visibilityDirty=!0,this._buildHTML(),this._onTick=this.scene.on("tick",(()=>{this._htmlDirty&&(this._buildHTML(),this._htmlDirty=!1,this._layoutDirty=!0,this._visibilityDirty=!0),(this._layoutDirty||this._visibilityDirty)&&(this._markerShown||this._labelShown)&&(this._updatePosition(),this._layoutDirty=!1),this._visibilityDirty&&(this._marker.style.visibility=this.visible&&this._markerShown?"visible":"hidden",this._label.style.visibility=this.visible&&this._markerShown&&this._labelShown?"visible":"hidden",this._visibilityDirty=!1)})),this.on("canvasPos",(()=>{this._layoutDirty=!0})),this.on("visible",(()=>{this._visibilityDirty=!0})),this.setMarkerShown(!1!==t.markerShown),this.setLabelShown(t.labelShown),this.eye=t.eye?t.eye.slice():null,this.look=t.look?t.look.slice():null,this.up=t.up?t.up.slice():null,this.projection=t.projection}_buildHTML(){if(!this._markerExternal){this._marker&&(this._container.removeChild(this._marker),this._marker=null);let e=this._markerHTML||"

";m.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._marker=t.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(()=>{this.plugin.fire("markerClicked",this)})),this._marker.addEventListener("mouseenter",(()=>{this.plugin.fire("markerMouseEnter",this)})),this._marker.addEventListener("mouseleave",(()=>{this.plugin.fire("markerMouseLeave",this)})),this._marker.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);let e=this._labelHTML||"

";m.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._label=t.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}}_updatePosition(){const e=this.scene.canvas.boundary,t=e[0],s=e[1],n=this.canvasPos;this._marker.style.left=Math.floor(t+n[0])-12+"px",this._marker.style.top=Math.floor(s+n[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+n[0]+20)+"px",this._label.style.top=Math.floor(s+n[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}_renderTemplate(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){const s=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),s)}return e}setMarkerShown(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}getMarkerShown(){return this._markerShown}setLabelShown(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}getLabelShown(){return this._labelShown}setField(e,t){this._values[e]=t||"",this._htmlDirty=!0}getField(e){return this._values[e]}setValues(e){for(var t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setField(t,s)}}getValues(){return this._values}destroy(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),super.destroy()}}const de=h.vec3(),fe=h.vec3(),Ie=h.vec3();class ye extends _{get type(){return"Spinner"}constructor(e,t={}){super(e,t),this._canvas=t.canvas,this._element=null,this._isCustom=!1,t.elementId&&(this._element=document.getElementById(t.elementId),this._element?this._adjustPosition():this.error("Can't find given Spinner HTML element: '"+t.elementId+"' - will automatically create default element")),this._element||this._createDefaultSpinner(),this.processes=0}_createDefaultSpinner(){this._injectDefaultCSS();const e=document.createElement("div"),t=e.style;t["z-index"]="9000",t.position="absolute",e.innerHTML='
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}_injectDefaultCSS(){const e="xeokit-spinner-css";if(document.getElementById(e))return;const t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}_adjustPosition(){if(this._isCustom)return;const e=this._canvas,t=this._element,s=t.style;s.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",s.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}set processes(e){if(e=e||0,this._processes===e)return;if(e<0)return;const t=this._processes;this._processes=e;const s=this._element;s&&(s.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}get processes(){return this._processes}_destroy(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);const e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}const me=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class ve extends _{constructor(e,t={}){super(e,t),this._backgroundColor=h.vec3([t.backgroundColor?t.backgroundColor[0]:1,t.backgroundColor?t.backgroundColor[1]:1,t.backgroundColor?t.backgroundColor[2]:1]),this._backgroundColorFromAmbientLight=!!t.backgroundColorFromAmbientLight,this.canvas=t.canvas,this.gl=null,this.webgl2=!1,this.transparent=!!t.transparent,this.contextAttr=t.contextAttr||{},this.contextAttr.alpha=this.transparent,this.contextAttr.preserveDrawingBuffer=!!this.contextAttr.preserveDrawingBuffer,this.contextAttr.stencil=!1,this.contextAttr.premultipliedAlpha=!!this.contextAttr.premultipliedAlpha,this.contextAttr.antialias=!1!==this.contextAttr.antialias,this.resolutionScale=t.resolutionScale,this.canvas.width=Math.round(this.canvas.clientWidth*this._resolutionScale),this.canvas.height=Math.round(this.canvas.clientHeight*this._resolutionScale),this.boundary=[this.canvas.offsetLeft,this.canvas.offsetTop,this.canvas.clientWidth,this.canvas.clientHeight],this._initWebGL(t);const s=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),s.scene._webglContextLost(),s.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){s._initWebGL(),s.gl&&(s.scene._webglContextRestored(s.gl),s.fire("webglcontextrestored",s.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let n=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(n=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{n&&(n=!1,s.canvas.width=Math.round(s.canvas.clientWidth*s._resolutionScale),s.canvas.height=Math.round(s.canvas.clientHeight*s._resolutionScale),s.boundary[0]=s.canvas.offsetLeft,s.boundary[1]=s.canvas.offsetTop,s.boundary[2]=s.canvas.clientWidth,s.boundary[3]=s.canvas.clientHeight,s.fire("boundary",s.boundary))})),this._spinner=new ye(this.scene,{canvas:this.canvas,elementId:t.spinnerElementId})}get type(){return"Canvas"}get backgroundColorFromAmbientLight(){return this._backgroundColorFromAmbientLight}set backgroundColorFromAmbientLight(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}get resolutionScale(){return this._resolutionScale}set resolutionScale(e){if((e=e||1)===this._resolutionScale)return;this._resolutionScale=e;const t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}get spinner(){return this._spinner}_createCanvas(){const e="xeokit-canvas-"+h.createUUID(),t=document.getElementsByTagName("body")[0],s=document.createElement("div"),n=s.style;n.height="100%",n.width="100%",n.padding="0",n.margin="0",n.background="rgba(0,0,0,0);",n.float="left",n.left="0",n.top="0",n.position="absolute",n.opacity="1.0",n["z-index"]="-10000",s.innerHTML+='',t.appendChild(s),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,s=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,s+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:s}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?ge.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?ge.FS_MAX_FLOAT_PRECISION="mediump":ge.FS_MAX_FLOAT_PRECISION="lowp":ge.FS_MAX_FLOAT_PRECISION="mediump",ge.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),ge.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),ge.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),ge.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),ge.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),ge.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),ge.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),ge.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),ge.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),ge.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){ge.SUPPORTED_EXTENSIONS[e]=!0})))}class Te{constructor(){this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}get canvasPos(){return this._gotCanvasPos?this._canvasPos:null}set canvasPos(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}get origin(){return this._gotOrigin?this._origin:null}set origin(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}get direction(){return this._gotDirection?this._direction:null}set direction(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}get indices(){return this.entity&&this._gotIndices?this._indices:null}set indices(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}get localPos(){return this.entity&&this._gotLocalPos?this._localPos:null}set localPos(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}get snappedCanvasPos(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null}set snappedCanvasPos(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}get worldPos(){return this._gotWorldPos?this._worldPos:null}set worldPos(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}get viewPos(){return this.entity&&this._gotViewPos?this._viewPos:null}set viewPos(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}get bary(){return this.entity&&this._gotBary?this._bary:null}set bary(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}get worldNormal(){return this.entity&&this._gotWorldNormal?this._worldNormal:null}set worldNormal(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}get uv(){return this.entity&&this._gotUV?this._uv:null}set uv(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}reset(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}class be{constructor(e,t,s){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,s),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=s.split("\n"),n=[];for(let e=0;e0&&"/"===s.charAt(n+1)&&(s=s.substring(0,n)),t.push(s);return t.join("\n")}function _e(e){console.error(e.join("\n"))}class Be{constructor(e,t){this.id=Re.addItem({}),this.source=t,this.init(e)}init(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new be(e,e.VERTEX_SHADER,Ce(this.source.vertex)),this._fragmentShader=new be(e,e.FRAGMENT_SHADER,Ce(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void _e(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void _e(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void _e(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void _e(this.errors);let t,s,n,i,a;if(this.compiled=!0,this.handle=e.createProgram(),!this.handle)return void(this.errors=["Failed to allocate program"]);if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void _e(this.errors);const r=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(s=0;sthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}setData(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}bind(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}unbind(){this.allocated&&this._gl.bindBuffer(this.type,null)}destroy(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}class Se{constructor(e,t){this.scene=e,this.aabb=h.AABB3(),this.origin=h.vec3(t),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}addMarker(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}markerWorldPosUpdated(e){if(!this.markers[e.id])return;const t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}removeMarker(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}update(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}_buildMarkerList(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}_buildPositions(){let e=0;for(let t=0;t-t){s._setVisible(!1);continue}const r=s.canvasPos,l=r[0],o=r[1];l+10<0||o+10<0||l-10>n||o-10>i?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[a++]=l,this.pixels[a++]=o):s._setVisible(!0):s._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let s=0;s{this._occlusionTestListDirty=!0})),this._onCameraProjMatrix=e.camera.on("projMatrix",(()=>{this._occlusionTestListDirty=!0})),this._onCanvasBoundary=e.canvas.on("boundary",(()=>{this._occlusionTestListDirty=!0}))}addMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s||(s=new Se(this._scene,e.origin),this._occlusionLayers[s.originHash]=s,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s,this._occlusionTestListDirty=!0}markerWorldPosUpdated(e){const t=this._markersToOcclusionLayersMap[e.id];if(!t)return void e.error("Marker has not been added to OcclusionTester");const s=e.origin.join();if(s!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let n=this._occlusionLayers[s];n||(n=new Se(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),n.addMarker(e),this._markersToOcclusionLayersMap[e.id]=n}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s&&(1===s.numMarkers?(s.destroy(),delete this._occlusionLayers[s.originHash],this._occlusionLayersListDirty=!0):s.removeMarker(e),delete this._markersToOcclusionLayersMap[e.id])}get needOcclusionTest(){return this._occlusionTestListDirty}bindRenderBuf(){const e=[this._scene.canvas.canvas.id,this._scene._sectionPlanesState.getHash()].join(";");if(e!==this._shaderSourceHash&&(this._shaderSourceHash=e,this._shaderSourceDirty=!0),this._shaderSourceDirty&&(this._buildShaderSource(),this._shaderSourceDirty=!1,this._programDirty=!0),this._programDirty&&(this._buildProgram(),this._programDirty=!1,this._occlusionTestListDirty=!0),this._occlusionLayersListDirty&&(this._buildOcclusionLayersList(),this._occlusionLayersListDirty=!1),this._occlusionTestListDirty){for(let e=0,t=this._occlusionLayersList.length;e0,s=[];return s.push("#version 300 es"),s.push("// OcclusionTester vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("vec4 worldPosition = vec4(position, 1.0); "),s.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&s.push(" vWorldPosition = worldPosition;"),s.push(" vec4 clipPos = projMatrix * viewPosition;"),s.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?s.push("vFragDepth = 1.0 + clipPos.w;"):s.push("clipPos.z += -0.001;"),s.push(" gl_Position = clipPos;"),s.push("}"),s}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,s=t.sectionPlanes.length>0,n=[];if(n.push("#version 300 es"),n.push("// OcclusionTester fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),n.push("}"),n}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Be(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=n.sectionPlanes;for(let n=0;n{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=h.mat4();return()=>(e&&h.inverseMat4(n.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,n=this._scene,i=n.sao,a=t.drawingBufferWidth,r=t.drawingBufferHeight,l=n.camera.project._state,o=l.near,c=l.far,u=l.matrix,p=this._getInverseProjectMat(),A=Math.random(),d="perspective"===n.camera.projection;Me[0]=a,Me[1]=r,t.viewport(0,0,a,r),t.clearColor(0,0,0,1),t.disable(t.DEPTH_TEST),t.disable(t.BLEND),t.frontFace(t.CCW),t.clear(t.COLOR_BUFFER_BIT),s.bind(),t.uniform1f(this._uCameraNear,o),t.uniform1f(this._uCameraFar,c),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,u),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,p),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,i.scale*(c/5)),t.uniform1f(this._uIntensity,i.intensity),t.uniform1f(this._uBias,i.bias),t.uniform1f(this._uKernelRadius,i.kernelRadius),t.uniform1f(this._uMinResolution,i.minResolution),t.uniform2fv(this._uViewport,Me),t.uniform1f(this._uRandomSeed,A);const f=e.getDepthTexture();s.bindTexture(this._uDepthTexture,f,0),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),t.drawElements(t.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}_build(){let e=!1;const t=this._scene.sao;if(t.numSamples!==this._numSamples&&(this._numSamples=Math.floor(t.numSamples),e=!0),!e)return;const s=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Be(s,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV; \n \n out vec2 vUV;\n \n void main () {\n gl_Position = vec4(aPosition, 1.0);\n vUV = aUV;\n }"],fragment:[`#version 300 es \n precision highp float;\n precision highp int; \n \n #define NORMAL_TEXTURE 0\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n #define NUM_SAMPLES ${this._numSamples}\n #define NUM_RINGS 4 \n \n in vec2 vUV;\n \n uniform sampler2D uDepthTexture;\n \n uniform float uCameraNear;\n uniform float uCameraFar;\n uniform mat4 uProjectMatrix;\n uniform mat4 uInverseProjectMatrix;\n \n uniform bool uPerspective;\n\n uniform float uScale;\n uniform float uIntensity;\n uniform float uBias;\n uniform float uKernelRadius;\n uniform float uMinResolution;\n uniform vec2 uViewport;\n uniform float uRandomSeed;\n\n float pow2( const in float x ) { return x*x; }\n \n highp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract(sin(sn) * c);\n }\n\n vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n const float packUpscale = 256. / 255.;\n const float unpackDownScale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. ); \n\n const float shiftRights = 1. / 256.;\n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float unpackRGBAToFloat( const in vec4 v ) { \n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n }\n\n float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n }\n \n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n if (uPerspective) {\n return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );\n } else {\n return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );\n }\n }\n\n vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {\n \tfloat clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];\n \tvec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );\n \tclipPosition *= clipW; \n \treturn ( uInverseProjectMatrix * clipPosition ).xyz;\n }\n\n vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) { \n return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n }\n\n float scaleDividedByCameraFar;\n float minResolutionMultipliedByCameraFar;\n\n float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n \tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n \tfloat viewDistance = length( viewDelta );\n \tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n \treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );\n }\n\n const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n float getAmbientOcclusion( const in vec3 centerViewPosition ) {\n \n \tscaleDividedByCameraFar = uScale / uCameraFar;\n \tminResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;\n \tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );\n\n \tfloat angle = rand( vUV + uRandomSeed ) * PI2;\n \tvec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;\n \tvec2 radiusStep = radius;\n\n \tfloat occlusionSum = 0.0;\n \tfloat weightSum = 0.0;\n\n \tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n \t\tvec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;\n \t\tradius += radiusStep;\n \t\tangle += ANGLE_STEP;\n\n \t\tfloat sampleDepth = getDepth( sampleUv );\n \t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }`]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const n=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Oe(s,s.ARRAY_BUFFER,i,i.length,3,s.STATIC_DRAW),this._uvBuf=new Oe(s,s.ARRAY_BUFFER,n,n.length,2,s.STATIC_DRAW),this._indicesBuf=new Oe(s,s.ELEMENT_ARRAY_BUFFER,a,a.length,1,s.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}destroy(){this._program&&(this._program.destroy(),this._program=null)}}const He=new Float32Array(Qe(17,[0,1])),Ue=new Float32Array(Qe(17,[1,0])),Ge=new Float32Array(function(e,t){const s=[];for(let n=0;n<=e;n++)s.push(ke(n,t));return s}(17,4)),je=new Float32Array(2);class Ve{constructor(e){this._scene=e,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}init(){const e=this._scene.canvas.gl;if(this._program=new Be(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS 16\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }"]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const t=new Float32Array([1,1,0,1,0,0,1,0]),s=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),n=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Oe(e,e.ARRAY_BUFFER,s,s.length,3,e.STATIC_DRAW),this._uvBuf=new Oe(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Oe(e,e.ELEMENT_ARRAY_BUFFER,n,n.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}render(e,t,s){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=h.mat4();return()=>(e&&h.inverseMat4(a.camera.projMatrix,t),t)})());const n=this._scene.canvas.gl,i=this._program,a=this._scene,r=n.drawingBufferWidth,l=n.drawingBufferHeight,o=a.camera.project._state,c=o.near,u=o.far;n.viewport(0,0,r,l),n.clearColor(0,0,0,1),n.enable(n.DEPTH_TEST),n.disable(n.BLEND),n.frontFace(n.CCW),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),i.bind(),je[0]=r,je[1]=l,n.uniform2fv(this._uViewport,je),n.uniform1f(this._uCameraNear,c),n.uniform1f(this._uCameraFar,u),n.uniform1f(this._uDepthCutoff,.01),0===s?n.uniform2fv(this._uSampleOffsets,Ue):n.uniform2fv(this._uSampleOffsets,He),n.uniform1fv(this._uSampleWeights,Ge);const p=e.getDepthTexture(),A=t.getTexture();i.bindTexture(this._uDepthTexture,p,0),i.bindTexture(this._uOcclusionTexture,A,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),n.drawElements(n.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function ke(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Qe(e,t){const s=[];for(let n=0;n<=e;n++)s.push(t[0]*n),s.push(t[1]*n);return s}class We{constructor(e,t,s){s=s||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=s.size,this._hasDepthTexture=!!s.depthTexture}setSize(e){this.size=e}webglContextRestored(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}bind(...e){if(this._touch(...e),this.bound)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}createTexture(e,t,s=null){const n=this.gl,i=n.createTexture();return n.bindTexture(n.TEXTURE_2D,i),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),s?n.texStorage2D(n.TEXTURE_2D,1,s,e,t):n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,t,0,n.RGBA,n.UNSIGNED_BYTE,null),i}_touch(...e){let t,s;const n=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=n.drawingBufferWidth,s=n.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>n.deleteTexture(e))),n.deleteFramebuffer(this.buffer.framebuf),n.deleteRenderbuffer(this.buffer.renderbuf)}const i=[];let a;e.length>0?i.push(...e.map((e=>this.createTexture(t,s,e)))):i.push(this.createTexture(t,s)),this._hasDepthTexture&&(a=n.createTexture(),n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texImage2D(n.TEXTURE_2D,0,n.DEPTH_COMPONENT32F,t,s,0,n.DEPTH_COMPONENT,n.FLOAT,null));const r=n.createRenderbuffer();n.bindRenderbuffer(n.RENDERBUFFER,r),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT32F,t,s);const l=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,l);for(let e=0;e0&&n.drawBuffers(i.map(((e,t)=>n.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,a,0):n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,r),n.bindTexture(n.TEXTURE_2D,null),n.bindRenderbuffer(n.RENDERBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,l),!n.isFramebuffer(l))throw"Invalid framebuffer";n.bindFramebuffer(n.FRAMEBUFFER,null);const o=n.checkFramebufferStatus(n.FRAMEBUFFER);switch(o){case n.FRAMEBUFFER_COMPLETE:break;case n.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case n.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+o}this.buffer={framebuf:l,renderbuf:r,texture:i[0],textures:i,depthTexture:a,width:t,height:s},this.bound=!1}clear(){if(!this.bound)throw"Render buffer not bound";const e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}read(e,t,s=null,n=null,i=Uint8Array,a=4,r=0){const l=e,o=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,c=new i(a),u=this.gl;return u.readBuffer(u.COLOR_ATTACHMENT0+r),u.readPixels(l,o,1,1,s||u.RGBA,n||u.UNSIGNED_BYTE,c,0),c}readArray(e=null,t=null,s=Uint8Array,n=4,i=0){const a=new s(this.buffer.width*this.buffer.height*n),r=this.gl;return r.readBuffer(r.COLOR_ATTACHMENT0+i),r.readPixels(0,0,this.buffer.width,this.buffer.height,e||r.RGBA,t||r.UNSIGNED_BYTE,a,0),a}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,n=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const r=this.buffer.width,l=this.buffer.height,o=l/2|0,c=4*r,u=new Uint8Array(4*r);for(let e=0;ee.deleteTexture(t))),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}class ze{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let n=s[e];return n||(n=new We(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=n),n}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function Ke(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let s;switch(t){case"WEBGL_depth_texture":s=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=e.getExtension(t)}return e._cachedExtensions[t]=s,s}const Ye=function(t,s){s=s||{};const n=new we(t),i=t.canvas.canvas,a=t.canvas.gl,r=!!s.transparent,l=s.alphaDepthMask,o=new e({});let c={},u={},p=!0,A=!0,f=!0,I=!0,y=!0,m=!0,v=!0,w=!0;const g=new ze(t);let E=!1;const T=new Fe(t),b=new Ve(t);function D(){p&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableMap,n=t.drawableListPreCull;let i=0;for(let e in s)s.hasOwnProperty(e)&&(n[i++]=s[e]);n.length=i}}(),p=!1,A=!0),A&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),A=!1,f=!0),f&&function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableListPreCull,n=t.drawableList;let i=0;for(let e=0,t=s.length;e0)for(n.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||k>0||H>0||U>0){if(a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,l||a.depthMask(!1),(H>0||U>0)&&a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),U>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(n.lastProgramId=null,t.highlightMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.enable(a.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||J>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),J>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=A.size[0],n=t%s-Math.floor(s/2),i=Math.floor(t/s)-Math.floor(s/2),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2));R.push({x:n,y:i,dist:a,isVertex:r&&l?m[e+3]>y.length/2:r,result:[m[e+0],m[e+1],m[e+2],m[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[w[e+0],w[e+1],w[e+2],w[e+3]]})}let O=null,S=null,N=null,x=null;if(R.length>0){R.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),x=R[0].isVertex?"vertex":"edge";const e=R[0].result,t=R[0].normal,s=R[0].id,n=y[e[3]],i=n.origin,a=n.coordinateScale;S=h.normalizeVec3([t[0]/h.MAX_INT,t[1]/h.MAX_INT,t[2]/h.MAX_INT]),O=[e[0]*a[0]+i[0],e[1]*a[1]+i[1],e[2]*a[2]+i[2]],N=o.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===E&&null==O)return null;let L=null;null!==O&&(L=t.camera.projectWorldPos(O));const M=N&&N.delegatePickedEntity?N.delegatePickedEntity():N;return u.reset(),u.snappedToEdge="edge"===x,u.snappedToVertex="vertex"===x,u.worldPos=O,u.worldNormal=S,u.entity=M,u.canvasPos=s,u.snappedCanvasPos=L||s,u}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new Le(t,g),this._occlusionTester.addMarker(e),t.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){D(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.clearColor(0,0,0,0),a.enable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.disable(a.BLEND),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);for(let e in c)if(c.hasOwnProperty(e)){const t=c[e].drawableList;for(let e=0,s=t.length;e{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!0:e.keyCode===this.KEY_ALT?this.altDown=!0:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!0),this.keyDown[e.keyCode]=!0,this.fire("keydown",e.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=e=>{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!1:e.keyCode===this.KEY_ALT?this.altDown=!1:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!1),this.keyDown[e.keyCode]=!1,this.fire("keyup",e.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=e=>{this.enabled&&(this.mouseover=!0,this._getMouseCanvasPos(e),this.fire("mouseenter",this.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=e=>{this.enabled&&(this.mouseover=!1,this._getMouseCanvasPos(e),this.fire("mouseleave",this.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!0;break;case 2:this.mouseDownMiddle=!0;break;case 3:this.mouseDownRight=!0}this._getMouseCanvasPos(e),this.element.focus(),this.fire("mousedown",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!1;break;case 2:this.mouseDownMiddle=!1;break;case 3:this.mouseDownRight=!1}this.fire("mouseup",this.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("click",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("dblclick",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}});const e=this.scene.tickify((()=>this.fire("mousemove",this.mouseCanvasPos,!0)));this.element.addEventListener("mousemove",this._mouseMoveListener=t=>{this.enabled&&(this._getMouseCanvasPos(t),e(),this.mouseover&&t.preventDefault())});const t=this.scene.tickify((e=>{this.fire("mousewheel",e,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=(e,s)=>{if(!this.enabled)return;const n=Math.max(-1,Math.min(1,40*-e.deltaY));t(n)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(n=>{e>=n[0]-s&&e<=n[0]+s&&t>=n[1]-s&&t<=n[1]+s&&this.fire("mouseclicked",n,!0)}))}this._eventsBound=!0}_unbindEvents(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}_getMouseCanvasPos(e){if(e){let t=e.target,s=0,n=0;for(;t.offsetParent;)s+=t.offsetLeft,n+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-n}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}setEnabled(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}getEnabled(){return this.enabled}setKeyboardEnabled(e){this.keyboardEnabled=e}getKeyboardEnabled(){return this.keyboardEnabled}destroy(){super.destroy(),this._unbindEvents()}}const qe=new e({});class Je{constructor(e){this.id=qe.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){qe.removeItem(this.id)}}class Ze extends _{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new Je({boundary:[0,0,100,100]}),this.boundary=t.boundary,this.autoBoundary=t.autoBoundary}set boundary(e){if(!this._autoBoundary){if(!e){const t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}get boundary(){return this._state.boundary}set autoBoundary(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){const t=e[2],s=e[3];this._state.boundary=[0,0,t,s],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}get autoBoundary(){return this._autoBoundary}_getState(){return this._state}destroy(){super.destroy(),this._state.destroy()}}class $e extends _{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this._fov=60,this._canvasResized=this.scene.canvas.on("boundary",this._needUpdate,this),this.fov=t.fov,this.fovAxis=t.fovAxis,this.near=t.near,this.far=t.far}_update(){const e=this.scene.canvas.boundary,t=e[2]/e[3],s=this._fovAxis;let n=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(n/=t),n=Math.min(n,120),h.perspectiveMat4(n*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}set fov(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}get fov(){return this._fov}set fovAxis(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}get fovAxis(){return this._fovAxis}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class et extends _{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.scale=t.scale,this.near=t.near,this.far=t.far,this._onCanvasBoundary=this.scene.canvas.on("boundary",this._needUpdate,this)}_update(){const e=this.scene,t=.5*this._scale,s=e.canvas.boundary,n=s[2],i=s[3],a=n/i;let r,l,o,c;n>i?(r=-t,l=t,o=t/a,c=-t/a):(r=-t*a,l=t*a,o=t,c=-t),h.orthoMat4c(r,l,c,o,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set scale(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}get scale(){return this._scale}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class tt extends _{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4(),near:.1,far:1e4}),this._left=-1,this._right=1,this._bottom=-1,this._top=1,this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.left=t.left,this.right=t.right,this.bottom=t.bottom,this.top=t.top,this.near=t.near,this.far=t.far}_update(){h.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set left(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}get left(){return this._left}set right(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}get right(){return this._right}set top(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}get top(){return this._top}set bottom(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}get bottom(){return this._bottom}set near(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}get near(){return this._state.near}set far(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class st extends _{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Je({matrix:h.mat4(),inverseMatrix:h.mat4(),transposedMatrix:h.mat4()}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!1,this.matrix=t.matrix}set matrix(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}get matrix(){return this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(h.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(h.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,h.mulMat4v4(this.inverseMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,h.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy()}}const nt=h.vec3(),it=h.vec3(),at=h.vec3(),rt=h.vec3(),lt=h.vec3(),ot=h.vec3(),ct=h.vec4(),ut=h.vec4(),ht=h.vec4(),pt=h.mat4(),At=h.mat4(),dt=h.vec3(),ft=h.vec3(),It=h.vec3(),yt=h.vec3();class mt extends _{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new Je({deviceMatrix:h.mat4(),hasDeviceMatrix:!1,matrix:h.mat4(),normalMatrix:h.mat4(),inverseMatrix:h.mat4()}),this._perspective=new $e(this),this._ortho=new et(this),this._frustum=new tt(this),this._customProjection=new st(this),this._project=this._perspective,this._eye=h.vec3([0,0,10]),this._look=h.vec3([0,0,0]),this._up=h.vec3([0,1,0]),this._worldUp=h.vec3([0,1,0]),this._worldRight=h.vec3([1,0,0]),this._worldForward=h.vec3([0,0,-1]),this.deviceMatrix=t.deviceMatrix,this.eye=t.eye,this.look=t.look,this.up=t.up,this.worldAxis=t.worldAxis,this.gimbalLock=t.gimbalLock,this.constrainPitch=t.constrainPitch,this.projection=t.projection,this._perspective.on("matrix",(()=>{"perspective"===this._projectionType&&this.fire("projMatrix",this._perspective.matrix)})),this._ortho.on("matrix",(()=>{"ortho"===this._projectionType&&this.fire("projMatrix",this._ortho.matrix)})),this._frustum.on("matrix",(()=>{"frustum"===this._projectionType&&this.fire("projMatrix",this._frustum.matrix)})),this._customProjection.on("matrix",(()=>{"customProjection"===this._projectionType&&this.fire("projMatrix",this._customProjection.matrix)}))}_update(){const e=this._state;let t;"ortho"===this.projection?(h.subVec3(this._eye,this._look,dt),h.normalizeVec3(dt,ft),h.mulVec3Scalar(ft,1e3,It),h.addVec3(this._look,It,yt),t=yt):t=this._eye,e.hasDeviceMatrix?(h.lookAtMat4v(t,this._look,this._up,At),h.mulMat4(e.deviceMatrix,At,e.matrix)):h.lookAtMat4v(t,this._look,this._up,e.matrix),h.inverseMat4(this._state.matrix,this._state.inverseMatrix),h.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}orbitYaw(e){let t=h.subVec3(this._eye,this._look,nt);h.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,pt),t=h.transformPoint3(pt,t,it),this.eye=h.addVec3(this._look,t,at),this.up=h.transformPoint3(pt,this._up,rt)}orbitPitch(e){if(this._constrainPitch&&(e=h.dotVec3(this._up,this._worldUp)/h.DEGTORAD)<1)return;let t=h.subVec3(this._eye,this._look,nt);const s=h.cross3Vec3(h.normalizeVec3(t,it),h.normalizeVec3(this._up,at));h.rotationMat4v(.0174532925*e,s,pt),t=h.transformPoint3(pt,t,rt),this.up=h.transformPoint3(pt,this._up,lt),this.eye=h.addVec3(t,this._look,ot)}yaw(e){let t=h.subVec3(this._look,this._eye,nt);h.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,pt),t=h.transformPoint3(pt,t,it),this.look=h.addVec3(t,this._eye,at),this._gimbalLock&&(this.up=h.transformPoint3(pt,this._up,rt))}pitch(e){if(this._constrainPitch&&(e=h.dotVec3(this._up,this._worldUp)/h.DEGTORAD)<1)return;let t=h.subVec3(this._look,this._eye,nt);const s=h.cross3Vec3(h.normalizeVec3(t,it),h.normalizeVec3(this._up,at));h.rotationMat4v(.0174532925*e,s,pt),this.up=h.transformPoint3(pt,this._up,ot),t=h.transformPoint3(pt,t,rt),this.look=h.addVec3(t,this._eye,lt)}pan(e){const t=h.subVec3(this._eye,this._look,nt),s=[0,0,0];let n;if(0!==e[0]){const i=h.cross3Vec3(h.normalizeVec3(t,[]),h.normalizeVec3(this._up,it));n=h.mulVec3Scalar(i,e[0]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]}0!==e[1]&&(n=h.mulVec3Scalar(h.normalizeVec3(this._up,at),e[1]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),0!==e[2]&&(n=h.mulVec3Scalar(h.normalizeVec3(t,rt),e[2]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),this.eye=h.addVec3(this._eye,s,lt),this.look=h.addVec3(this._look,s,ot)}zoom(e){const t=h.subVec3(this._eye,this._look,nt),s=Math.abs(h.lenVec3(t,it)),n=Math.abs(s+e);if(n<.5)return;const i=h.normalizeVec3(t,at);this.eye=h.addVec3(this._look,h.mulVec3Scalar(i,n),rt)}set eye(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}get eye(){return this._eye}set look(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}get look(){return this._look}set up(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}get up(){return this._up}set deviceMatrix(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}get deviceMatrix(){return this._state.deviceMatrix}set worldAxis(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=h.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}get worldAxis(){return this._worldAxis}get worldUp(){return this._worldUp}get xUp(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}get yUp(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}get zUp(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}get worldRight(){return this._worldRight}get worldForward(){return this._worldForward}set gimbalLock(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}get gimbalLock(){return this._gimbalLock}set constrainPitch(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}get eyeLookDist(){return h.lenVec3(h.subVec3(this._look,this._eye,nt))}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get viewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get normalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get viewNormalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get inverseViewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}get projMatrix(){return this[this.projection].matrix}get perspective(){return this._perspective}get ortho(){return this._ortho}get frustum(){return this._frustum}get customProjection(){return this._customProjection}set projection(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}get projection(){return this._projectionType}get project(){return this._project}projectWorldPos(e){const t=ct,s=ut,n=ht;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,h.mulMat4v4(this.viewMatrix,t,s),h.mulMat4v4(this.projMatrix,s,n),h.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1;const i=this.scene.canvas.canvas,a=i.offsetWidth/2,r=i.offsetHeight/2;return[n[0]*a+a,n[1]*r+r]}destroy(){super.destroy(),this._state.destroy()}}class vt extends _{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class wt extends vt{get type(){return"DirLight"}constructor(e,t={}){super(e,t),this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const s=this.scene.camera,n=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=n.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Je({type:"dir",dir:h.vec3([1,1,1]),color:h.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=h.identityMat4());const e=this.scene.camera,t=this._state.dir,s=e.look,n=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],i=[0,1,0];h.lookAtMat4v(n,s,i,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=h.identityMat4()),h.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new We(this.scene.canvas.canvas,this.scene.canvas.gl,{size:[1024,1024]})),this._shadowRenderBuf)}),this.dir=t.dir,this.color=t.color,this.intensity=t.intensity,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set dir(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get dir(){return this._state.dir}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}class gt extends vt{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:h.vec3([.7,.7,.7]),intensity:1},this.color=t.color,this.intensity=t.intensity,this.scene._lightCreated(this)}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}get intensity(){return this._state.intensity}destroy(){super.destroy(),this.scene._lightDestroyed(this)}}class Et extends _{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),d.memory.meshes++}destroy(){super.destroy(),d.memory.meshes--}}var Tt=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}();const bt=function(){const e=h.mat4(),t=h.mat4();return function(s,n){n=n||h.mat4();const i=s[0],a=s[1],r=s[2],l=s[3]-i,o=s[4]-a,c=s[5]-r,u=65535;return h.identityMat4(e),h.translationMat4v(s,e),h.identityMat4(t),h.scalingMat4v([l/u,o/u,c/u],t),h.mulMat4(e,t,n),n}}();var Dt=function(){const e=h.mat4(),t=h.mat4();return function(s,n,i){const a=new Uint16Array(s.length),r=new Float32Array([i[0]!==n[0]?65535/(i[0]-n[0]):0,i[1]!==n[1]?65535/(i[1]-n[1]):0,i[2]!==n[2]?65535/(i[2]-n[2]):0]);let l;for(l=0;l=0?1:-1),t=(1-Math.abs(i))*(a>=0?1:-1);i=e,a=t}return new Int8Array([Math[s](127.5*i+(i<0?-1:0)),Math[n](127.5*a+(a<0?-1:0))])}function Ct(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}function _t(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Bt={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let n,i;for(n=0;n<3;n++)t[n]=Number.MAX_VALUE,s[n]=-Number.MAX_VALUE;for(n=0;nr&&(i=s,r=a),s=Rt(e,l,"floor","ceil"),n=Ct(s),a=_t(e,l,n),a>r&&(i=s,r=a),s=Rt(e,l,"ceil","ceil"),n=Ct(s),a=_t(e,l,n),a>r&&(i=s,r=a),t[l]=i[0],t[l+1]=i[1];return t},decompressNormals:function(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t},decompressNormal:function(e,t){let s=e[0],n=e[1];s=(2*s+1)/255,n=(2*n+1)/255;const i=1-Math.abs(s)-Math.abs(n);i<0&&(s=(1-Math.abs(n))*(s>=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t}},Ot=d.memory,St=h.AABB3();class Nt extends Et{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Je({compressGeometry:!!t.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._edgeIndicesBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._aabbDirty=!0,this._boundingSphere=!0,this._aabb=null,this._aabbDirty=!0,this._obb=null,this._obbDirty=!0;const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Bt.getPositionsBounds(t.positions),n=Bt.compressPositions(t.positions,e.min,e.max);s.positions=n.quantized,s.positionsDecodeMatrix=n.decodeMatrix}else s.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(s.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Bt.getUVBounds(t.uv),n=Bt.compressUVs(t.uv,e.min,e.max);s.uv=n.quantized,s.uvDecodeMatrix=n.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Bt.compressNormals(t.normals):s.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(s.indices=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)),this._buildHash(),Ot.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Ot.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Ot.positions+=e.positionsBuf.numItems),e.normals){let s=e.compressGeometry;e.normalsBuf=new Oe(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,s),Ot.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Ot.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Oe(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Ot.uvs+=e.uvBuf.numItems)}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}_getPickTrianglePositions(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}_getPickTriangleColors(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}_buildEdgeIndices(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=Tt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,s,s.length,1,t.STATIC_DRAW),Ot.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=h.buildPickTriangles(e.positions,e.indices,e.compressGeometry),n=s.positions,i=s.colors;this._pickTrianglePositionsBuf=new Oe(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Ot.positions+=this._pickTrianglePositionsBuf.numItems,Ot.colors+=this._pickTriangleColorsBuf.numItems}_buildPickVertexVBOs(){}_webglContextLost(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}_webglContextRestored(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}get primitive(){return this._state.primitiveName}get compressGeometry(){return this._state.compressGeometry}get positions(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Bt.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(e){const t=this._state,s=t.positions;if(s)if(s.length===e.length){if(this._state.compressGeometry){const s=Bt.getPositionsBounds(e),n=Bt.compressPositions(e,s.min,s.max);e=n.quantized,t.positionsDecodeMatrix=n.decodeMatrix}s.set(e),t.positionsBuf&&t.positionsBuf.setData(s),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}get normals(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){const e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Bt.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}}set normals(e){if(this._state.compressGeometry)return void this.error("can't update geometry normals - quantized geometry is immutable");const t=this._state,s=t.normals;s?s.length===e.length?(s.set(e),t.normalsBuf&&t.normalsBuf.setData(s),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}get uv(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Bt.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null}set uv(e){if(this._state.compressGeometry)return void this.error("can't update geometry UVs - quantized geometry is immutable");const t=this._state,s=t.uv;s?s.length===e.length?(s.set(e),t.uvBuf&&t.uvBuf.setData(s),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}get colors(){return this._state.colors}set colors(e){if(this._state.compressGeometry)return void this.error("can't update geometry colors - quantized geometry is immutable");const t=this._state,s=t.colors;s?s.length===e.length?(s.set(e),t.colorsBuf&&t.colorsBuf.setData(s),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}get indices(){return this._state.indices}get aabb(){return this._aabbDirty&&(this._aabb||(this._aabb=h.AABB3()),h.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=h.OBB3()),h.positions3ToAABB3(this._state.positions,St,this._state.positionsDecodeMatrix),h.AABB3ToOBB3(St,this._obb),this._obbDirty=!1),this._obb}get numTriangles(){return this._numTriangles}_setAABBDirty(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Ot.meshes--}}function xt(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return m.apply(e,{positions:[h,p,A,o,p,A,o,c,A,h,c,A,h,p,A,h,c,A,h,c,u,h,p,u,h,p,A,h,p,u,o,p,u,o,p,A,o,p,A,o,p,u,o,c,u,o,c,A,o,c,u,h,c,u,h,c,A,o,c,A,h,c,u,o,c,u,o,p,u,h,p,u],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}class Lt extends _{get type(){return"Material"}constructor(e,t={}){super(e,t),d.memory.materials++}destroy(){super.destroy(),d.memory.materials--}}const Mt={opaque:0,mask:1,blend:2},Ft=["opaque","mask","blend"];class Ht extends Lt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new Je({type:"PhongMaterial",ambient:h.vec3([1,1,1]),diffuse:h.vec3([1,1,1]),specular:h.vec3([1,1,1]),emissive:h.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),this.ambient=t.ambient,this.diffuse=t.diffuse,this.specular=t.specular,this.emissive=t.emissive,this.alpha=t.alpha,this.shininess=t.shininess,this.reflectivity=t.reflectivity,this.lineWidth=t.lineWidth,this.pointSize=t.pointSize,t.ambientMap&&(this._ambientMap=this._checkComponent("Texture",t.ambientMap)),t.diffuseMap&&(this._diffuseMap=this._checkComponent("Texture",t.diffuseMap)),t.specularMap&&(this._specularMap=this._checkComponent("Texture",t.specularMap)),t.emissiveMap&&(this._emissiveMap=this._checkComponent("Texture",t.emissiveMap)),t.alphaMap&&(this._alphaMap=this._checkComponent("Texture",t.alphaMap)),t.reflectivityMap&&(this._reflectivityMap=this._checkComponent("Texture",t.reflectivityMap)),t.normalMap&&(this._normalMap=this._checkComponent("Texture",t.normalMap)),t.occlusionMap&&(this._occlusionMap=this._checkComponent("Texture",t.occlusionMap)),t.diffuseFresnel&&(this._diffuseFresnel=this._checkComponent("Fresnel",t.diffuseFresnel)),t.specularFresnel&&(this._specularFresnel=this._checkComponent("Fresnel",t.specularFresnel)),t.emissiveFresnel&&(this._emissiveFresnel=this._checkComponent("Fresnel",t.emissiveFresnel)),t.alphaFresnel&&(this._alphaFresnel=this._checkComponent("Fresnel",t.alphaFresnel)),t.reflectivityFresnel&&(this._reflectivityFresnel=this._checkComponent("Fresnel",t.reflectivityFresnel)),this.alphaMode=t.alphaMode,this.alphaCutoff=t.alphaCutoff,this.backfaces=t.backfaces,this.frontface=t.frontface,this._makeHash()}_makeHash(){const e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}set ambient(e){let t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get ambient(){return this._state.ambient}set diffuse(e){let t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get diffuse(){return this._state.diffuse}set specular(e){let t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get specular(){return this._state.specular}set emissive(e){let t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}get emissive(){return this._state.emissive}set alpha(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}get alpha(){return this._state.alpha}set shininess(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}get shininess(){return this._state.shininess}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set pointSize(e){this._state.pointSize=e||1,this.glRedraw()}get pointSize(){return this._state.pointSize}set reflectivity(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}get reflectivity(){return this._state.reflectivity}get normalMap(){return this._normalMap}get ambientMap(){return this._ambientMap}get diffuseMap(){return this._diffuseMap}get specularMap(){return this._specularMap}get emissiveMap(){return this._emissiveMap}get alphaMap(){return this._alphaMap}get reflectivityMap(){return this._reflectivityMap}get occlusionMap(){return this._occlusionMap}get diffuseFresnel(){return this._diffuseFresnel}get specularFresnel(){return this._specularFresnel}get emissiveFresnel(){return this._emissiveFresnel}get alphaFresnel(){return this._alphaFresnel}get reflectivityFresnel(){return this._reflectivityFresnel}set alphaMode(e){let t=Mt[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}get alphaMode(){return Ft[this._state.alphaMode]}set alphaCutoff(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}get alphaCutoff(){return this._state.alphaCutoff}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set frontface(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}get frontface(){return this._state.frontface?"ccw":"cw"}destroy(){super.destroy(),this._state.destroy()}}const Ut={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}};class Gt extends Lt{get type(){return"EmphasisMaterial"}get presets(){return Ut}constructor(e,t={}){super(e,t),this._state=new Je({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),this._preset="default",t.preset?(this.preset=t.preset,void 0!==t.fill&&(this.fill=t.fill),t.fillColor&&(this.fillColor=t.fillColor),void 0!==t.fillAlpha&&(this.fillAlpha=t.fillAlpha),void 0!==t.edges&&(this.edges=t.edges),t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth),void 0!==t.backfaces&&(this.backfaces=t.backfaces),void 0!==t.glowThrough&&(this.glowThrough=t.glowThrough)):(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.backfaces=t.backfaces,this.glowThrough=t.glowThrough)}set fill(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}get fill(){return this._state.fill}set fillColor(e){let t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}get fillColor(){return this._state.fillColor}set fillAlpha(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}get fillAlpha(){return this._state.fillAlpha}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set glowThrough(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}get glowThrough(){return this._state.glowThrough}set preset(e){if(e=e||"default",this._preset===e)return;const t=Ut[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Ut).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const jt={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}};class Vt extends Lt{get type(){return"EdgeMaterial"}get presets(){return jt}constructor(e,t={}){super(e,t),this._state=new Je({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),this._preset="default",t.preset?(this.preset=t.preset,t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth)):(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth),this.edges=!1!==t.edges}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=jt[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(jt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const kt={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}};class Qt extends _{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=h.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return kt}set units(e){e||(e="meters");kt[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}get units(){return this._units}set scale(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}get scale(){return this._scale}set origin(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}get origin(){return this._origin}worldToRealPos(e,t=h.vec3(3)){t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}realToWorldPos(e,t=h.vec3(3)){return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}class Wt extends _{constructor(e,t={}){super(e,t),this._supported=ge.SUPPORTED_EXTENSIONS.OES_standard_derivatives,this.enabled=t.enabled,this.kernelRadius=t.kernelRadius,this.intensity=t.intensity,this.bias=t.bias,this.scale=t.scale,this.minResolution=t.minResolution,this.numSamples=t.numSamples,this.blur=t.blur,this.blendCutoff=t.blendCutoff,this.blendFactor=t.blendFactor}get supported(){return this._supported}set enabled(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}get enabled(){return this._enabled}get possible(){if(!this._supported)return!1;if(!this._enabled)return!1;const e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}get active(){return this._active}set kernelRadius(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}get kernelRadius(){return this._kernelRadius}set intensity(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}get intensity(){return this._intensity}set bias(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}get bias(){return this._bias}set scale(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}get scale(){return this._scale}set minResolution(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}get minResolution(){return this._minResolution}set numSamples(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}get numSamples(){return this._numSamples}set blur(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}get blur(){return this._blur}set blendCutoff(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}get blendCutoff(){return this._blendCutoff}set blendFactor(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}get blendFactor(){return this._blendFactor}destroy(){super.destroy()}}const zt={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class Kt extends Lt{get type(){return"PointsMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new Je({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),t.preset?(this.preset=t.preset,void 0!==t.pointSize&&(this.pointSize=t.pointSize),void 0!==t.roundPoints&&(this.roundPoints=t.roundPoints),void 0!==t.perspectivePoints&&(this.perspectivePoints=t.perspectivePoints),void 0!==t.minPerspectivePointSize&&(this.minPerspectivePointSize=t.minPerspectivePointSize),void 0!==t.maxPerspectivePointSize&&(this.maxPerspectivePointSize=t.minPerspectivePointSize)):(this._preset="default",this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize),this.filterIntensity=t.filterIntensity,this.minIntensity=t.minIntensity,this.maxIntensity=t.maxIntensity}set pointSize(e){this._state.pointSize=e||2,this.glRedraw()}get pointSize(){return this._state.pointSize}set roundPoints(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}get roundPoints(){return this._state.roundPoints}set perspectivePoints(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}get perspectivePoints(){return this._state.perspectivePoints}set minPerspectivePointSize(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}get minPerspectivePointSize(){return this._state.minPerspectivePointSize}set maxPerspectivePointSize(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}get maxPerspectivePointSize(){return this._state.maxPerspectivePointSize}set filterIntensity(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}get filterIntensity(){return this._state.filterIntensity}set minIntensity(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}get minIntensity(){return this._state.minIntensity}set maxIntensity(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}get maxIntensity(){return this._state.maxIntensity}set preset(e){if(e=e||"default",this._preset===e)return;const t=zt[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(zt).join(", "))}get preset(){return this._preset}get hash(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}destroy(){super.destroy(),this._state.destroy()}}const Yt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Xt extends Lt{get type(){return"LinesMaterial"}get presets(){return Yt}constructor(e,t={}){super(e,t),this._state=new Je({type:"LinesMaterial",lineWidth:null}),t.preset?(this.preset=t.preset,void 0!==t.lineWidth&&(this.lineWidth=t.lineWidth)):(this._preset="default",this.lineWidth=t.lineWidth)}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=Yt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Yt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function qt(e,t){const s={};let n,i;for(let a=0,r=t.length;a{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new Ye(this,{transparent:n,alphaDepthMask:i}),this._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;let e=null;this.getHash=function(){if(e)return e;const t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";const s=[];for(let e=0,n=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=h.vec4([0,0,0,0]),t=h.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let s=null,n=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let n;for(let s=0,i=t.length;s0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),s=e.join(""),s},this.addLight=function(e){this.lights.push(e),n=null,s=null},this.removeLight=function(e){for(let t=0,i=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+m.inQuotes(e.id)+" already exists in Scene - ignoring ID, will randomly-generate instead"),e.id=null),!e.id)for(void 0===window.nextID&&(window.nextID=0),e.id="__"+window.nextID++;this.components[e.id];)e.id=h.createUUID();this.components[e.id]=e;const t=e.type;let s=this.types[e.type];s||(s=this.types[t]={}),s[e.id]=e,e.compile&&(this._compilables[e.id]=e),e.isDrawable&&(this._renderer.addDrawable(e.id,e),this._collidables[e.id]=e)}_removeComponent(e){var t=e.id,s=e.type;delete this.components[t];const n=this.types[s];n&&(delete n[t],m.isEmptyObject(n)&&delete this.types[s]),e.compile&&delete this._compilables[e.id],e.isDrawable&&(this._renderer.removeDrawable(e.id),delete this._collidables[e.id])}_sectionPlaneCreated(e){this.sectionPlanes[e.id]=e,this.scene._sectionPlanesState.addSectionPlane(e._state),this.scene.fire("sectionPlaneCreated",e,!0),this._needRecompile=!0}_bitmapCreated(e){this.bitmaps[e.id]=e,this.scene.fire("bitmapCreated",e,!0)}_lineSetCreated(e){this.lineSets[e.id]=e,this.scene.fire("lineSetCreated",e,!0)}_lightCreated(e){this.lights[e.id]=e,this.scene._lightsState.addLight(e._state),this._needRecompile=!0}_lightMapCreated(e){this.lightMaps[e.id]=e,this.scene._lightsState.addLightMap(e._state),this._needRecompile=!0}_reflectionMapCreated(e){this.reflectionMaps[e.id]=e,this.scene._lightsState.addReflectionMap(e._state),this._needRecompile=!0}_sectionPlaneDestroyed(e){delete this.sectionPlanes[e.id],this.scene._sectionPlanesState.removeSectionPlane(e._state),this.scene.fire("sectionPlaneDestroyed",e,!0),this._needRecompile=!0}_bitmapDestroyed(e){delete this.bitmaps[e.id],this.scene.fire("bitmapDestroyed",e,!0)}_lineSetDestroyed(e){delete this.lineSets[e.id],this.scene.fire("lineSetDestroyed",e,!0)}_lightDestroyed(e){delete this.lights[e.id],this.scene._lightsState.removeLight(e._state),this._needRecompile=!0}_lightMapDestroyed(e){delete this.lightMaps[e.id],this.scene._lightsState.removeLightMap(e._state),this._needRecompile=!0}_reflectionMapDestroyed(e){delete this.reflectionMaps[e.id],this.scene._lightsState.removeReflectionMap(e._state),this._needRecompile=!0}_registerModel(e){this.models[e.id]=e,this._modelIds=null}_deregisterModel(e){const t=e.id;delete this.models[t],this._modelIds=null,this.fire("modelUnloaded",t)}_registerObject(e){this.objects[e.id]=e,this._numObjects++,this._objectIds=null}_deregisterObject(e){delete this.objects[e.id],this._numObjects--,this._objectIds=null}_objectVisibilityUpdated(e,t=!0){e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}_objectXRayedUpdated(e,t=!0){e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}_objectHighlightedUpdated(e,t=!0){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}_objectSelectedUpdated(e,t=!0){e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_objectOpacityUpdated(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}_objectOffsetUpdated(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}_webglContextLost(){this.canvas.spinner.processes++;for(const e in this.components)if(this.components.hasOwnProperty(e)){const t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}_webglContextRestored(){const e=this.canvas.gl;for(const t in this.components)if(this.components.hasOwnProperty(t)){const s=this.components[t];s._webglContextRestored&&s._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}get capabilities(){return this._renderer.capabilities}get entityOffsetsEnabled(){return this._entityOffsetsEnabled}get pickSurfacePrecisionEnabled(){return!1}get logarithmicDepthBufferEnabled(){return this._logarithmicDepthBufferEnabled}set numCachedSectionPlanes(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}get numCachedSectionPlanes(){return this._sectionPlanesState.getNumCachedSectionPlanes()}set pbrEnabled(e){this._pbrEnabled=!!e,this.glRedraw()}get pbrEnabled(){return this._pbrEnabled}set dtxEnabled(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}get dtxEnabled(){return this._dtxEnabled}set colorTextureEnabled(e){this._colorTextureEnabled=!!e,this.glRedraw()}get colorTextureEnabled(){return this._colorTextureEnabled}doOcclusionTest(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}render(e){e&&R.runTasks();const t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),!e&&!this._renderer.needsRender())return;t.sceneId=this.id;const s=this._passes,n=this._clearEachPass;let i,a;for(i=0;ii&&(i=e[3]),e[4]>a&&(a=e[4]),e[5]>r&&(r=e[5]),c=!0}c||(t=-100,s=-100,n=-100,i=100,a=100,r=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=n,this._aabb[3]=i,this._aabb[4]=a,this._aabb[5]=r,this._aabbDirty=!1}return this._aabb}_setAABBDirty(){this._aabbDirty=!0,this.fire("boundary")}pick(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");const s=e.includeEntities||e.include;s&&(e.includeEntityIds=qt(this,s));const n=e.excludeEntities||e.exclude;return n&&(e.excludeEntityIds=qt(this,n)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}snapPick(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}clear(){var e;for(const t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}clearLights(){const e=Object.keys(this.lights);for(let t=0,s=e.length;t{if(e.collidable){const o=e.aabb;o[0]a&&(a=o[3]),o[4]>r&&(r=o[4]),o[5]>l&&(l=o[5]),t=!0}})),t){const e=h.AABB3();return e[0]=s,e[1]=n,e[2]=i,e[3]=a,e[4]=r,e[5]=l,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const s=e.visible!==t;return e.visible=t,s}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const s=e.collidable!==t;return e.collidable=t,s}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const s=e.culled!==t;return e.culled=t,s}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const s=e.selected!==t;return e.selected=t,s}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const s=e.highlighted!==t;return e.highlighted=t,s}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const s=e.xrayed!==t;return e.xrayed=t,s}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const s=e.edges!==t;return e.edges=t,s}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const s=e.opacity!==t;return e.opacity=t,s}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const s=e.pickable!==t;return e.pickable=t,s}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){m.isString(e)&&(e=[e]);let s=!1;for(let n=0,i=e.length;n{i>n&&(n=i,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:r,wrapperFunc:a},a}destroy(){super.destroy();for(const e in this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}const Zt=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,r=e._state.stationary,l=s.getNumAllocatedSectionPlanes()>0,o=!!i.compressGeometry,c=[];c.push("#version 300 es"),c.push("// Lambertian drawing vertex shader"),c.push("in vec3 position;"),c.push("uniform mat4 modelMatrix;"),c.push("uniform mat4 viewMatrix;"),c.push("uniform mat4 projMatrix;"),c.push("uniform vec4 colorize;"),c.push("uniform vec3 offset;"),o&&c.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(c.push("uniform float logDepthBufFC;"),c.push("out float vFragDepth;"),c.push("bool isPerspectiveMatrix(mat4 m) {"),c.push(" return (m[2][3] == - 1.0);"),c.push("}"),c.push("out float isPerspective;"));l&&c.push("out vec4 vWorldPosition;");if(c.push("uniform vec4 lightAmbient;"),c.push("uniform vec4 materialColor;"),c.push("uniform vec3 materialEmissive;"),i.normalsBuf){c.push("in vec3 normal;"),c.push("uniform mat4 modelNormalMatrix;"),c.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=n.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),c.push(" }"),c.push(" return normalize(v);"),c.push("}"))}c.push("out vec4 vColor;"),"points"===i.primitiveName&&c.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(c.push("void billboard(inout mat4 mat) {"),c.push(" mat[0][0] = 1.0;"),c.push(" mat[0][1] = 0.0;"),c.push(" mat[0][2] = 0.0;"),"spherical"===a&&(c.push(" mat[1][0] = 0.0;"),c.push(" mat[1][1] = 1.0;"),c.push(" mat[1][2] = 0.0;")),c.push(" mat[2][0] = 0.0;"),c.push(" mat[2][1] = 0.0;"),c.push(" mat[2][2] =1.0;"),c.push("}"));c.push("void main(void) {"),c.push("vec4 localPosition = vec4(position, 1.0); "),c.push("vec4 worldPosition;"),o&&c.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(o?c.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):c.push("vec4 localNormal = vec4(normal, 0.0); "),c.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),c.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));c.push("mat4 viewMatrix2 = viewMatrix;"),c.push("mat4 modelMatrix2 = modelMatrix;"),r&&c.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(c.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),c.push("billboard(modelMatrix2);"),c.push("billboard(viewMatrix2);"),c.push("billboard(modelViewMatrix);"),i.normalsBuf&&(c.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),c.push("billboard(modelNormalMatrix2);"),c.push("billboard(viewNormalMatrix2);"),c.push("billboard(modelViewNormalMatrix);")),c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&c.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(c.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),c.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),c.push("float lambertian = 1.0;"),i.normalsBuf)for(let e=0,t=n.lights.length;e0,a=t.gammaOutput,r=[];r.push("#version 300 es"),r.push("// Lambertian drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("in vec4 vWorldPosition;"),r.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),r.push("}")}"points"===n.primitiveName&&(r.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),r.push("float r = dot(cxy, cxy);"),r.push("if (r > 1.0) {"),r.push(" discard;"),r.push("}"));t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?r.push("outColor = linearToGamma(vColor, gammaFactor);"):r.push("outColor = vColor;");return r.push("}"),r}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,n=t._sectionPlanesState,i=e._geometry._state,a=t._lightsState;let r;const l=s.billboard,o=s.background,c=s.stationary,u=function(e){if(!e._geometry._state.uvBuf)return!1;const t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),h=ts(e),p=n.getNumAllocatedSectionPlanes()>0,A=es(e),d=!!i.compressGeometry,f=[];f.push("#version 300 es"),f.push("// Drawing vertex shader"),f.push("in vec3 position;"),d&&f.push("uniform mat4 positionsDecodeMatrix;");f.push("uniform mat4 modelMatrix;"),f.push("uniform mat4 viewMatrix;"),f.push("uniform mat4 projMatrix;"),f.push("out vec3 vViewPosition;"),f.push("uniform vec3 offset;"),p&&f.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(f.push("uniform float logDepthBufFC;"),f.push("out float vFragDepth;"),f.push("bool isPerspectiveMatrix(mat4 m) {"),f.push(" return (m[2][3] == - 1.0);"),f.push("}"),f.push("out float isPerspective;"));a.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(h){f.push("in vec3 normal;"),f.push("uniform mat4 modelNormalMatrix;"),f.push("uniform mat4 viewNormalMatrix;"),f.push("out vec3 vViewNormal;");for(let e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),f.push(" }"),f.push(" return normalize(v);"),f.push("}"))}u&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));i.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===i.primitiveName&&f.push("uniform float pointSize;");"spherical"!==l&&"cylindrical"!==l||(f.push("void billboard(inout mat4 mat) {"),f.push(" mat[0][0] = 1.0;"),f.push(" mat[0][1] = 0.0;"),f.push(" mat[0][2] = 0.0;"),"spherical"===l&&(f.push(" mat[1][0] = 0.0;"),f.push(" mat[1][1] = 1.0;"),f.push(" mat[1][2] = 0.0;")),f.push(" mat[2][0] = 0.0;"),f.push(" mat[2][1] = 0.0;"),f.push(" mat[2][2] =1.0;"),f.push("}"));if(A){f.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(let e=0,t=a.lights.length;e0&&f.push("vWorldNormal = worldNormal;"),f.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),f.push("vec3 tmpVec3;"),f.push("float lightDist;");for(let e=0,t=a.lights.length;e0,o=ts(e),c=n.uvBuf,u="PhongMaterial"===r.type,h="MetallicMaterial"===r.type,p="SpecularMaterial"===r.type,A=es(e);t.gammaInput;const d=t.gammaOutput,f=[];f.push("#version 300 es"),f.push("// Drawing fragment shader"),f.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),f.push("precision highp float;"),f.push("precision highp int;"),f.push("#else"),f.push("precision mediump float;"),f.push("precision mediump int;"),f.push("#endif"),t.logarithmicDepthBufferEnabled&&(f.push("in float isPerspective;"),f.push("uniform float logDepthBufFC;"),f.push("in float vFragDepth;"));A&&(f.push("float unpackDepth (vec4 color) {"),f.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),f.push(" return dot(color, bitShift);"),f.push("}"));f.push("uniform float gammaFactor;"),f.push("vec4 linearToLinear( in vec4 value ) {"),f.push(" return value;"),f.push("}"),f.push("vec4 sRGBToLinear( in vec4 value ) {"),f.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),f.push("}"),f.push("vec4 gammaToLinear( in vec4 value) {"),f.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),f.push("}"),d&&(f.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),f.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),f.push("}"));if(l){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var I=0;I0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("uniform mat4 viewMatrix;"),f.push("#define PI 3.14159265359"),f.push("#define RECIPROCAL_PI 0.31830988618"),f.push("#define RECIPROCAL_PI2 0.15915494"),f.push("#define EPSILON 1e-6"),f.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),f.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),f.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),f.push("}"),f.push("struct IncidentLight {"),f.push(" vec3 color;"),f.push(" vec3 direction;"),f.push("};"),f.push("struct ReflectedLight {"),f.push(" vec3 diffuse;"),f.push(" vec3 specular;"),f.push("};"),f.push("struct Geometry {"),f.push(" vec3 position;"),f.push(" vec3 viewNormal;"),f.push(" vec3 worldNormal;"),f.push(" vec3 viewEyeDir;"),f.push("};"),f.push("struct Material {"),f.push(" vec3 diffuseColor;"),f.push(" float specularRoughness;"),f.push(" vec3 specularColor;"),f.push(" float shine;"),f.push("};"),u&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = "+$t[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),f.push(" radiance *= PI;"),f.push(" reflectedLight.specular += radiance;")),f.push("}")),f.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),f.push(" vec3 irradiance = dotNL * directLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),f.push("}")),(h||p)&&(f.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),f.push(" float r = ggxRoughness + 0.0001;"),f.push(" return (2.0 / (r * r) - 2.0);"),f.push("}"),f.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),f.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),f.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),f.push("}"),a.reflectionMaps.length>0&&(f.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),f.push(" vec3 envMapColor = "+$t[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),f.push(" return envMapColor;"),f.push("}")),f.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),f.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),f.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),f.push("}"),f.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" return 1.0 / ( gl * gv );"),f.push("}"),f.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" return 0.5 / max( gv + gl, EPSILON );"),f.push("}"),f.push("float D_GGX(const in float alpha, const in float dotNH) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),f.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float alpha = ( roughness * roughness );"),f.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),f.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),f.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),f.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),f.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),f.push(" vec3 F = F_Schlick( specularColor, dotLH );"),f.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),f.push(" float D = D_GGX( alpha, dotNH );"),f.push(" return F * (G * D);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),f.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),f.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),f.push(" vec4 r = roughness * c0 + c1;"),f.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),f.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),f.push(" return specularColor * AB.x + AB.y;"),f.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),f.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),f.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),f.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),f.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),f.push("}")),f.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),f.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),f.push("}")));f.push("in vec3 vViewPosition;"),n.colors&&f.push("in vec4 vColor;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._occlusionMap||s._alphaMap)&&f.push("in vec2 vUV;");o&&(a.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));r.ambient&&f.push("uniform vec3 materialAmbient;");r.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==r.alpha&&null!==r.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");r.emissive&&f.push("uniform vec3 materialEmissive;");r.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==r.glossiness&&null!==r.glossiness&&f.push("uniform float materialGlossiness;");void 0!==r.shininess&&null!==r.shininess&&f.push("uniform float materialShininess;");r.specular&&f.push("uniform vec3 materialSpecular;");void 0!==r.metallic&&null!==r.metallic&&f.push("uniform float materialMetallic;");void 0!==r.roughness&&null!==r.roughness&&f.push("uniform float materialRoughness;");void 0!==r.specularF0&&null!==r.specularF0&&f.push("uniform float materialSpecularF0;");c&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));c&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));c&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));c&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));o&&c&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));o&&c&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));o&&c&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));o&&s._normalMap&&(f.push("uniform sampler2D normalMap;"),s._normalMap._state.matrix&&f.push("uniform mat4 normalMapMatrix;"),f.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),f.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),f.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),f.push(" vec2 st0 = dFdx( uv.st );"),f.push(" vec2 st1 = dFdy( uv.st );"),f.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),f.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),f.push(" vec3 N = normalize( surf_norm );"),f.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),f.push(" mat3 tsn = mat3( S, T, N );"),f.push(" return normalize( tsn * mapN );"),f.push("}"));c&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));c&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));o&&c&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));o&&c&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));o&&c&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));o&&(s._diffuseFresnel||s._specularFresnel||s._alphaFresnel||s._emissiveFresnel||s._reflectivityFresnel)&&(f.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),f.push(" float fr = abs(dot(eyeDir, normal));"),f.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),f.push(" return pow(finalFr, power);"),f.push("}"),s._diffuseFresnel&&(f.push("uniform float diffuseFresnelCenterBias;"),f.push("uniform float diffuseFresnelEdgeBias;"),f.push("uniform float diffuseFresnelPower;"),f.push("uniform vec3 diffuseFresnelCenterColor;"),f.push("uniform vec3 diffuseFresnelEdgeColor;")),s._specularFresnel&&(f.push("uniform float specularFresnelCenterBias;"),f.push("uniform float specularFresnelEdgeBias;"),f.push("uniform float specularFresnelPower;"),f.push("uniform vec3 specularFresnelCenterColor;"),f.push("uniform vec3 specularFresnelEdgeColor;")),s._alphaFresnel&&(f.push("uniform float alphaFresnelCenterBias;"),f.push("uniform float alphaFresnelEdgeBias;"),f.push("uniform float alphaFresnelPower;"),f.push("uniform vec3 alphaFresnelCenterColor;"),f.push("uniform vec3 alphaFresnelEdgeColor;")),s._reflectivityFresnel&&(f.push("uniform float materialSpecularF0FresnelCenterBias;"),f.push("uniform float materialSpecularF0FresnelEdgeBias;"),f.push("uniform float materialSpecularF0FresnelPower;"),f.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),f.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),s._emissiveFresnel&&(f.push("uniform float emissiveFresnelCenterBias;"),f.push("uniform float emissiveFresnelEdgeBias;"),f.push("uniform float emissiveFresnelPower;"),f.push("uniform vec3 emissiveFresnelCenterColor;"),f.push("uniform vec3 emissiveFresnelEdgeColor;")));if(f.push("uniform vec4 lightAmbient;"),o)for(let e=0,t=a.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===n.primitiveName&&(f.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),f.push("float r = dot(cxy, cxy);"),f.push("if (r > 1.0) {"),f.push(" discard;"),f.push("}"));f.push("float occlusion = 1.0;"),r.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");r.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):r.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");n.colors&&f.push("diffuseColor *= vColor.rgb;");r.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");r.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==r.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");n.colors&&f.push("alpha *= vColor.a;");void 0!==r.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==r.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==r.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==r.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._occlusionMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._alphaMap)&&(f.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),f.push("vec2 textureCoord;"));c&&s._ambientMap&&(s._ambientMap._state.matrix?f.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),f.push("ambientTexel = "+$t[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));c&&s._diffuseMap&&(s._diffuseMap._state.matrix?f.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),f.push("diffuseTexel = "+$t[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));c&&s._baseColorMap&&(s._baseColorMap._state.matrix?f.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),f.push("baseColorTexel = "+$t[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));c&&s._emissiveMap&&(s._emissiveMap._state.matrix?f.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),f.push("emissiveTexel = "+$t[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));c&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));c&&s._occlusionMap&&(s._occlusionMap._state.matrix?f.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(o&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){c&&s._normalMap?(s._normalMap._state.matrix?f.push("textureCoord = (normalMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):f.push("vec3 viewNormal = normalize(vViewNormal);"),c&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),c&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),c&&s._specularGlossinessMap&&(s._specularGlossinessMap._state.matrix?f.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),f.push("specular *= specGlossRGB.rgb;"),f.push("glossiness *= specGlossRGB.a;")),c&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),c&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),c&&s._metallicRoughnessMap&&(s._metallicRoughnessMap._state.matrix?f.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),f.push("metallic *= metalRoughRGB.b;"),f.push("roughness *= metalRoughRGB.g;")),f.push("vec3 viewEyeDir = normalize(-vViewPosition);"),s._diffuseFresnel&&(f.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),f.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),s._specularFresnel&&(f.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),f.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),s._alphaFresnel&&(f.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),f.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),s._emissiveFresnel&&(f.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),f.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),f.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),f.push(" discard;"),f.push("}"),f.push("IncidentLight light;"),f.push("Material material;"),f.push("Geometry geometry;"),f.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),f.push("vec3 viewLightDir;"),u&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),p&&(f.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),f.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),f.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),f.push("material.specularColor = specular;")),h&&(f.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),f.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),f.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),f.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),f.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),u&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||h)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePBRLightMapping(geometry, material, reflectedLight);"),f.push("float shadow = 1.0;"),f.push("float shadowAcneRemover = 0.007;"),f.push("vec3 fragmentDepth;"),f.push("float texelSize = 1.0 / 1024.0;"),f.push("float amountInLight = 0.0;"),f.push("vec3 shadowCoord;"),f.push("vec4 rgbaDepth;"),f.push("float depth;");for(let e=0,t=a.lights.length;e0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(u=0,h=a.sectionPlanes.length;u0&&i.lightMaps[0].texture&&this._uLightMap&&(l.bindTexture(this._uLightMap,i.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),i.reflectionMaps.length>0&&i.reflectionMaps[0].texture&&this._uReflectionMap&&(l.bindTexture(this._uReflectionMap,i.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&n.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class rs{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,n=function(e){const t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,r=e._state.billboard,l=e._state.stationary,o=[];o.push("#version 300 es"),o.push("// EmphasisFillShaderSource vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec4 colorize;"),o.push("uniform vec3 offset;"),a&&o.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));i&&o.push("out vec4 vWorldPosition;");if(o.push("uniform vec4 lightAmbient;"),o.push("uniform vec4 fillColor;"),n){o.push("in vec3 normal;"),o.push("uniform mat4 modelNormalMatrix;"),o.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"))}o.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===r&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),a&&o.push("localPosition = positionsDecodeMatrix * localPosition;");n&&(a?o.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):o.push("vec4 localNormal = vec4(normal, 0.0); "),o.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),o.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),l&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),n&&(o.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),o.push("billboard(modelNormalMatrix2);"),o.push("billboard(viewNormalMatrix2);"),o.push("billboard(modelViewNormalMatrix);")),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&o.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),n)for(let e=0,t=s.lights.length;e0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const ls=new e({}),os=h.vec3(),cs=function(e,t){this.id=ls.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new rs(t),this._allocate(t)},us={};cs.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=us[t];return s||(s=new cs(t,e),us[t]=s,d.memory.programs++),s._useCount++,s},cs.prototype.put=function(){0==--this._useCount&&(ls.removeItem(this.id),this._program&&this._program.destroy(),delete us[this._hash],d.memory.programs--)},cs.prototype.webglContextRestored=function(){this._program=null},cs.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl,r=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,l=t._state,o=t._geometry._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(l.originHash,c):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Edges drawing vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec4 edgeColor;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));s&&r.push("out vec4 vWorldPosition;");r.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.push("vColor = edgeColor;"),s&&r.push("vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene.gammaOutput,i=s.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const ps=new e({}),As=h.vec3(),ds=function(e,t){this.id=ps.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new hs(t),this._allocate(t)},fs={};ds.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=fs[t];return s||(s=new ds(t,e),fs[t]=s,d.memory.programs++),s._useCount++,s},ds.prototype.put=function(){0==--this._useCount&&(ps.removeItem(this.id),this._program&&this._program.destroy(),delete fs[this._hash],d.memory.programs--)},ds.prototype.webglContextRestored=function(){this._program=null},ds.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl;let r;const l=t._state,o=t._geometry,c=o._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(l.originHash,u):i.viewMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh picking vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("out vec4 vViewPosition;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("uniform vec2 pickClipPos;"),r.push("vec4 remapClipPos(vec4 clipPos) {"),r.push(" clipPos.xy /= clipPos.w;"),r.push(" clipPos.xy -= pickClipPos;"),r.push(" clipPos.xy *= clipPos.w;"),r.push(" return clipPos;"),r.push("}"),r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"));r.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = remapClipPos(clipPos);"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(e)}}const ys=h.vec3(),ms=function(e,t){this._hash=e,this._shaderSource=new Is(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},vs={};ms.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=vs[t];if(!s){if(s=new ms(t,e),s.errors)return console.log(s.errors.join("\n")),null;vs[t]=s,d.memory.programs++}return s._useCount++,s},ms.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete vs[this._hash],d.memory.programs--)},ms.prototype.webglContextRestored=function(){this._program=null},ms.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t>24&255,u=o>>16&255,h=o>>8&255,p=255&o;n.uniform4f(this._uPickColor,p/255,h/255,u/255,c/255),n.uniform2fv(this._uPickClipPos,e.pickClipPos),r.indicesBuf?(n.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&n.drawArrays(n.TRIANGLES,0,r.positions.numItems)},ms.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Be(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,n=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),s&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),n&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),n&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(e)}}const gs=h.vec3(),Es=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new ws(t),this._allocate(t)},Ts={};Es.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Ts[t];if(!s){if(s=new Es(t,e),s.errors)return console.log(s.errors.join("\n")),null;Ts[t]=s,d.memory.programs++}return s._useCount++,s},Es.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ts[this._hash],d.memory.programs--)},Es.prototype.webglContextRestored=function(){this._program=null},Es.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry,l=t._geometry._state,o=t.origin,c=a.backfaces,u=a.frontface,h=s.camera.project,p=r._getPickTrianglePositions(),A=r._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(h.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}if(n.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh occlusion vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(e)}}const Ds=h.vec3(),Ps=function(e,t){this._hash=e,this._shaderSource=new bs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Rs={};Ps.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let s=Rs[t];if(!s){if(s=new Ps(t,e),s.errors)return console.log(s.errors.join("\n")),null;Rs[t]=s,d.memory.programs++}return s._useCount++,s},Ps.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Rs[this._hash],d.memory.programs--)},Ps.prototype.webglContextRestored=function(){this._program=null},Ps.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._material._state,a=t._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){const t=i.backfaces;e.backfaces!==t&&(t?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=t);const s=i.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),this._lastMaterialId=i.id}const o=s.camera;if(n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCViewMatrix(a.originHash,l):o.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,n=[];n.push("// Mesh shadow vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t&&n.push("out vec4 vWorldPosition;");n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("worldPosition = modelMatrix * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&n.push("vWorldPosition = worldPosition;");return n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(e)}}const _s=function(e,t){this._hash=e,this._shaderSource=new Cs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Bs={};_s.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let n=Bs[s];if(!n){if(n=new _s(s,e),n.errors)return console.log(n.errors.join("\n")),null;Bs[s]=n,d.memory.programs++}return n._useCount++,n},_s.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Bs[this._hash],d.memory.programs--)},_s.prototype.webglContextRestored=function(){this._program=null},_s.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,n=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.id!==this._lastMaterialId){const t=n.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=n.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),e.lineWidth!==n.lineWidth&&(s.lineWidth(n.lineWidth),e.lineWidth=n.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,n.pointSize),this._lastMaterialId=n.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),i.combineGeometry){const n=t.vertexBufs;n.id!==this._lastVertexBufsId&&(n.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(n.positionsBuf,n.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=n.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(s.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(s.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(s.drawArrays(s.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},_s.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Be(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uShadowViewMatrix=n.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=n.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,i,a,r;for(let l=0,o=this._uSectionPlanes.length;l0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const ks=function(){const e=h.vec3(),t=h.vec3(),s=h.vec3(),n=h.vec3(),i=h.vec3(),a=h.vec3(),r=h.vec4(),l=h.vec3(),o=h.vec3(),c=h.vec3(),u=h.vec3(),p=h.vec3(),A=h.vec3(),d=h.vec3(),f=h.vec3(),I=h.vec3(),y=h.vec4(),m=h.vec4(),v=h.vec4(),w=h.vec3(),g=h.vec3(),E=h.vec3(),T=h.vec3(),b=h.vec3(),D=h.vec3(),P=h.vec3(),R=h.vec3(),C=h.vec3(),_=h.vec3(),B=h.vec3();return function(O,S,N,x){var L=x.primIndex;if(null!=L&&L>-1){const U=O.geometry._state,j=O.scene,V=j.camera,k=j.canvas;if("triangles"===U.primitiveName){x.primitive="triangle";const j=L,Q=U.indices,W=U.positions;let z,K,Y;if(Q){var M=Q[j+0],F=Q[j+1],H=Q[j+2];a[0]=M,a[1]=F,a[2]=H,x.indices=a,z=3*M,K=3*F,Y=3*H}else z=3*j,K=z+3,Y=K+3;if(s[0]=W[z+0],s[1]=W[z+1],s[2]=W[z+2],n[0]=W[K+0],n[1]=W[K+1],n[2]=W[K+2],i[0]=W[Y+0],i[1]=W[Y+1],i[2]=W[Y+2],U.compressGeometry){const e=U.positionsDecodeMatrix;e&&(Bt.decompressPosition(s,e,s),Bt.decompressPosition(n,e,n),Bt.decompressPosition(i,e,i))}x.canvasPos?h.canvasPosToLocalRay(k.canvas,O.origin?G(S,O.origin):S,N,O.worldMatrix,x.canvasPos,e,t):x.origin&&x.direction&&h.worldRayToLocalRay(O.worldMatrix,x.origin,x.direction,e,t),h.normalizeVec3(t),h.rayPlaneIntersect(e,t,s,n,i,r),x.localPos=r,x.position=r,y[0]=r[0],y[1]=r[1],y[2]=r[2],y[3]=1,h.transformVec4(O.worldMatrix,y,m),l[0]=m[0],l[1]=m[1],l[2]=m[2],x.canvasPos&&O.origin&&(l[0]+=O.origin[0],l[1]+=O.origin[1],l[2]+=O.origin[2]),x.worldPos=l,h.transformVec4(V.matrix,m,v),o[0]=v[0],o[1]=v[1],o[2]=v[2],x.viewPos=o,h.cartesianToBarycentric(r,s,n,i,c),x.bary=c;const X=U.normals;if(X){if(U.compressGeometry){const e=3*M,t=3*F,s=3*H;Bt.decompressNormal(X.subarray(e,e+2),u),Bt.decompressNormal(X.subarray(t,t+2),p),Bt.decompressNormal(X.subarray(s,s+2),A)}else u[0]=X[z],u[1]=X[z+1],u[2]=X[z+2],p[0]=X[K],p[1]=X[K+1],p[2]=X[K+2],A[0]=X[Y],A[1]=X[Y+1],A[2]=X[Y+2];const e=h.addVec3(h.addVec3(h.mulVec3Scalar(u,c[0],w),h.mulVec3Scalar(p,c[1],g),E),h.mulVec3Scalar(A,c[2],T),b);x.worldNormal=h.normalizeVec3(h.transformVec3(O.worldNormalMatrix,e,D))}const q=U.uv;if(q){if(d[0]=q[2*M],d[1]=q[2*M+1],f[0]=q[2*F],f[1]=q[2*F+1],I[0]=q[2*H],I[1]=q[2*H+1],U.compressGeometry){const e=U.uvDecodeMatrix;e&&(Bt.decompressUV(d,e,d),Bt.decompressUV(f,e,f),Bt.decompressUV(I,e,I))}x.uv=h.addVec3(h.addVec3(h.mulVec2Scalar(d,c[0],P),h.mulVec2Scalar(f,c[1],R),C),h.mulVec2Scalar(I,c[2],_),B)}}}}}();function Qs(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let s=e.radiusBottom||1;s<0&&(console.error("negative radiusBottom not allowed - will invert"),s*=-1);let n=e.height||1;n<0&&(console.error("negative height not allowed - will invert"),n*=-1);let i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);let a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);const r=!!e.openEnded;let l=e.center;const o=l?l[0]:0,c=l?l[1]:0,u=l?l[2]:0,h=n/2,p=n/a,A=2*Math.PI/i,d=1/i,f=(t-s)/a,I=[],y=[],v=[],w=[];let g,E,T,b,D,P,R,C,_,B,O;const S=(90-180*Math.atan(n/(s-t))/Math.PI)/90;for(g=0;g<=a;g++)for(D=t-g*f,P=h-g*p,E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),y.push(D*T),y.push(S),y.push(D*b),v.push(E*d),v.push(1*g/a),I.push(D*T+o),I.push(P+c),I.push(D*b+u);for(g=0;g0){for(_=I.length/3,y.push(0),y.push(1),y.push(0),v.push(.5),v.push(.5),I.push(0+o),I.push(h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(t*T),y.push(1),y.push(t*b),v.push(B),v.push(O),I.push(t*T+o),I.push(h+c),I.push(t*b+u);for(E=0;E0){for(_=I.length/3,y.push(0),y.push(-1),y.push(0),v.push(.5),v.push(.5),I.push(0+o),I.push(0-h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(s*T),y.push(-1),y.push(s*b),v.push(B),v.push(O),I.push(s*T+o),I.push(0-h+c),I.push(s*b+u);for(E=0;E":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function Ks(e={}){var t=e.origin||[0,0,0],s=t[0],n=t[1],i=t[2],a=e.size||1,r=[],l=[],o=e.text;m.isNumeric(o)&&(o=""+o);for(var c,u,h,p,A,d,f,I,y,v=(o||"").split("\n"),w=0,g=0,E=.04,T=0;T0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let s=0,n=e.length;s1;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,this.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE);const a=An(s,this.wrapS);a&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,a);const r=An(s,this.wrapT);if(r&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,r),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=An(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}i?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,yn(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,yn(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,An(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,An(s,this.magFilter)));const l=An(s,this.format,this.encoding),o=An(s,this.type),c=In(s,this.internalFormat,l,o,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,n,c,e[0].width,e[0].height);for(let t=0,n=e.length;t>t;return e+1}class gn extends _{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new Je({texture:new fn({gl:this.scene.canvas.gl}),matrix:h.identityMat4(),hasMatrix:t.translate&&(0!==t.translate[0]||0!==t.translate[1])||!!t.rotate||t.scale&&(0!==t.scale[0]||0!==t.scale[1]),minFilter:this._checkMinFilter(t.minFilter),magFilter:this._checkMagFilter(t.magFilter),wrapS:this._checkWrapS(t.wrapS),wrapT:this._checkWrapT(t.wrapT),flipY:this._checkFlipY(t.flipY),encoding:this._checkEncoding(t.encoding)}),this._src=null,this._image=null,this._translate=h.vec2([0,0]),this._scale=h.vec2([1,1]),this._rotate=h.vec2([0,0]),this._matrixDirty=!1,this.translate=t.translate,this.scale=t.scale,this.rotate=t.rotate,t.src?this.src=t.src:t.image&&(this.image=t.image),d.memory.textures++}_checkMinFilter(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}_checkMagFilter(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}_checkWrapS(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkWrapT(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this._state.texture=new fn({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}_update(){const e=this._state;if(this._matrixDirty){let t,s;0===this._translate[0]&&0===this._translate[1]||(t=h.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(s=h.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?h.mulMat4(t,s):s),0!==this._rotate&&(s=h.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?h.mulMat4(t,s):s),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=mn(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}get image(){return this._image}set src(e){this.scene.loading++,this.scene.canvas.spinner.processes++;const t=this;let s=new Image;s.onload=function(){s=mn(s),t._state.texture.setImage(s,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},s.src=e,this._src=e,this._image=null}get src(){return this._src}set translate(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}get translate(){return this._translate}set scale(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}get scale(){return this._scale}set rotate(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}get rotate(){return this._rotate}get minFilter(){return this._state.minFilter}get magFilter(){return this._state.magFilter}get wrapS(){return this._state.wrapS}get wrapT(){return this._state.wrapT}get flipY(){return this._state.flipY}get encoding(){return this._state.encoding}destroy(){super.destroy(),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),d.memory.textures--}}const En=d.memory,Tn=h.AABB3();class bn extends Et{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Je({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._aabb=null,this._obb=h.OBB3();const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var i;if(t.positionsDecodeMatrix);else{const e=Bt.getPositionsBounds(t.positions),a=Bt.compressPositions(t.positions,e.min,e.max);i=a.quantized,s.positionsDecodeMatrix=a.decodeMatrix,s.positionsBuf=new Oe(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),En.positions+=s.positionsBuf.numItems,h.positions3ToAABB3(t.positions,this._aabb),h.positions3ToAABB3(i,Tn,s.positionsDecodeMatrix),h.AABB3ToOBB3(Tn,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new Oe(n,n.ARRAY_BUFFER,e,e.length,4,n.STATIC_DRAW),En.colors+=s.colorsBuf.numItems}if(t.uv){const e=Bt.getUVBounds(t.uv),i=Bt.compressUVs(t.uv,e.min,e.max),a=i.quantized;s.uvDecodeMatrix=i.decodeMatrix,s.uvBuf=new Oe(n,n.ARRAY_BUFFER,a,a.length,2,n.STATIC_DRAW),En.uvs+=s.uvBuf.numItems}if(t.normals){const e=Bt.compressNormals(t.normals);let i=s.compressGeometry;s.normalsBuf=new Oe(n,n.ARRAY_BUFFER,e,e.length,3,n.STATIC_DRAW,i),En.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,e,e.length,1,n.STATIC_DRAW),En.indices+=s.indicesBuf.numItems;const a=Tt(i,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),En.meshes++}else this.error("Config expected: indices");else this.error("Config expected: positions")}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf}get primitive(){return this._state.primitiveName}get aabb(){return this._aabb}get obb(){return this._obb}get numTriangles(){return this._numTriangles}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),En.meshes--}}var Dn={};function Pn(e={}){let t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);let s=e.divisions||1;s<0&&(console.error("negative divisions not allowed - will invert"),s*=-1),s<1&&(s=1),t=t||10,s=s||10;const n=t/s,i=t/2,a=[],r=[];let l=0;for(let e=0,t=-i;e<=s;e++,t+=n)a.push(-i),a.push(0),a.push(t),a.push(i),a.push(0),a.push(t),a.push(t),a.push(0),a.push(-i),a.push(t),a.push(0),a.push(i),r.push(l++),r.push(l++),r.push(l++),r.push(l++);return m.apply(e,{primitive:"lines",positions:a,indices:r})}function Rn(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);let n=e.xSegments||1;n<0&&(console.error("negative xSegments not allowed - will invert"),n*=-1),n<1&&(n=1);let i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);const a=e.center,r=a?a[0]:0,l=a?a[1]:0,o=a?a[2]:0,c=t/2,u=s/2,h=Math.floor(n)||1,p=Math.floor(i)||1,A=h+1,d=p+1,f=t/h,I=s/p,y=new Float32Array(A*d*3),v=new Float32Array(A*d*3),w=new Float32Array(A*d*2);let g,E,T,b,D,P,R,C=0,_=0;for(g=0;g65535?Uint32Array:Uint16Array)(h*p*6);for(g=0;g360&&(a=360);const r=e.center;let l=r?r[0]:0,o=r?r[1]:0;const c=r?r[2]:0,u=[],p=[],A=[],d=[];let f,I,y,v,w,g,E,T,b,D,P,R;for(T=0;T<=i;T++)for(E=0;E<=n;E++)f=E/n*a,I=.785398+T/i*Math.PI*2,l=t*Math.cos(f),o=t*Math.sin(f),y=(t+s*Math.cos(I))*Math.cos(f),v=(t+s*Math.cos(I))*Math.sin(f),w=s*Math.sin(I),u.push(y+l),u.push(v+o),u.push(w+c),A.push(1-E/n),A.push(T/i),g=h.normalizeVec3(h.subVec3([y,v,w],[l,o,c],[]),[]),p.push(g[0]),p.push(g[1]),p.push(g[2]);for(T=1;T<=i;T++)for(E=1;E<=n;E++)b=(n+1)*T+E-1,D=(n+1)*(T-1)+E-1,P=(n+1)*(T-1)+E,R=(n+1)*T+E,d.push(b),d.push(D),d.push(P),d.push(P),d.push(R),d.push(b);return m.apply(e,{positions:u,normals:p,uv:A,indices:d})}Dn.load=function(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(e){t(e.target.response)},s.send()},Dn.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(Dn.parse._buffToStr(e));window.location.href=s},Dn.clone=function(e){return JSON.parse(JSON.stringify(e))},Dn.bin={},Dn.bin.f=new Float32Array(1),Dn.bin.fb=new Uint8Array(Dn.bin.f.buffer),Dn.bin.rf=function(e,t){for(var s=Dn.bin.f,n=Dn.bin.fb,i=0;i<4;i++)n[i]=e[t+i];return s[0]},Dn.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Dn.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Dn.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},Dn.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},Dn.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},Dn.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},Dn.parse={},Dn.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",n=0;ni&&(i=o),ca&&(a=c),ur&&(r=u)}return{min:{x:t,y:s,z:n},max:{x:i,y:a,z:r}}};class _n extends _{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=h.vec3(t.pos||[0,0,0]),this._up=h.vec3(t.up||[0,1,0]),this._normal=h.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=h.vec3(),this._rtcPos=h.vec3(),this._imageSize=h.vec2(),this._texture=new gn(this,{flipY:!0}),this._image=new Image,"jpg"!==this._type&&"png"!==this._type&&(this.error('Unsupported type - defaulting to "jpg"'),this._type="jpg"),this._node=new an(this,{matrix:h.inverseMat4(h.lookAtMat4v(this._pos,h.subVec3(this._pos,this._normal,h.mat4()),this._up,h.mat4())),children:[this._bitmapMesh=new Vs(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new Nt(this,Rn({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0})})]}),t.image?this.image=t.image:t.src?this.src=t.src:t.imageData&&(this.imageData=t.imageData),this.scene._bitmapCreated(this)}set visible(e){this._bitmapMesh.visible=e}get visible(){return this._bitmapMesh.visible}set image(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}get image(){return this._image}set src(e){if(e){this._image.onload=()=>{this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale()},this._image.src=e;switch(e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}}get src(){return this._image.src}set imageData(e){this._image.onload=()=>{this._texture.image=image,this._imageSize[0]=image.width,this._imageSize[1]=image.height,this._updateBitmapMeshScale()},this._image.src=e}get imageData(){const e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")}set type(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}get type(){return this._type}get pos(){return this._pos}get normal(){return this._normal}get up(){return this._up}set height(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}get height(){return this._height}set collidable(e){this._bitmapMesh.collidable=!1!==e}get collidable(){return this._bitmapMesh.collidable}set clippable(e){this._bitmapMesh.clippable=!1!==e}get clippable(){return this._bitmapMesh.clippable}set pickable(e){this._bitmapMesh.pickable=!1!==e}get pickable(){return this._bitmapMesh.pickable}set opacity(e){this._bitmapMesh.opacity=e}get opacity(){return this._bitmapMesh.opacity}destroy(){super.destroy(),this.scene._bitmapDestroyed(this)}_updateBitmapMeshScale(){const e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}const Bn=h.OBB3(),On=h.OBB3(),Sn=h.OBB3();class Nn{constructor(e,t,s,n,i,a,r=null,l=0){this.model=e,this.object=null,this.parent=null,this.transform=i,this.textureSet=a,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=h.AABB3(),this._aabbWorldDirty=!1,this.layer=r,this.portionId=l,this._color=new Uint8Array([s[0],s[1],s[2],n]),this._colorize=new Uint8Array([s[0],s[1],s[2],n]),this._colorizing=!1,this._transparent=n<255,this.numTriangles=0,this.origin=null,this.entity=null,i&&i._addMesh(this)}_sceneModelDirty(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}_transformDirty(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}_updateMatrix(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}_finalize(e){this.layer.initFlags(this.portionId,e,this._transparent)}_finalize2(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}_setVisible(e){this.layer.setVisible(this.portionId,e,this._transparent)}_setColor(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}_setColorize(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}_setOpacity(e,t){const s=e<255,n=this._transparent!==s;this._color[3]=e,this._colorize[3]=e,this._transparent=s,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),n&&this.layer.setTransparent(this.portionId,t,s)}_setOffset(e){this.layer.setOffset(this.portionId,e)}_setHighlighted(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}_setXRayed(e){this.layer.setXRayed(this.portionId,e,this._transparent)}_setSelected(e){this.layer.setSelected(this.portionId,e,this._transparent)}_setEdges(e){this.layer.setEdges(this.portionId,e,this._transparent)}_setClippable(e){this.layer.setClippable(this.portionId,e,this._transparent)}_setCollidable(e){this.layer.setCollidable(this.portionId,e)}_setPickable(e){this.layer.setPickable(this.portionId,e,this._transparent)}_setCulled(e){this.layer.setCulled(this.portionId,e,this._transparent)}canPickTriangle(){return!1}drawPickTriangles(e,t){}pickTriangleSurface(e){}precisionRayPickSurface(e,t,s,n){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,n)}canPickWorldPos(){return!0}drawPickDepths(e){this.model.drawPickDepths(e)}drawPickNormals(e){this.model.drawPickNormals(e)}delegatePickedEntity(){return this.parent}getEachVertex(e){this.layer.getEachVertex(this.portionId,e)}set aabb(e){this._aabbLocal=e}get aabb(){if(this._aabbWorldDirty){if(h.AABB3ToOBB3(this._aabbLocal,Bn),this.transform?(h.transformOBB3(this.transform.worldMatrix,Bn,On),h.transformOBB3(this.model.worldMatrix,On,Sn),h.OBB3ToAABB3(Sn,this._aabbWorld)):(h.transformOBB3(this.model.worldMatrix,Bn,On),h.OBB3ToAABB3(On,this._aabbWorld)),this.origin){const e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld}_destroy(){this.model.scene._renderer.putPickID(this.pickId)}}const xn=new class{constructor(){this._uint8Arrays={},this._float32Arrays={}}_clear(){this._uint8Arrays={},this._float32Arrays={}}getUInt8Array(e){let t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}getFloat32Array(e){let t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}};let Ln=0;const Mn={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},Fn=new Float32Array([1,1,1,1]),Hn=new Float32Array([0,0,0,1]),Un=h.vec4(),Gn=h.vec3(),jn=h.vec3(),Vn=h.mat4();class kn{constructor(e,t=!1,{instancing:s=!1,edges:n=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=n,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}_getHash(){return this._scene._sectionPlanesState.getHash()}_buildShader(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}_buildVertexShader(){return[""]}_buildFragmentShader(){return[""]}_addMatricesUniformBlockLines(e,t=!1){return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}_addRemapClipPosLines(e,t=1){return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${t}));`),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}getValid(){return this._hash===this._getHash()}setSectionPlanesStateUniforms(e){const t=this._scene,{gl:s}=t.canvas,{model:n,layerIndex:i}=e,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),r=t._sectionPlanesState.sectionPlanes.length;if(a>0){const l=t._sectionPlanesState.sectionPlanes,o=i*r,c=n.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),s.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&d.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,d.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),d.lightMaps.length>0&&d.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,d.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),this._withSAO){const t=r.sao;if(t.possible){const s=l.drawingBufferWidth,n=l.drawingBufferHeight;Un[0]=s,Un[1]=n,Un[2]=t.blendCutoff,Un[3]=t.blendFactor,l.uniform4fv(this._uSAOParams,Un),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++}}if(n){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=r.xrayMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=r.highlightMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===Mn[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=r.selectedMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else l.uniform4fv(this._uColor,this._edges?Hn:Fn)}this._draw({state:o,frameCtx:e,incrementDrawState:i}),l.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,d.memory.programs--}}class Qn extends kn{constructor(e,t,{instancing:s=!1,edges:n=!1}={}){super(e,t,{instancing:s,edges:n})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=n.pickElementsCount||s.indicesBuf.numItems,a=n.pickElementsOffset?n.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,a),i&&n.drawElements++}}}class Wn extends Qn{constructor(e,t){super(e,t,{instancing:!1,edges:!0})}}class zn extends kn{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;this._edges?t.drawElementsInstanced(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0,s.numInstances):(t.drawElementsInstanced(t.TRIANGLES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++)}}class Kn extends zn{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class Yn extends kn{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),i&&n.drawArrays++}}class Xn extends kn{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArraysInstanced(t.POINTS,0,s.positionsBuf.numItems,s.numInstances),i&&n.drawArrays++}}class qn extends kn{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),i&&n.drawElements++}}class Jn extends kn{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElementsInstanced(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++}}class Zn extends Qn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i;const a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class $n extends Qn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching flat-shading draw vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._lightsState,s=e._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),n){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,s=t.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}class ti extends Wn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class si extends Wn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ni extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class ii extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class ai extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec3 worldNormal = octDecode(normal.xy); "),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class ri extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching occlusion vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching occlusion fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class li extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching depth fragment shader"),n.push("precision highp float;"),n.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}}class oi extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class ci extends Qn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry shadow vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push(" int colorFlag = int(flags) & 0xF;"),s.push(" bool visible = (colorFlag > 0);"),s.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push(" if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry shadow fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class ui extends Qn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Triangles batching quality draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),r.push("uniform sampler2D uAOMap;"),r.push("in vec4 vViewPosition;"),r.push("in vec3 vViewNormal;"),r.push("in vec4 vColor;"),r.push("in vec2 vUV;"),r.push("in vec2 vMetallicRoughness;"),n.lightMaps.length>0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick flat normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick flat normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class pi extends Qn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching color texture vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._lightsState,n=e._sectionPlanesState,i=n.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,t=s.lights.length;e4096?e=4096:e<1024&&(e=1024),fi=e}get maxDataTextureHeight(){return fi}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Ii=e}get maxGeometryBatchSize(){return Ii}}const mi=new yi;class vi{constructor(){this.maxVerts=mi.maxGeometryBatchSize,this.maxIndices=3*mi.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const wi=h.mat4(),gi=h.mat4();function Ei(e,t,s){const n=e.length,i=new Uint16Array(n),a=t[0],r=t[1],l=t[2],o=t[3]-a,c=t[4]-r,u=t[5]-l,p=65525,A=p/o,d=p/c,f=p/u,I=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(n))*(i>=0?1:-1),n=e,i=t}return new Int8Array([Math[t](127.5*n+(n<0?-1:0)),Math[s](127.5*i+(i<0?-1:0))])}function Di(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}const Pi=h.vec3(),Ri=h.vec3(),Ci=h.vec3(),_i=h.vec3(),Bi=h.mat4();class Oi extends kn{drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Pi;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ri;if(o){const e=Ci;h.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Bi),y=_i,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),l.indicesBuf.bind(),r.drawElements(r.TRIANGLES,l.indicesBuf.numItems,l.indicesBuf.itemType,0),l.indicesBuf.unbind()}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Si=h.vec3(),Ni=h.vec3(),xi=h.vec3(),Li=h.vec3(),Mi=h.mat4();class Fi extends kn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Si;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ni;if(o){const e=xi;h.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Mi),y=Li,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElements(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0),l.edgeIndicesBuf.unbind()):r.drawArrays(r.POINTS,0,l.positionsBuf.numItems)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;const s=[];return s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Hi{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Oi(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Fi(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Oi(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Fi(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const Ui={};const Gi=h.mat4(),ji=h.mat4(),Vi=h.vec4([0,0,0,1]),ki=h.vec3(),Qi=h.vec3(),Wi=h.vec3(),zi=h.vec3(),Ki=h.vec3(),Yi=h.vec3(),Xi=h.vec3();class qi{constructor(e){this.model=e.model,this.sortId="TrianglesBatchingLayer"+(e.solid?"-solid":"-surface")+(e.autoNormals?"-autonormals":"-normals")+(e.textureSet&&e.textureSet.colorTexture?"-colorTexture":"")+(e.textureSet&&e.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=di[t];return s||(s=new Ai(e),di[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete di[t],s._destroy()}))),s}(e.model.scene),this._snapBatchingRenderers=function(e){const t=e.id;let s=Ui[t];return s||(s=new Hi(e),Ui[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ui[t],s._destroy()}))),s}(e.model.scene),this._buffer=new vi(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({origin:h.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:e.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=h.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=h.mat3(e.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,e.origin&&this._state.origin.set(e.origin),this.solid=!!e.solid}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=a.length;e0){const e=Gi;y?h.inverseMat4(h.transposeMat4(y,ji),e):h.identityMat4(e,e),function(e,t,s,n,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let r,l,o,c,u,p,A=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(p=0;pu&&(o=r,u=c),r=bi(d,"floor","ceil"),l=Di(r),c=a(d,l),c>u&&(o=r,u=c),r=bi(d,"ceil","ceil"),l=Di(r),c=a(d,l),c>u&&(o=r,u=c),n[i+p+0]=o[0],n[i+p+1]=o[1],n[i+p+2]=0}(e,i,i.length,w.normals,w.normals.length)}if(o)for(let e=0,t=o.length;e0)for(let e=0,t=r.length;e0)for(let e=0,t=l.length;e0){const n=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):Ei(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=h.mat4());if(e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const n=new Int8Array(s.normals);let i=!0;e.normalsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.normals.length,3,t.STATIC_DRAW,i)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.uv.length>0)if(e.uvDecodeMatrix){let n=!1;e.uvBuf=new Oe(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,n)}else{const n=Bt.getUVBounds(s.uv),i=Bt.compressUVs(s.uv,n.min,n.max),a=i.quantized;let r=!1;e.uvDecodeMatrix=h.mat3(i.decodeMatrix),e.uvBuf=new Oe(t,t.ARRAY_BUFFER,a,a.length,2,t.STATIC_DRAW,r)}if(s.metallicRoughness.length>0){const n=new Uint8Array(s.metallicRoughness);let i=!1;e.metallicRoughnessBuf=new Oe(t,t.ARRAY_BUFFER,n,s.metallicRoughness.length,2,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n),a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const n=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}isEmpty(){return!this._state.indicesBuf}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=e,n=this._portions[s],i=4*n.vertsBaseIndex,a=4*n.numVerts,r=this._scratchMemory.getUInt8Array(a),l=t[0],o=t[1],c=t[2],u=t[3];for(let e=0;em)&&(m=e,n.set(v),i&&h.triangleNormal(d,f,I,i),y=!0)}}return y&&i&&(h.transformVec3(this.model.worldNormalMatrix,i,i),h.normalizeVec3(i)),y}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}class Ji extends zn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i,a,r;const l=[];for(l.push("#version 300 es"),l.push("// Instancing geometry drawing vertex shader"),l.push("uniform int renderPass;"),l.push("in vec3 position;"),l.push("in vec2 normal;"),l.push("in vec4 color;"),l.push("in float flags;"),e.entityOffsetsEnabled&&l.push("in vec3 offset;"),l.push("in vec4 modelMatrixCol0;"),l.push("in vec4 modelMatrixCol1;"),l.push("in vec4 modelMatrixCol2;"),l.push("in vec4 modelNormalMatrixCol0;"),l.push("in vec4 modelNormalMatrixCol1;"),l.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(l,!0),e.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;")),l.push("uniform vec4 lightAmbient;"),i=0,a=s.lights.length;i= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"),n&&(l.push("out vec4 vWorldPosition;"),l.push("out float vFlags;")),l.push("out vec4 vColor;"),l.push("void main(void) {"),l.push("int colorFlag = int(flags) & 0xF;"),l.push("if (colorFlag != renderPass) {"),l.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),l.push("} else {"),l.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),l.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix * worldPosition; "),l.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),l.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),l.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),i=0,a=s.lights.length;i0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class Zi extends zn{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState;let n,i;const a=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry flat-shading drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),a){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}for(r.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),r.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),r.push("float lambertian = 1.0;"),r.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),r.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),r.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),n=0,i=s.lights.length;n0,s=[];return s.push("#version 300 es"),s.push("// Instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing fill fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ea extends Kn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class ta extends Kn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class sa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class na extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class ia extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec2 normal;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("in vec4 modelNormalMatrixCol0;"),s.push("in vec4 modelNormalMatrixCol1;"),s.push("in vec4 modelNormalMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class aa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class ra extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}class la extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class oa extends zn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}const ca={3e3:"linearToLinear",3001:"sRGBToLinear"};class ua extends zn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Instancing geometry quality drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),r.push("#define PI 3.14159265359"),r.push("#define RECIPROCAL_PI 0.31830988618"),r.push("#define RECIPROCAL_PI2 0.15915494"),r.push("#define EPSILON 1e-6"),r.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),r.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),r.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),r.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),r.push(" return normalize(surf_norm );"),r.push(" }"),r.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),r.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),r.push(" vec2 st0 = dFdx( uv.st );"),r.push(" vec2 st1 = dFdy( uv.st );"),r.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),r.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),r.push(" vec3 N = normalize( surf_norm );"),r.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),r.push(" mat3 tsn = mat3( S, T, N );"),r.push(" return normalize( tsn * mapN );"),r.push("}"),r.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),r.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),r.push("}"),r.push("struct IncidentLight {"),r.push(" vec3 color;"),r.push(" vec3 direction;"),r.push("};"),r.push("struct ReflectedLight {"),r.push(" vec3 diffuse;"),r.push(" vec3 specular;"),r.push("};"),r.push("struct Geometry {"),r.push(" vec3 position;"),r.push(" vec3 viewNormal;"),r.push(" vec3 worldNormal;"),r.push(" vec3 viewEyeDir;"),r.push("};"),r.push("struct Material {"),r.push(" vec3 diffuseColor;"),r.push(" float specularRoughness;"),r.push(" vec3 specularColor;"),r.push(" float shine;"),r.push("};"),r.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),r.push(" float r = ggxRoughness + 0.0001;"),r.push(" return (2.0 / (r * r) - 2.0);"),r.push("}"),r.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),r.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),r.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),r.push("}"),n.reflectionMaps.length>0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = "+ca[n.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = "+ca[n.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&s.push("out float vFlags;"),s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&s.push("vFlags = flags;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),n.push("}"),n}}class pa extends zn{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState;let i,a;const r=s.getNumAllocatedSectionPlanes()>0,l=[];if(l.push("#version 300 es"),l.push("// Instancing geometry drawing fragment shader"),l.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),l.push("precision highp float;"),l.push("precision highp int;"),l.push("#else"),l.push("precision mediump float;"),l.push("precision mediump int;"),l.push("#endif"),e.logarithmicDepthBufferEnabled&&(l.push("in float isPerspective;"),l.push("uniform float logDepthBufFC;"),l.push("in float vFragDepth;")),l.push("uniform sampler2D uColorMap;"),this._withSAO&&(l.push("uniform sampler2D uOcclusionTexture;"),l.push("uniform vec4 uSAOParams;"),l.push("const float packUpscale = 256. / 255.;"),l.push("const float unpackDownScale = 255. / 256.;"),l.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),l.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),l.push("float unpackRGBToFloat( const in vec4 v ) {"),l.push(" return dot( v, unPackFactors );"),l.push("}")),l.push("uniform float gammaFactor;"),l.push("vec4 linearToLinear( in vec4 value ) {"),l.push(" return value;"),l.push("}"),l.push("vec4 sRGBToLinear( in vec4 value ) {"),l.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),l.push("}"),l.push("vec4 gammaToLinear( in vec4 value) {"),l.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),l.push("}"),t&&(l.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),l.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),l.push("}")),r){l.push("in vec4 vWorldPosition;"),l.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),l.push(" if (clippable) {"),l.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),l.push(" discard;"),l.push(" }"),l.push("}")}for(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),l.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),l.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),l.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,a=n.lights.length;i0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ga=h.vec3(),Ea=h.vec3(),Ta=h.vec3(),ba=h.vec3(),Da=h.mat4();class Pa extends kn{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=ga;let I,y;if(f[0]=h.safeInv(A[3]-A[0])*h.MAX_INT,f[1]=h.safeInv(A[4]-A[1])*h.MAX_INT,f[2]=h.safeInv(A[5]-A[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(f[0]),e.snapPickCoordinateScale[1]=h.safeInv(f[1]),e.snapPickCoordinateScale[2]=h.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Ea;if(o){const e=h.transformPoint3(u,o,Ta);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=G(d,t,Da),y=ba,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(p,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(l.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(l.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(l.modelMatrixCol2Buf),r.vertexAttribDivisor(this._aModelMatrixCol0.location,1),r.vertexAttribDivisor(this._aModelMatrixCol1.location,1),r.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(l.flagsBuf),r.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElementsInstanced(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0,l.numInstances),l.edgeIndicesBuf.unbind()):r.drawArraysInstanced(r.POINTS,0,l.positionsBuf.numItems,l.numInstances),r.vertexAttribDivisor(this._aModelMatrixCol0.location,0),r.vertexAttribDivisor(this._aModelMatrixCol1.location,0),r.vertexAttribDivisor(this._aModelMatrixCol2.location,0),r.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&r.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Ra{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new wa(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Pa(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new wa(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Pa(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const Ca={};const _a=new Float32Array(1),Ba=h.vec4([0,0,0,1]),Oa=new Float32Array(3),Sa=h.vec3(),Na=h.vec3(),xa=h.vec3(),La=h.vec3(),Ma=h.vec3(),Fa=h.vec3(),Ha=h.vec3(),Ua=new Float32Array(4);class Ga{constructor(e){this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._instancingRenderers=function(e){const t=e.id;let s=da[t];return s||(s=new Aa(e),da[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete da[t],s._destroy()}))),s}(e.model.scene),this._snapInstancingRenderers=function(e){const t=e.id;let s=Ca[t];return s||(s=new Ra(e),Ca[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ca[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({numInstances:0,obb:h.OBB3(),origin:h.vec3(),geometry:e.geometry,textureSet:e.textureSet,pbrSupported:!1,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,e.origin&&this._state.origin.set(e.origin),this._finalized=!1,this.solid=!!e.solid,this.numIndices=e.geometry.numIndices}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new Oe(n,n.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,n.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new Oe(n,n.ARRAY_BUFFER,t,this._metallicRoughness.length,2,n.STATIC_DRAW,s)}if(a>0){let t=!1;e.flagsBuf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(a),a,1,n.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,n.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new Oe(n,n.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,n.STATIC_DRAW,s),e.positionsDecodeMatrix=h.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),i=!1;e.colorsBuf=new Oe(n,n.ARRAY_BUFFER,s,s.length,4,n.STATIC_DRAW,i)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Oe(n,n.ARRAY_BUFFER,s,s.length,2,n.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,n.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Oe(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,n.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Oe(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Oe(n,n.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,n.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&s&&s.colorTexture&&s.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!s&&!!s.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?1:0)<<16,_a[0]=A,this._state.flagsBuf&&this._state.flagsBuf.setData(_a,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Oa[0]=t[0],Oa[1]=t[1],Oa[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(Oa,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const s=this._state,n=s.geometry,i=this._portions[e];if(!i)return void this.model.error("portion not found: "+e);const a=n.quantizedPositions,r=s.origin,l=i.offset,o=r[0]+l[0],c=r[1]+l[1],u=r[2]+l[2],p=Ba,A=i.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=a.length;ev)&&(v=e,n.set(w),i&&h.triangleNormal(f,I,y,i),m=!0)}}return m&&i&&(h.transformVec3(l.normalMatrix,i,i),h.transformVec3(this.model.worldNormalMatrix,i,i),h.normalizeVec3(i)),m}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}class ja extends qn{drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Va extends qn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class ka{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ja(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Va(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const Qa={};class Wa{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class za{constructor(e){this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Qa[t];return s||(s=new ka(e),Qa[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Qa[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new Wa(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:h.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=h.vec3(e.origin))}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ei(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.colors.length>0){const n=s.colors.length/4,i=new Float32Array(n);let a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2],c=t[3];for(let e=0;e0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 lightAmbient;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class Ya extends Jn{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 color;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class Xa{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ka(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Ya(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const qa={};const Ja=new Uint8Array(4),Za=new Float32Array(1),$a=new Float32Array(3),er=new Float32Array(4);class tr{constructor(e){this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._linesInstancingRenderers=function(e){const t=e.id;let s=qa[t];return s||(s=new Xa(e),qa[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete qa[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({obb:h.OBB3(),numInstances:0,origin:null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=h.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new Oe(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(s>0){let t=!1;this._state.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(s),s,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Ja[0]=t[0],Ja[1]=t[1],Ja[2]=t[2],Ja[3]=t[3],this._state.colorsBuf.setData(Ja,4*e,4)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?255:0)<<16,Za[0]=A,this._state.flagsBuf.setData(Za,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?($a[0]=t[0],$a[1]=t[1],$a[2]=t[2],this._state.offsetsBuf.setData($a,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;er[0]=t[0],er[1]=t[4],er[2]=t[8],er[3]=t[12],this._state.modelMatrixCol0Buf.setData(er,s),er[0]=t[1],er[1]=t[5],er[2]=t[9],er[3]=t[13],this._state.modelMatrixCol1Buf.setData(er,s),er[0]=t[2],er[1]=t[6],er[2]=t[10],er[3]=t[14],this._state.modelMatrixCol2Buf.setData(er,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawPickNormals(e,t){}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}class sr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial,n=[];return n.push("#version 300 es"),n.push("// Points batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class nr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}class ir extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class ar extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batched pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batched pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class rr extends Yn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push(" gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}class lr{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new sr(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new nr(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ir(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ar(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new rr(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const or={};class cr{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]}}class ur{constructor(e){this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._pointsBatchingRenderers=function(e){const t=e.id;let s=or[t];return s||(s=new lr(e),or[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete or[t],s._destroy()}))),s}(e.model.scene),this._buffer=new cr(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Je({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:h.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=h.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=h.vec3(e.origin))}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ei(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n);let a=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2];for(let e=0;e0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class pr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 silhouetteColor;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ar extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick mesh fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class dr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class fr extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Ir extends Xn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class yr extends Xn{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("gl_PointSize = pointSize;"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }"),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class mr{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new hr(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new pr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Ir(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ar(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new dr(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new fr(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new yr(this._scene)),this._shadowRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}const vr={};const wr=new Uint8Array(4),gr=new Float32Array(1),Er=new Float32Array(3),Tr=new Float32Array(4);class br{constructor(e){this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._pointsInstancingRenderers=function(e){const t=e.id;let s=vr[t];return s||(s=new mr(e),vr[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete vr[t],s._destroy()}))),s}(e.model.scene),this._aabb=h.collapseAABB3(),this._state=new Je({obb:h.OBB3(),numInstances:0,origin:e.origin?h.vec3(e.origin):null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let n=!1;s.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,n)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;s.offsetsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(n.positionsCompressed&&n.positionsCompressed.length>0){const t=!1;s.positionsBuf=new Oe(e,e.ARRAY_BUFFER,n.positionsCompressed,n.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=h.mat4(n.positionsDecodeMatrix)}if(n.colorsCompressed&&n.colorsCompressed.length>0){const t=new Uint8Array(n.colorsCompressed),i=!1;s.colorsBuf=new Oe(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,i)}if(this._modelMatrixCol0.length>0){const t=!1;s.modelMatrixCol0Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),s.modelMatrixCol1Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),s.modelMatrixCol2Buf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){const t=!1;s.pickColorsBuf=new Oe(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}s.geometry=null,this._finalized=!0}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";wr[0]=t[0],wr[1]=t[1],wr[2]=t[2],this._state.colorsBuf.setData(wr,3*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&Q),i=!!(t&X),a=!!(t&q),r=!!(t&J),l=!!(t&Z),o=!!(t&z),c=!!(t&W);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?Mn.NOT_RENDERED:s?Mn.COLOR_TRANSPARENT:Mn.COLOR_OPAQUE,h=!n||c?Mn.NOT_RENDERED:r?Mn.SILHOUETTE_SELECTED:a?Mn.SILHOUETTE_HIGHLIGHTED:i?Mn.SILHOUETTE_XRAYED:Mn.NOT_RENDERED;let p=0;p=!n||c?Mn.NOT_RENDERED:r?Mn.EDGES_SELECTED:a?Mn.EDGES_HIGHLIGHTED:i?Mn.EDGES_XRAYED:l?s?Mn.EDGES_COLOR_TRANSPARENT:Mn.EDGES_COLOR_OPAQUE:Mn.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?Mn.PICK:Mn.NOT_RENDERED)<<12,A|=(t&K?255:0)<<16,gr[0]=A,this._state.flagsBuf.setData(gr,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Er[0]=t[0],Er[1]=t[1],Er[2]=t[2],this._state.offsetsBuf.setData(Er,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Tr[0]=t[0],Tr[1]=t[4],Tr[2]=t[8],Tr[3]=t[12],this._state.modelMatrixCol0Buf.setData(Tr,s),Tr[0]=t[1],Tr[1]=t[5],Tr[2]=t[9],Tr[3]=t[13],this._state.modelMatrixCol1Buf.setData(Tr,s),Tr[0]=t[2],Tr[1]=t[6],Tr[2]=t[10],Tr[3]=t[14],this._state.modelMatrixCol2Buf.setData(Tr,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,Mn.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,Mn.PICK)}drawPickNormals(e,t){}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}class Dr{constructor(e){this.id=e.id,this.colorTexture=e.colorTexture,this.metallicRoughnessTexture=e.metallicRoughnessTexture,this.normalsTexture=e.normalsTexture,this.emissiveTexture=e.emissiveTexture,this.occlusionTexture=e.occlusionTexture}destroy(){}}class Pr{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const Rr={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class Cr{constructor(e,t,s){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=s}itemStart(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}itemEnd(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}itemError(e){void 0!==this.onError&&this.onError(e)}resolveURL(e){return this.urlModifier?this.urlModifier(e):e}setURLModifier(e){return this.urlModifier=e,this}addHandler(e,t){return this.handlers.push(e,t),this}removeHandler(e){const t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}getHandler(e){for(let t=0,s=this.handlers.length;t{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Or[e])return void Or[e].push({onLoad:t,onProgress:s,onError:n});Or[e]=[],Or[e].push({onLoad:t,onProgress:s,onError:n});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),r=this.mimeType,l=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body.getReader)return t;const s=Or[e],n=t.body.getReader(),i=t.headers.get("Content-Length"),a=i?parseInt(i):0,r=0!==a;let l=0;const o=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{l+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:r,loaded:l,total:a});for(let e=0,t=s.length;e{switch(l){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,r)));case"json":return e.json();default:if(void 0===r)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(r),s=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(s);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{Rr.add(e,t);const s=Or[e];delete Or[e];for(let e=0,n=s.length;e{const s=Or[e];if(void 0===s)throw this.manager.itemError(e),t;delete Or[e];for(let e=0,n=s.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Nr{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let xr=0;class Lr{constructor({viewer:e,transcoderPath:t,workerLimit:s}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new Nr,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const n=e.capabilities;this._workerConfig={astcSupported:n.astcSupported,etc1Supported:n.etc1Supported,etc2Supported:n.etc2Supported,dxtSupported:n.dxtSupported,bptcSupported:n.bptcSupported,pvrtcSupported:n.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new Sr;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new Sr;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const n=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,n]).then((([e,t])=>{const s=Lr.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(Lr.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Lr.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Lr.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([n])),this._transcoderBinary=t,this._workerPool.setWorkerCreator((()=>{const e=new Worker(this._workerSourceURL),t=this._transcoderBinary.slice(0);return e.postMessage({type:"init",config:this._workerConfig,transcoderBinary:t},[t]),e}))})),xr>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),xr++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((n,i)=>{const a=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:a},e))).then((e=>{const s=e.data,{mipmaps:a,width:r,height:l,format:o,type:c,error:u,dfdTransferFn:h,dfdFlags:p}=s;if("error"===c)return i(u);t.setCompressedData({mipmaps:a,props:{format:o,minFilter:1===a.length?1006:1008,magFilter:1===a.length?1006:1008,encoding:2===h?3001:3e3,premultiplyAlpha:!!(1&p)}}),n()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),xr--}}Lr.BasisFormat={ETC1S:0,UASTC_4x4:1},Lr.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},Lr.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},Lr.BasisWorker=function(){let e,t,s;const n=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(r){const u=r.data;switch(u.type){case"init":e=u.config,h=u.transcoderBinary,t=new Promise((e=>{s={wasmBinary:h,onRuntimeInitialized:e},BASIS(s)})).then((()=>{s.initializeBasis(),void 0===s.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:r,hasAlpha:h,mipmaps:p,format:A,dfdTransferFn:d,dfdFlags:f}=function(t){const r=new s.KTX2File(new Uint8Array(t));function u(){r.close(),r.delete()}if(!r.isValid())throw u(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const h=r.isUASTC()?a.UASTC_4x4:a.ETC1S,p=r.getWidth(),A=r.getHeight(),d=r.getLevels(),f=r.getHasAlpha(),I=r.getDFDTransferFunc(),y=r.getDFDFlags(),{transcoderFormat:m,engineFormat:v}=function(t,s,r,u){let h,p;const A=t===a.ETC1S?l:o;for(let n=0;n{delete Mr[t],s.destroy()}))),s} /** * @author https://github.com/tmarti, with support from https://tribia.com/ * @license MIT @@ -14,7 +14,7 @@ /** * @author https://github.com/tmarti, with support from https://tribia.com/ * @license MIT - **/let Vr=null;function kr(e,t){const s=3*e,n=3*t;let i,a,r,l,o,c;const u=Math.min(i=Vr[s],a=Vr[s+1],r=Vr[s+2]),h=Math.min(l=Vr[n],o=Vr[n+1],c=Vr[n+2]);if(u!==h)return u-h;const p=Math.max(i,a,r),A=Math.max(l,o,c);return p!==A?p-A:0}let Qr=null;function Wr(e,t){let s=Qr[2*e]-Qr[2*t];return 0!==s?s:Qr[2*e+1]-Qr[2*t+1]}function zr(e,t,s=!1){const n=e.positionsCompressed||[],i=function(e,t){const s=new Int32Array(e.length/3);for(let e=0,t=s.length;e>t;s.sort(kr);const n=new Int32Array(e.length);for(let t=0,i=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}Qr=new Int32Array(e),t.sort(Wr);const s=new Int32Array(e.length);for(let n=0,i=t.length;nt){let s=e;e=t,t=s}function s(s,n){return s!==e?e-s:n!==t?t-n:0}let n=0,i=(a.length>>1)-1;for(;n<=i;){const e=i+n>>1,t=s(a[2*e],a[2*e+1]);if(t>0)n=e+1;else{if(!(t<0))return e;i=e-1}}return-n-1}const l=new Int32Array(a.length/2);l.fill(0);const o=n.length/3;if(o>8*(1<p.maxNumPositions&&(p=h()),p.bucketNumber>8)return[e];let d;-1===c[o]&&(c[o]=p.numPositions++,p.positionsCompressed.push(n[3*o]),p.positionsCompressed.push(n[3*o+1]),p.positionsCompressed.push(n[3*o+2])),-1===c[u]&&(c[u]=p.numPositions++,p.positionsCompressed.push(n[3*u]),p.positionsCompressed.push(n[3*u+1]),p.positionsCompressed.push(n[3*u+2])),-1===c[A]&&(c[A]=p.numPositions++,p.positionsCompressed.push(n[3*A]),p.positionsCompressed.push(n[3*A+1]),p.positionsCompressed.push(n[3*A+2])),p.indices.push(c[o]),p.indices.push(c[u]),p.indices.push(c[A]),(d=r(o,u))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(o,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(u,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]]))}const A=t/8*2,d=t/8,f=2*n.length+(i.length+a.length)*A;let I=0,y=-n.length/3;return u.forEach((e=>{I+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),I>f?[e]:(s&&function(e,t){const s={},n={};let i=0;e.forEach((e=>{const t=e.indices,a=e.edgeIndices,r=e.positionsCompressed;for(let e=0,n=t.length;e0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Be(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uLightAmbient=n.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const i=s.lights;let a;for(let e=0,t=i.length;e0;let i;const a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const $r=new Float32Array([1,1,1]),el=h.vec3(),tl=h.vec3(),sl=h.vec3();h.vec3();const nl=h.mat4();class il{constructor(e,t){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a,d=i.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=el;if(c){const t=tl;h.transformPoint3(p,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,nl),I=sl,I[0]=i.eye[0]-e[0],I[1]=i.eye[1]-e[1],I[2]=i.eye[2]-e[2]}else f=d,I=i.eye;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s===Mn.SILHOUETTE_XRAYED){const e=n.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.SILHOUETTE_HIGHLIGHTED){const e=n.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.SILHOUETTE_SELECTED){const e=n.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,$r);if(n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=n._sectionPlanesState.getNumAllocatedSectionPlanes(),m=n._sectionPlanesState.sectionPlanes.length;if(y>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture silhouette vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.y) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = color;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const al=new Float32Array([0,0,0,1]),rl=h.vec3(),ll=h.vec3();h.vec3();const ol=h.mat4();class cl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=rl;if(I){const t=h.transformPoint3(p,c,ll);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,ol)}else f=d;if(r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s===Mn.EDGES_XRAYED){const e=i.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.EDGES_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.EDGES_SELECTED){const e=i.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,al);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uWorldMatrix=s.getLocation("worldMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ul=h.vec3(),hl=h.vec3();h.vec3();const pl=h.mat4();class Al{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=ul;if(I){const t=h.transformPoint3(p,c,hl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,pl)}else f=d;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled,s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uObjectPerObjectOffsets;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vec4 rgb = vec4(color.rgba);"),s.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const dl=h.vec3(),fl=h.vec3(),Il=h.vec3(),yl=h.mat4();class ml{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n;let d,f;o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=dl;if(I){const t=h.transformPoint3(p,c,fl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(a.viewMatrix,e,yl),f=Il,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=a.viewMatrix,f=a.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(a.project.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,e)}const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("smooth out vec4 vWorldPosition;"),s.push("flat out uvec4 vFlags2;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uvec4 vFlags2;");for(var n=0;n 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outPickColor = vPickColor; "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vl=h.vec3(),wl=h.vec3(),gl=h.vec3();h.vec3();const El=h.mat4();class Tl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=e.pickViewMatrix||a.viewMatrix;let f,I;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const t=vl;if(c){const e=wl;h.transformPoint3(p,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],f=G(d,t,El),I=gl,I[0]=a.eye[0]-t[0],I[1]=a.eye[1]-t[1],I[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,I=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniform1f(this._uPickZNear,e.pickZNear),r.uniform1f(this._uPickZFar,e.pickZFar),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(var n=0;n 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outPackedDepth = packDepth(zNormalizedDepth); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bl=h.vec3(),Dl=h.vec3(),Pl=h.vec3(),Rl=h.vec3();h.vec3();const Cl=h.mat4();class _l{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=bl;let y,m;I[0]=h.safeInv(d[3]-d[0])*h.MAX_INT,I[1]=h.safeInv(d[4]-d[1])*h.MAX_INT,I[2]=h.safeInv(d[5]-d[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(I[0]),e.snapPickCoordinateScale[1]=h.safeInv(I[1]),e.snapPickCoordinateScale[2]=h.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Dl;if(v){const e=h.transformPoint3(p,c,Pl);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=G(f,t,Cl),m=Rl,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(T,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(T,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(T,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uSnapVectorA;"),s.push("uniform vec2 uSnapInvVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),s.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vViewPosition = clipPos;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Bl=h.vec3(),Ol=h.vec3(),Sl=h.vec3(),Nl=h.vec3();h.vec3();const xl=h.mat4();class Ll{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=Bl;let y,m;I[0]=h.safeInv(d[3]-d[0])*h.MAX_INT,I[1]=h.safeInv(d[4]-d[1])*h.MAX_INT,I[2]=h.safeInv(d[5]-d[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(I[0]),e.snapPickCoordinateScale[1]=h.safeInv(I[1]),e.snapPickCoordinateScale[2]=h.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Ol;if(v){const e=Sl;h.transformPoint3(p,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=G(f,t,xl),m=Nl,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this._uVectorA,e.snapVectorA),r.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uVectorAB;"),s.push("uniform vec2 uInverseVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),s.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" } else {"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ml=h.vec3(),Fl=h.vec3(),Hl=h.vec3();h.vec3();const Ul=h.mat4();class Gl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=e.pickViewMatrix||a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=Ml;if(c){const t=Fl;h.transformPoint3(p,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,Ul),I=Hl,I[0]=a.eye[0]-e[0],I[1]=a.eye[1]-e[1],I[2]=a.eye[2]-e[2]}else f=d,I=a.eye;r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" } else {"),s.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureColorRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const jl=h.vec3(),Vl=h.vec3(),kl=h.vec3();h.vec3();const Ql=h.mat4();class Wl{constructor(e){this._scene=e,this._allocate(),this._hash=this._getHash()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=jl;if(I){const t=h.transformPoint3(p,c,Vl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(i.viewMatrix,e,Ql),f=kl,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPositionsDecodeMatrix=s.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture draw vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out highp vec2 vHighPrecisionZW;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in highp vec2 vHighPrecisionZW;"),s.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zl=h.vec3(),Kl=h.vec3(),Yl=h.vec3();h.vec3();const Xl=h.mat4();class ql{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const I=0!==o[0]||0!==o[1]||0!==o[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(I||y){const e=zl;if(I){const t=Kl;h.transformPoint3(u,o,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=c[0],e[1]+=c[1],e[2]+=c[2],d=G(A,e,Xl),f=Yl,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=A,f=a.eye;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),r.uniformMatrix4fv(this._uWorldNormalMatrix,!1,n.worldNormalMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0,s=[];return s.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("uniform int renderPass;"),s.push("attribute vec3 position;"),e.entityOffsetsEnabled&&s.push("attribute vec3 offset;"),s.push("attribute vec3 normal;"),s.push("attribute vec4 color;"),s.push("attribute vec4 flags;"),s.push("attribute vec4 flags2;"),s.push("uniform mat4 worldMatrix;"),s.push("uniform mat4 worldNormalMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform mat4 viewNormalMatrix;"),s.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("varying float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out vec4 vFlags2;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(ge.SUPPORTED_EXTENSIONS.EXT_frag_depth?s.push("vFragDepth = 1.0 + clipPos.w;"):(s.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),s.push("clipPos.z *= clipPos.w;")),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Jl=h.vec3(),Zl=h.vec3(),$l=h.vec3();h.vec3(),h.vec4();const eo=h.mat4();class to{constructor(e,t){this._scene=e,this._withSAO=t,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=Jl;if(I){const t=h.transformPoint3(p,c,Zl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(i.viewMatrix,e,eo),f=$l,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// trianglesDatatextureNormalsRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("in vec4 vWorldPosition;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class so{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new il(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Tl(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new to(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new _l(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ll(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Zr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Zr(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new il(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Wl(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new ql(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new cl(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Al(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new to(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new to(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Tl(this._scene)),this._pickDepthRenderer}get vertexDepthRenderer(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new _l(this._scene)),this._vertexDepthRenderer}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ll(this._scene)),this._snapDepthBufInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Gl(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const no={};class io{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]}}class ao{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}bindCommonTextures(e,t,s,n,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,n,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}bindTriangleIndicesTextures(e,t,s,n){this.indicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.indicesPerBitnessTextures[n].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,n){this.edgeIndicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[n].bindTexture(e,s,6)}}class ro{constructor(e,t,s,n,i=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=n,this._textureData=i}bindTexture(e,t,s){return e.bindTexture(t,this,s)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const lo={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(lo,null,4));let e=0;Object.keys(lo).forEach((t=>{t.startsWith("size")&&(e+=lo[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/lo.totalPolygons).toFixed(2)}`);let t={};Object.keys(lo).forEach((s=>{s.startsWith("size")&&(t[s]=`${(lo[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class oo{disableBindedTextureFiltering(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}generateTextureForColorsAndFlags(e,t,s,n,i,a,r){const l=t.length;this.numPortions=l;const o=4096,c=Math.ceil(l/512);if(0===c)throw"texture height===0";const u=new Uint8Array(16384*c);lo.sizeDataColorsAndFlags+=u.byteLength,lo.numberOfTextures++;for(let e=0;e>24&255,n[e]>>16&255,n[e]>>8&255,255&n[e]],32*e+16),u.set([i[e]>>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+20),u.set([a[e]>>24&255,a[e]>>16&255,a[e]>>8&255,255&a[e]],32*e+24),u.set([r[e]?1:0,0,0,0],32*e+28);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,o,c),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,c,e.RGBA_INTEGER,e.UNSIGNED_BYTE,u,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new ro(e,h,o,c,u)}generateTextureForObjectOffsets(e,t){const s=512,n=Math.ceil(t/s);if(0===n)throw"texture height===0";const i=new Float32Array(1536*n).fill(0);lo.sizeDataTextureOffsets+=i.byteLength,lo.numberOfTextures++;const a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,n),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,n,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new ro(e,a,s,n,i)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const n=2048,i=Math.ceil(s/512),a=new Float32Array(8192*i);lo.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete no[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new io,this._dataTextureState=new ao,this._dataTextureGenerator=new oo,this._state=new Je({origin:h.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numEdgeIndices8Bits:0,numEdgeIndices16Bits:0,numEdgeIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&lo.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const n=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[n]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let n=0,i=0;e.buckets.forEach((e=>{n+=e.positionsCompressed.length/3,i+=e.indices.length/3})),(this._state.numVertices+n>4096*uo||t+i>4096*uo)&&lo.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+n<=4096*uo&&t+i<=4096*uo}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,n)=>{const i=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${n}`:`${t.id}#${n}`;let a=this._bucketGeometries[i];a||(a=this._createBucketGeometry(t,e),this._bucketGeometries[i]=a);const r=this._createSubPortion(t,a,e);s.push(r)}));const n=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),n}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;lo.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;lo.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.edgeIndices),t.edgeIndices=s}const s=t.positionsCompressed,n=t.indices,i=t.edgeIndices,a=this._buffer;a.positionsCompressed.push(s);const r=a.lenPositionsCompressed/3,l=s.length/3;let o;a.lenPositionsCompressed+=s.length;let c,u=0;if(n){let e;u=n.length/3,l<=256?(e=a.indices8Bits,o=a.lenIndices8Bits/3,a.lenIndices8Bits+=n.length):l<=65536?(e=a.indices16Bits,o=a.lenIndices16Bits/3,a.lenIndices16Bits+=n.length):(e=a.indices32Bits,o=a.lenIndices32Bits/3,a.lenIndices32Bits+=n.length),e.push(n)}let h=0;if(i){let e;h=i.length/2,l<=256?(e=a.edgeIndices8Bits,c=a.lenEdgeIndices8Bits/2,a.lenEdgeIndices8Bits+=i.length):l<=65536?(e=a.edgeIndices16Bits,c=a.lenEdgeIndices16Bits/2,a.lenEdgeIndices16Bits+=i.length):(e=a.edgeIndices32Bits,c=a.lenEdgeIndices32Bits/2,a.lenEdgeIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=l,lo.numberOfGeometries++;return{vertexBase:r,numVertices:l,numTriangles:u,numEdges:h,indicesBase:o,edgeIndicesBase:c,obb:null}}_createSubPortion(e,t,s,n){const i=e.color;e.metallic,e.roughness;const a=e.colors,r=e.opacity,l=e.meshMatrix,o=e.pickColor,c=this._buffer,u=this._state;c.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),c.perObjectInstancePositioningMatrices.push(l||Io),c.perObjectSolid.push(!!e.solid),a?c.perObjectColors.push([255*a[0],255*a[1],255*a[2],255]):i&&c.perObjectColors.push([i[0],i[1],i[2],r]),c.perObjectPickColors.push(o),c.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?u.numIndices8Bits:t.numVertices<=65536?u.numIndices16Bits:u.numIndices32Bits,c.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?u.numEdgeIndices8Bits:t.numVertices<=65536?u.numEdgeIndices16Bits:u.numEdgeIndices32Bits,c.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const h=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=c.perTriangleNumberPortionId8Bits,u.numIndices8Bits+=s,lo.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=c.perTriangleNumberPortionId16Bits,u.numIndices16Bits+=s,lo.totalPolygons16Bits+=t.numTriangles):(e=c.perTriangleNumberPortionId32Bits,u.numIndices32Bits+=s,lo.totalPolygons32Bits+=t.numTriangles),lo.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=c.perEdgeNumberPortionId8Bits,u.numEdgeIndices8Bits+=s,lo.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=c.perEdgeNumberPortionId16Bits,u.numEdgeIndices16Bits+=s,lo.totalEdges16Bits+=t.numEdges):(e=c.perEdgeNumberPortionId32Bits,u.numEdgeIndices32Bits+=s,lo.totalEdges32Bits+=t.numEdges),lo.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId8Bits)),n.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId16Bits)),n.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId32Bits)),n.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,n.indices8Bits,n.lenIndices8Bits)),n.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,n.indices16Bits,n.lenIndices16Bits)),n.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,n.indices32Bits,n.lenIndices32Bits)),n.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(s,n.edgeIndices8Bits,n.lenEdgeIndices8Bits)),n.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(s,n.edgeIndices16Bits,n.lenEdgeIndices16Bits)),n.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(s,n.edgeIndices32Bits,n.lenEdgeIndices32Bits)),t.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}isEmpty(){return 0===this._numPortions}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,po)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,n=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,a=i.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,A.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,po))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const n=this._portionToSubPortionsMap[e];for(let e=0,i=n.length;e=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,po))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectOffsets._texture),n.texSubImage2D(n.TEXTURE_2D,0,0,e,1,1,n.RGB,n.FLOAT,Ao))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,n.RGBA,n.FLOAT,ho))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,Mn.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const s=this.model.backfaces||e.sectioned;if(t.backfaces!==s){const e=t.gl;s?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=s}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT))}drawDepth(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED))}drawEdgesColorOpaque(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,Mn.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,Mn.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,Mn.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,Mn.PICK))}drawSnapInitDepthBuf(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,Mn.PICK))}drawSnapDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,Mn.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,Mn.PICK))}destroy(){if(this._destroyed)return;const e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const mo=h.vec4(4),vo=h.vec4(),wo=h.vec4(),go=h.vec3([1,0,0]),Eo=h.vec3([0,1,0]),To=h.vec3([0,0,1]);h.vec3(3),h.vec3(3);const bo=h.identityMat4();class Do{constructor(e){this._model=e.model,this.id=e.id,this._parentTransform=e.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=h.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=h.identityMat4(new Float32Array(16)),this._worldMatrix=h.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,e.matrix?this.matrix=e.matrix:(this.scale=e.scale,this.position=e.position,e.quaternion||(this.rotation=e.rotation)),e.parent&&e.parent._addChildTransform(this)}_addChildTransform(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}_addMesh(e){this._meshes.push(e),e.transform=this}get parentTransform(){return this._parentTransform}get meshes(){return this._meshes}set position(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),h.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),h.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}get quaternion(){return this._quaternion}set scale(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}get scale(){return this._scale}set matrix(e){this._localMatrix||(this._localMatrix=h.identityMat4()),this._localMatrix.set(e||bo),h.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}get matrix(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=h.identityMat4()),h.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix}get worldMatrix(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}rotate(e,t){return mo[0]=e[0],mo[1]=e[1],mo[2]=e[2],mo[3]=t*h.DEGTORAD,h.angleAxisToQuaternion(mo,vo),h.mulQuaternions(this.quaternion,vo,wo),this.quaternion=wo,this._setLocalMatrixDirty(),this._model.glRedraw(),this}rotateOnWorldAxis(e,t){return mo[0]=e[0],mo[1]=e[1],mo[2]=e[2],mo[3]=t*h.DEGTORAD,h.angleAxisToQuaternion(mo,vo),h.mulQuaternions(vo,this.quaternion,vo),this}rotateX(e){return this.rotate(go,e)}rotateY(e){return this.rotate(Eo,e)}rotateZ(e){return this.rotate(To,e)}translate(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateX(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateY(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateZ(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}_setLocalMatrixDirty(){this._localMatrixDirty=!0,this._transformDirty()}_transformDirty(){this._worldMatrixDirty=!0;for(let e=0,t=this._childTransforms.length;e0){const e=t._meshes;for(let t=0,s=e.length;t0){const e=this._meshes;for(let t=0,s=e.length;t{this._viewMatrixDirty=!0})),this._meshesWithDirtyMatrices=[],this._numMeshesWithDirtyMatrices=0,this._onTick=this.scene.on("tick",(()=>{for(;this._numMeshesWithDirtyMatrices>0;)this._meshesWithDirtyMatrices[--this._numMeshesWithDirtyMatrices]._updateMatrix()})),this._createDefaultTextureSet(),this.visible=t.visible,this.culled=t.culled,this.pickable=t.pickable,this.clippable=t.clippable,this.collidable=t.collidable,this.castsShadow=t.castsShadow,this.receivesShadow=t.receivesShadow,this.xrayed=t.xrayed,this.highlighted=t.highlighted,this.selected=t.selected,this.edges=t.edges,this.colorize=t.colorize,this.opacity=t.opacity,this.backfaces=t.backfaces}_meshMatrixDirty(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}_createDefaultTextureSet(){const e=new Pr({id:"defaultColorTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new Pr({id:"defaultMetalRoughTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new Pr({id:"defaultNormalsTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),n=new Pr({id:"defaultEmissiveTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new Pr({id:"defaultOcclusionTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=s,this._textures.defaultEmissiveTexture=n,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Dr({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:n,occlusionTexture:i})}get isPerformanceModel(){return!0}get transforms(){return this._transforms}get textures(){return this._textures}get textureSets(){return this._textureSets}get meshes(){return this._meshes}get objects(){return this._entities}get origin(){return this._origin}set position(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),h.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),h.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get quaternion(){return this._quaternion}set scale(e){}get scale(){return this._scale}set matrix(e){this._matrix.set(e||So),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),h.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),h.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get matrix(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix}get rotationMatrix(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}_rebuildMatrices(){this._matrixDirty&&(h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),h.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),h.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}get rotationMatrixConjugate(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}_setWorldMatrixDirty(){this._matrixDirty=!0,this._aabbDirty=!0}_transformDirty(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}_sceneModelDirty(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(let e=0,t=this._entityList.length;e0}set visible(e){e=!1!==e,this._visible=e;for(let t=0,s=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,s=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,s=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,s=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,s=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,s=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,s=new Uint8Array(t.length);for(let e=0,n=t.length;e{o.setImage(c,{minFilter:s,magFilter:n,wrapS:i,wrapT:a,wrapR:r,flipY:e.flipY,encoding:l}),this.glRedraw()},c.src=e.src;break;default:this._textureTranscoder?m.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'src': file data is zero length")}),(function(e){this.error(`[createTexture] Can't create texture from 'src': ${e}`)})):this.error(`[createTexture] Can't create texture from 'src' - SceneModel needs to be configured with a TextureTranscoder for this file type ('${t}')`)}}else e.buffers&&(this._textureTranscoder?this._textureTranscoder.transcode(e.buffers,o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'buffers' - SceneModel needs to be configured with a TextureTranscoder for this option"));this._textures[t]=new Pr({id:t,texture:o})}createTextureSet(e){const t=e.id;if(null==t)return void this.error("[createTextureSet] Config missing: id");if(this._textureSets[t])return void this.error(`[createTextureSet] Texture set already created: ${t}`);let s,n,i,a,r;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(s=this._textures[e.colorTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(n=this._textures[e.metallicRoughnessTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(i=this._textures[e.normalsTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(a=this._textures[e.emissiveTextureId],!a)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else a=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(r=this._textures[e.occlusionTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultOcclusionTexture;const l=new Dr({id:t,model:this,colorTexture:s,metallicRoughnessTexture:n,normalsTexture:i,emissiveTexture:a,occlusionTexture:r});return this._textureSets[t]=l,l}createTransform(e){if(void 0===e.id||null===e.id)return void this.error("[createTransform] SceneModel.createTransform() config missing: id");if(this._transforms[e.id])return void this.error(`[createTransform] SceneModel already has a transform with this ID: ${e.id}`);let t;if(this.parentTransformId&&(t=this._transforms[e.parentTransformId],!t))return void this.error("[createTransform] SceneModel.createTransform() config missing: id");const s=new Do({id:e.id,model:this,parentTransform:t,matrix:e.matrix,position:e.position,scale:e.scale,rotation:e.rotation,quaternion:e.quaternion});return this._transforms[s.id]=s,s}createMesh(e){if(void 0===e.id||null===e.id)return void this.error("[createMesh] SceneModel.createMesh() config missing: id");if(this._scheduledMeshes[e.id])return void this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`);if(!(void 0!==e.geometryId)){if(void 0!==e.primitive&&null!==e.primitive||(e.primitive="triangles"),"points"!==e.primitive&&"lines"!==e.primitive&&"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)return void this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`);if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),null;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),null;if(!e.buckets&&!e.indices&&"points"!==e.primitive)return this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),null;if((e.matrix||e.position||e.rotation||e.scale)&&(e.positionsCompressed||e.positionsDecodeBoundary))return this.error("Unexpected params: 'matrix', 'rotation', 'scale', 'position' not allowed with 'positionsCompressed'"),null;const t=!!this._dtxEnabled&&("triangles"===e.primitive||"solid"===e.primitive||"surface"===e.primitive);if(e.origin=e.origin?h.addVec3(this._origin,e.origin,h.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||Co,s=e.position||_o,n=e.rotation||Bo;h.eulerToQuaternion(n,"XYZ",Oo),e.meshMatrix=h.composeMat4(s,Oo,t,h.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Ti(e.positionsDecodeBoundary,h.mat4())),t){if(e.type=2,e.color=e.color?new Uint8Array([Math.floor(255*e.color[0]),Math.floor(255*e.color[1]),Math.floor(255*e.color[2])]):No,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=h.vec3(),s=[];V(e.positions,s,t)&&(e.positions=s,e.origin=h.addVec3(e.origin,t,t))}if(e.positions){const t=h.collapseAABB3();e.positionsDecodeMatrix=h.mat4(),h.expandAABB3Points3(t,e.positions),e.positionsCompressed=Ei(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=h.collapseAABB3();h.expandAABB3Points3(t,e.positionsCompressed),Bt.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=h.collapseAABB3();for(let s=0,n=e.buckets.length;s>24&255,i=s>>16&255,a=s>>8&255,r=255&s;switch(e.pickColor=new Uint8Array([r,a,i,n]),e.solid="solid"===e.primitive,t.origin=h.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}_getNumPrimitives(e){let t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(let s=0,n=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,n=e.textureSetId||"-",i=e.geometryId,a=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${n}.${i}`;let r=this._vboInstancingLayers[a];if(r)return r;let l=e.textureSet;const o=e.geometry;for(;!r;)switch(o.primitive){case"triangles":case"surface":r=new Ga({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!1});break;case"solid":r=new Ga({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!0});break;case"lines":r=new tr({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0});break;case"points":r=new br({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0})}return this._vboInstancingLayers[a]=r,this.layerList.push(r),r}createEntity(e){if(void 0===e.id?e.id=h.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=h.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=Q),this._pickable&&!1!==e.pickable&&(t|=z),this._culled&&!1!==e.culled&&(t|=W),this._clippable&&!1!==e.clippable&&(t|=K),this._collidable&&!1!==e.collidable&&(t|=Y),this._edges&&!1!==e.edges&&(t|=Z),this._xrayed&&!1!==e.xrayed&&(t|=X),this._highlighted&&!1!==e.highlighted&&(t|=q),this._selected&&!1!==e.selected&&(t|=J),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let s=0,n=e.meshIds.length;se.sortIdt.sortId?1:0));for(let e=0,t=this.layerList.length;e0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}_updateRenderFlagsVisibleLayers(){const e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(let t=0,s=this.layerList.length;t0)for(let e=0;e0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){const t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0){this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0))}if(this.numSelectedLayerPortions>0){const t=this.scene.selectedMaterial._state;t.fill&&(t.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){const t=this.scene.highlightMaterial._state;t.fill&&(t.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}drawColorOpaque(e){const t=this.renderFlags;for(let s=0,n=t.visibleLayers.length;s65536?16:8)}else r=[{positionsCompressed:n,indices:i,edgeIndices:a}];return r}class Mo extends _{constructor(e,t={}){if(super(e,t),this._positions=t.positions||[],t.indices)this._indices=t.indices;else{this._indices=[];for(let e=0,t=this._positions.length/3-1;e{var i=e-s,a=t-n;return Math.sqrt(i*i+a*a)};class Ko extends _{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._eventSubs={};var s=this.plugin.viewer.scene;this._originMarker=new ie(s,t.origin),this._targetMarker=new ie(s,t.target),this._originWorld=h.vec3(),this._targetWorld=h.vec3(),this._wp=new Float64Array(24),this._vp=new Float64Array(24),this._pp=new Float64Array(24),this._cp=new Float64Array(8),this._xAxisLabelCulled=!1,this._yAxisLabelCulled=!1,this._zAxisLabelCulled=!1,this._color=t.color||this.plugin.defaultColor;const n=t.onMouseOver?e=>{t.onMouseOver(e,this)}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this)}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._lengthWire=new ae(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._xAxisWire=new ae(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._yAxisWire=new ae(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._zAxisWire=new ae(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._lengthLabel=new le(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._xAxisLabel=new le(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._yAxisLabel=new le(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._zAxisLabel=new le(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._sectionPlanesDirty=!0,this._visible=!1,this._originVisible=!1,this._targetVisible=!1,this._wireVisible=!1,this._axisVisible=!1,this._xAxisVisible=!1,this._yAxisVisible=!1,this._zAxisVisible=!1,this._axisEnabled=!0,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=s.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=s.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=s.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.targetVisible=t.targetVisible,this.wireVisible=t.wireVisible,this.axisVisible=t.axisVisible,this.xAxisVisible=t.xAxisVisible,this.yAxisVisible=t.yAxisVisible,this.zAxisVisible=t.zAxisVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(h.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}const t=this._originMarker.viewPos[2],s=this._targetMarker.viewPos[2];if(t>-.3||s>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){h.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var n=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var r=a.top-t.top,l=a.left-t.left,o=e.canvas.boundary,c=o[2],u=o[3],p=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,I=s.units,y=s.unitsInfo[I].abbrev;for(var A=0,d=n.length;A{const t=e.snappedCanvasPos||e.canvasPos;i=!0,a.set(e.worldPos),r.set(e.canvasPos),0===this._mouseState?(this._markerDiv.style.marginLeft=t[0]-5+"px",this._markerDiv.style.marginTop=t[1]-5+"px",this._markerDiv.style.background="pink",e.snappedToVertex||e.snappedToEdge?(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,this.pointerLens.snapped=!0),this._markerDiv.style.background="greenyellow",this._markerDiv.style.border="2px solid green"):(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.canvasPos,this.pointerLens.snapped=!1),this._markerDiv.style.background="pink",this._markerDiv.style.border="2px solid red"),c=e.entity):(this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px"),n.style.cursor="pointer",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=this._currentDistanceMeasurementInitState.wireVisible,this._currentDistanceMeasurement.axisVisible=this._currentDistanceMeasurementInitState.axisVisible&&this.distanceMeasurementsPlugin.defaultAxisVisible,this._currentDistanceMeasurement.xAxisVisible=this._currentDistanceMeasurementInitState.xAxisVisible&&this.distanceMeasurementsPlugin.defaultXAxisVisible,this._currentDistanceMeasurement.yAxisVisible=this._currentDistanceMeasurementInitState.yAxisVisible&&this.distanceMeasurementsPlugin.defaultYAxisVisible,this._currentDistanceMeasurement.zAxisVisible=this._currentDistanceMeasurementInitState.zAxisVisible&&this.distanceMeasurementsPlugin.defaultZAxisVisible,this._currentDistanceMeasurement.targetVisible=this._currentDistanceMeasurementInitState.targetVisible,this._currentDistanceMeasurement.target.worldPos=a.slice(),this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px")})),n.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(l=e.clientX,o=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>l+20||t.clientXo+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),i=!1,this._markerDiv.style.marginLeft="-100px",this._markerDiv.style.marginTop="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),n.style.cursor="default"})),this._active=!0}deactivate(){if(!this._active)return;this.fire("activated",!1),this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.distanceMeasurementsPlugin.viewer.cameraControl;t.off(this._onCameraControlHoverSnapOrSurface),t.off(this._onCameraControlHoverSnapOrSurfaceOff),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null))}destroy(){this.deactivate(),super.destroy()}}class qo{constructor(){}getMetaModel(e,t,s){m.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getGLTF(e,t,s){m.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getGLB(e,t,s){m.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getArrayBuffer(e,t,s,n){!function(e,t,s,n){var i=()=>{};s=s||i,n=n||i;const a=/^data:(.*?)(;base64)?,(.*)$/,r=t.match(a);if(r){const e=!!r[2];var l=r[3];l=window.decodeURIComponent(l),e&&(l=window.atob(l));try{const e=new ArrayBuffer(l.length),t=new Uint8Array(e);for(var o=0;o{s(e)}),(function(e){n(e)}))}}class Jo{constructor(e={}){this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=e.messages,this.locale=e.locale}set messages(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}loadMessages(e={}){for(let t in e)this._messages[t]=e[t];this.messages=this._messages}clearMessages(){this.messages={}}get locales(){return this._locales}set locale(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}get locale(){return this._locale}translate(e,t){const s=this._messages[this._locale];if(!s)return null;const n=Zo(e,s);return n?t?$o(n,t):n:null}translatePlurals(e,t,s){const n=this._messages[this._locale];if(!n)return null;let i=Zo(e,n);return i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one,i?(i=$o(i,[t]),s&&(i=$o(i,s)),i):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];if(n)for(const e in n)if(n.hasOwnProperty(e)){n[e].callback(t)}}on(t,s){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new e),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let n=this._eventSubs[t];n||(n={},this._eventSubs[t]=n);const i=this._eventSubIDMap.addItem();n[i]={callback:s},this._eventSubEvents[i]=t;const a=this._events[t];return void 0!==a&&s(a),i}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const s=this._eventSubs[t];s&&delete s[e],this._eventSubIDMap.removeItem(e)}}}function Zo(e,t){if(t[e])return t[e];const s=e.split(".");let n=t;for(let e=0,t=s.length;n&&e1?1:e}get t(){return this._t}get tangent(){return this.getTangent(this._t)}get length(){var e=this._getLengths();return e[e.length-1]}getTangent(e){var t=1e-4;void 0===e&&(e=this._t);var s=e-t,n=e+t;s<0&&(s=0),n>1&&(n=1);var i=this.getPoint(s),a=this.getPoint(n),r=h.subVec3(a,i,[]);return h.normalizeVec3(r,[])}getPointAt(e){var t=this.getUToTMapping(e);return this.getPoint(t)}getPoints(e){e||(e=5);var t,s=[];for(t=0;t<=e;t++)s.push(this.getPoint(t/e));return s}_getLengths(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,s,n=[],i=this.getPoint(0),a=0;for(n.push(0),s=1;s<=e;s++)t=this.getPoint(s/e),a+=h.lenVec3(h.subVec3(t,i,[])),n.push(a),i=t;return this.cacheArcLengths=n,n}_updateArcLengths(){this.needsUpdate=!0,this._getLengths()}getUToTMapping(e,t){var s,n=this._getLengths(),i=0,a=n.length;s=t||e*n[a-1];for(var r,l=0,o=a-1;l<=o;)if((r=n[i=Math.floor(l+(o-l)/2)]-s)<0)l=i+1;else{if(!(r>0)){o=i;break}o=i-1}if(n[i=o]===s)return i/(a-1);var c=n[i];return(i+(s-c)/(n[i+1]-c))/(a-1)}}class tc extends ec{constructor(e,t={}){super(e,t),this.points=t.points,this.t=t.t}set points(e){this._points=e||[]}get points(){return this._points}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=this.points;if(!(t.length<3)){var s=(t.length-1)*e,n=Math.floor(s),i=s-n,a=t[0===n?n:n-1],r=t[n],l=t[n>t.length-2?t.length-1:n+1],o=t[n>t.length-3?t.length-1:n+2],c=h.vec3();return c[0]=h.catmullRomInterpolate(a[0],r[0],l[0],o[0],i),c[1]=h.catmullRomInterpolate(a[1],r[1],l[1],o[1],i),c[2]=h.catmullRomInterpolate(a[2],r[2],l[2],o[2],i),c}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}getJSON(){return{points:points,t:this._t}}}const sc=h.vec3();const nc=h.vec3(),ic=h.vec3(),ac=h.vec3(),rc=h.vec3(),lc=h.vec3();class oc extends _{get type(){return"CameraFlightAnimation"}constructor(e,t={}){super(e,t),this._look1=h.vec3(),this._eye1=h.vec3(),this._up1=h.vec3(),this._look2=h.vec3(),this._eye2=h.vec3(),this._up2=h.vec3(),this._orthoScale1=1,this._orthoScale2=1,this._flying=!1,this._flyEyeLookUp=!1,this._flyingEye=!1,this._flyingLook=!1,this._callback=null,this._callbackScope=null,this._time1=null,this._time2=null,this.easing=!1!==t.easing,this.duration=t.duration,this.fit=t.fit,this.fitFOV=t.fitFOV,this.trail=t.trail}flyTo(e,t,s){e=e||this.scene,this._flying&&this.stop(),this._flying=!1,this._flyingEye=!1,this._flyingLook=!1,this._flyingEyeLookUp=!1,this._callback=t,this._callbackScope=s;const n=this.scene.camera,i=!!e.projection&&e.projection!==n.projection;let a,r,l,o,c;if(this._eye1[0]=n.eye[0],this._eye1[1]=n.eye[1],this._eye1[2]=n.eye[2],this._look1[0]=n.look[0],this._look1[1]=n.look[1],this._look1[2]=n.look[2],this._up1[0]=n.up[0],this._up1[1]=n.up[1],this._up1[2]=n.up[2],this._orthoScale1=n.ortho.scale,this._orthoScale2=e.orthoScale||this._orthoScale1,e.aabb)a=e.aabb;else if(6===e.length)a=e;else if(e.eye&&e.look||e.up)r=e.eye,l=e.look,o=e.up;else if(e.eye)r=e.eye;else if(e.look)l=e.look;else{let n=e;if((m.isNumeric(n)||m.isString(n))&&(c=n,n=this.scene.components[c],!n))return this.error("Component not found: "+m.inQuotes(c)),void(t&&(s?t.call(s):t()));i||(a=n.aabb||this.scene.aabb)}const u=e.poi;if(a){if(a[3]=1;e>1&&(e=1);const s=this.easing?oc._ease(e,0,1,1):e,n=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(h.subVec3(n.eye,n.look,lc),n.eye=h.lerpVec3(s,0,1,this._eye1,this._eye2,ac),n.look=h.subVec3(ac,lc,ic)):this._flyingLook&&(n.look=h.lerpVec3(s,0,1,this._look1,this._look2,ic),n.up=h.lerpVec3(s,0,1,this._up1,this._up2,rc)):this._flyingEyeLookUp&&(n.eye=h.lerpVec3(s,0,1,this._eye1,this._eye2,ac),n.look=h.lerpVec3(s,0,1,this._look1,this._look2,ic),n.up=h.lerpVec3(s,0,1,this._up1,this._up2,rc)),this._projection2){const t="ortho"===this._projection2?oc._easeOutExpo(e,0,1,1):oc._easeInCubic(e,0,1,1);n.customProjection.matrix=h.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else n.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return n.ortho.scale=this._orthoScale2,void this.stop();R.scheduleTask(this._update,this)}static _ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}static _easeInCubic(e,t,s,n){return s*(e/=n)*e*e+t}static _easeOutExpo(e,t,s,n){return s*(1-Math.pow(2,-10*e/n))+t}stop(){if(!this._flying)return;this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);const e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}cancel(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}set duration(e){this._duration=e?1e3*e:500,this.stop()}get duration(){return this._duration/1e3}set fit(e){this._fit=!1!==e}get fit(){return this._fit}set fitFOV(e){this._fitFOV=e||45}get fitFOV(){return this._fitFOV}set trail(e){this._trail=!!e}get trail(){return this._trail}destroy(){this.stop(),super.destroy()}}class cc extends _{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new oc(this),this._t=0,this.state=cc.SCRUBBING,this._playingFromT=0,this._playingToT=0,this._playingRate=t.playingRate||1,this._playingDir=1,this._lastTime=null,this.cameraPath=t.cameraPath,this._tick=this.scene.on("tick",this._updateT,this)}_updateT(){const e=this._cameraPath;if(!e)return;let t,s;const n=performance.now(),i=this._lastTime?.001*(n-this._lastTime):0;if(this._lastTime=n,0!==i)switch(this.state){case cc.SCRUBBING:return;case cc.PLAYING:if(this._t+=this._playingRate*i,t=this._cameraPath.frames.length,0===t||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=cc.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case cc.PLAYING_TO:s=this._t+this._playingRate*i*this._playingDir,(this._playingDir<0&&s<=this._playingToT||this._playingDir>0&&s>=this._playingToT)&&(s=this._playingToT,this.state=cc.SCRUBBING,this.fire("stopped")),this._t=s,e.loadFrame(this._t)}}_ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}set cameraPath(e){this._cameraPath=e}get cameraPath(){return this._cameraPath}set rate(e){this._playingRate=e}get rate(){return this._playingRate}play(){this._cameraPath&&(this._lastTime=null,this.state=cc.PLAYING)}playToT(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=cc.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const s=t.frames[e];s?this.playToT(s.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const s=this._cameraPath;if(!s)return;const n=s.frames[e];n?(this.state=cc.SCRUBBING,this._cameraFlightAnimation.flyTo(n,t)):this.error("flyToFrame - frame index out of range: "+e)}scrubToT(e){const t=this._cameraPath;if(!t)return;this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=cc.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=cc.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=cc.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}cc.STOPPED=0,cc.SCRUBBING=1,cc.PLAYING=2,cc.PLAYING_TO=3;const uc=h.vec3(),hc=h.vec3();h.vec3();const pc=h.vec3([0,-1,0]),Ac=h.vec4([0,0,0,1]);function dc(e){if(!fc(e.width)||!fc(e.height)){const t=document.createElement("canvas");t.width=Ic(e.width),t.height=Ic(e.height);t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function fc(e){return 0==(e&e-1)}function Ic(e){--e;for(let t=1;t<32;t<<=1)e|=e>>t;return e+1}class yc extends _{get type(){return"CubeTexture"}constructor(e,t={}){super(e,t);const s=this.scene.canvas.gl;this._state=new Je({texture:new fn({gl:s,target:s.TEXTURE_CUBE_MAP}),flipY:this._checkFlipY(t.minFilter),encoding:this._checkEncoding(t.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),this._src=t.src,this._images=[],this._loadSrc(t.src),d.memory.textures++}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}_loadSrc(e){const t=this,s=this.scene.canvas.gl;this._images=[];let n=!1,i=0;for(let a=0;a{i(),t()})):(s.eye=this._eye,s.look=this._look,s.up=this._up,i(),s.projection=n.projection)}}const vc=h.vec3();const wc=h.vec3();class gc{constructor(){this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsHasColorize=[],this.objectsOpacity=[],this.numObjects=0}saveObjects(e,t){this.numObjects=0,this._mask=t?m.apply(t,{}):null;const s=e.objects,n=!t||t.visible,i=!t||t.edges,a=!t||t.xrayed,r=!t||t.highlighted,l=!t||t.selected,o=!t||t.clippable,c=!t||t.pickable,u=!t||t.colorize,h=!t||t.opacity;for(let e in s)if(s.hasOwnProperty(e)){const t=s[e],p=this.numObjects;if(n&&(this.objectsVisible[p]=t.visible),i&&(this.objectsEdges[p]=t.edges),a&&(this.objectsXrayed[p]=t.xrayed),r&&(this.objectsHighlighted[p]=t.highlighted),l&&(this.objectsSelected[p]=t.selected),o&&(this.objectsClippable[p]=t.clippable),c&&(this.objectsPickable[p]=t.pickable),u){const e=t.colorize;e?(this.objectsColorize[3*p+0]=e[0],this.objectsColorize[3*p+1]=e[1],this.objectsColorize[3*p+2]=e[2],this.objectsHasColorize[p]=!0):this.objectsHasColorize[p]=!1}h&&(this.objectsOpacity[p]=t.opacity),this.numObjects++}}restoreObjects(e){const t=this._mask,s=!t||t.visible,n=!t||t.edges,i=!t||t.xrayed,a=!t||t.highlighted,r=!t||t.selected,l=!t||t.clippable,o=!t||t.pickable,c=!t||t.colorize,u=!t||t.opacity;var h=0;const p=e.objects;for(let e in p)if(p.hasOwnProperty(e)){const t=p[e];s&&(t.visible=this.objectsVisible[h]),n&&(t.edges=this.objectsEdges[h]),i&&(t.xrayed=this.objectsXrayed[h]),a&&(t.highlighted=this.objectsHighlighted[h]),r&&(t.selected=this.objectsSelected[h]),l&&(t.clippable=this.objectsClippable[h]),o&&(t.pickable=this.objectsPickable[h]),c&&(this.objectsHasColorize[h]?(wc[0]=this.objectsColorize[3*h+0],wc[1]=this.objectsColorize[3*h+1],wc[2]=this.objectsColorize[3*h+2],t.colorize=wc):t.colorize=null),u&&(t.opacity=this.objectsOpacity[h]),h++}}}class Ec extends _{constructor(e,t={}){super(e,t),this._skyboxMesh=new Vs(this,{geometry:new Nt(this,{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Ht(this,{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new gn(this,{src:t.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:t.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),this.size=t.size,this.active=t.active}set size(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}get size(){return this._size}set active(e){this._skyboxMesh.visible=e}get active(){return this._skyboxMesh.visible}}const Tc=h.vec4(),bc=h.vec4(),Dc=h.vec3(),Pc=h.vec3(),Rc=h.vec3(),Cc=h.vec4(),_c=h.vec4(),Bc=h.vec4();class Oc{constructor(e){this._scene=e}dollyToCanvasPos(e,t,s){let n=!1;const i=this._scene.camera;if(e){const t=h.subVec3(e,i.eye,Dc);n=h.lenVec3(t){this._cameraDirty=!0})),this._onProjMatrix=this._scene.camera.on("projMatrix",(()=>{this._cameraDirty=!0})),this._onTick=this._scene.on("tick",(()=>{this.updatePivotElement(),this.updatePivotSphere()}))}createPivotSphere(){const e=this.getPivotPos(),t=h.vec3();h.decomposeMat4(h.inverseMat4(this._scene.viewer.camera.viewMatrix,h.mat4()),t,h.vec4(),h.vec3());const s=h.distVec3(t,e);let n=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(n/=this._scene.camera.ortho.scale/2),j(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new bn(this._scene,Ws({radius:n})),this._pivotSphere=new Vs(this._scene,{geometry:this._pivotSphereGeometry,material:this._pivotSphereMaterial,pickable:!1,position:this._rtcPos,rtcCenter:this._rtcCenter})}destroyPivotSphere(){this._pivotSphere&&(this._pivotSphere.destroy(),this._pivotSphere=null),this._pivotSphereGeometry&&(this._pivotSphereGeometry.destroy(),this._pivotSphereGeometry=null)}updatePivotElement(){const e=this._scene.camera,t=this._scene.canvas;if(this._pivoting&&this._cameraDirty){h.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,h.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const s=t.boundary,n=s[2],i=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*n/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*i/2);let a=t._lastBoundingClientRect;if(!a||t._canvasSizeChanged){const e=t.canvas;a=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(a.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(a.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(j(this.getPivotPos(),this._rtcCenter,this._rtcPos),h.compareVec3(this._rtcPos,this._pivotSphere.position)||(this.destroyPivotSphere(),this.createPivotSphere()))}setPivotElement(e){this._pivotElement=e}enablePivotSphere(e={}){this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);const t=e.color||[1,0,0];this._pivotSphereMaterial=new Ht(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}disablePivotSphere(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}startPivot(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;const e=this._scene.camera;let t=h.lookAtMat4v(e.eye,e.look,e.worldUp);h.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const s=this.getPivotPos();this._cameraOffset[2]+=h.distVec3(e.eye,s),t=h.inverseMat4(t);const n=h.transformVec3(t,this._cameraOffset),i=h.vec3();if(h.subVec3(e.eye,s,i),h.addVec3(i,n),e.zUp){const e=i[1];i[1]=i[2],i[2]=e}this._radius=h.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=h.normalizeVec3(h.subVec3(e.look,e.eye,Sc)),s=h.cross3Vec3(t,e.worldUp,Nc);return h.sqLenVec3(s)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,s=Math.abs(h.distVec3(this._scene.center,t.eye)),n=t.project.transposedMatrix,i=n.subarray(8,12),a=n.subarray(12),r=[0,0,-1,1],l=h.dotVec4(r,i)/h.dotVec4(r,a),o=Lc;t.project.unproject(e,l,Mc,Fc,o);const c=h.normalizeVec3(h.subVec3(o,t.eye,Sc)),u=h.addVec3(t.eye,h.mulVec3Scalar(c,s,Nc),xc);this.setPivotPos(u)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const s=this._scene.camera;var n=-e;const i=-t;1===s.worldUp[2]&&(n=-n),this._azimuth+=.01*-n,this._polar+=.01*i,this._polar=h.clamp(this._polar,.001,Math.PI-.001);const a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===s.worldUp[2]){const e=a[1];a[1]=a[2],a[2]=e}const r=h.lenVec3(h.subVec3(s.look,s.eye,h.vec3())),l=this.getPivotPos();h.addVec3(a,l);let o=h.lookAtMat4v(a,l,s.worldUp);o=h.inverseMat4(o);const c=h.transformVec3(o,this._cameraOffset);o[12]-=c[0],o[13]-=c[1],o[14]-=c[2];const u=[o[8],o[9],o[10]];s.eye=[o[12],o[13],o[14]],h.subVec3(s.eye,h.mulVec3Scalar(u,r),s.look),s.up=[o[4],o[5],o[6]],this.showPivot()}showPivot(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}hidePivot(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}endPivot(){this._pivoting=!1}destroy(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}class Uc{constructor(e,t){this._scene=e.scene,this._cameraControl=e,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=t,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=h.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}update(){if(!this._configs.pointerEnabled)return;if(!this.schedulePickEntity&&!this.schedulePickSurface)return;const e=`${~~this.pickCursorPos[0]}-${~~this.pickCursorPos[1]}-${this.scheduleSnapOrPick}-${this.schedulePickSurface}-${this.schedulePickEntity}`;if(this._lastHash===e)return;this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;const t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){const e=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});e&&(e.snappedToEdge||e.snappedToVertex)?(this.snapPickResult=e,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){const e=this.pickResult.canvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){const e=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}fireEvents(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){const e=new Te;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){const e=this.pickResult.entity.id;this._lastPickedEntityId!==e&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=e)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}const Gc=h.vec2();class jc{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController;let r,l,o,c=0,u=0,p=0,A=0,d=!1;const f=h.vec3();let I=!0;const y=this._scene.canvas.canvas,m=[];function v(e=!0){y.style.cursor="move",c=n.pointerCanvasPos[0],u=n.pointerCanvasPos[1],p=n.pointerCanvasPos[0],A=n.pointerCanvasPos[1],e&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(d=!0,f.set(a.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:m[e.input.KEY_SHIFT]||s.planView?(r=!0,v()):(r=!0,v(!1));break;case 2:l=!0,v();break;case 3:o=!0,s.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!r&&!l&&!o)return;const t=e.canvas.boundary,a=t[2],p=t[3],A=n.pointerCanvasPos[0],I=n.pointerCanvasPos[1];if(m[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&l||s.panRightClick&&o){const t=A-c,s=I-u,n=e.camera;if("perspective"===n.projection){const a=Math.abs(d?h.lenVec3(h.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=1.5*t*a/p,i.panDeltaY+=1.5*s*a/p}else i.panDeltaX+=.5*n.ortho.scale*(t/p),i.panDeltaY+=.5*n.ortho.scale*(s/p)}else!r||l||o||s.planView||(s.firstPerson?(i.rotateDeltaY-=(A-c)/a*s.dragRotationRate/2,i.rotateDeltaX+=(I-u)/p*(s.dragRotationRate/4)):(i.rotateDeltaY-=(A-c)/a*(1.5*s.dragRotationRate),i.rotateDeltaX+=(I-u)/p*(1.5*s.dragRotationRate)));c=A,u=I}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&n.mouseover&&(I=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:r=!1,l=!1,o=!1}}),y.addEventListener("mouseup",this._mouseUpHandler=e=>{if(s.active&&s.pointerEnabled){if(3===e.which){!function(e,t){if(e){let s=e.target,n=0,i=0,a=0,r=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,a+=s.scrollLeft,r+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+a-n,t[1]=e.pageY+r-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Gc);const s=Gc[0],n=Gc[1];Math.abs(s-p)<3&&Math.abs(n-A)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Gc,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const w=1/60;let g=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var a=null!==g?t-g:0;g=t,a>.05&&(a=.05),a{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const r=i._isKeyDownForAction(i.AXIS_VIEW_RIGHT),l=i._isKeyDownForAction(i.AXIS_VIEW_BACK),o=i._isKeyDownForAction(i.AXIS_VIEW_LEFT),c=i._isKeyDownForAction(i.AXIS_VIEW_FRONT),u=i._isKeyDownForAction(i.AXIS_VIEW_TOP),p=i._isKeyDownForAction(i.AXIS_VIEW_BOTTOM);if(!(r||l||o||c||u||p))return;const A=e.aabb,d=h.getAABB3Diag(A);h.getAABB3Center(A,Vc);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*h.DEGTORAD)),I=1.1*d;Kc.orthoScale=I,r?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldRight,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):l?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldForward,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):o?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldRight,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):c?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldForward,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):u?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldUp,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(h.normalizeVec3(h.mulVec3Scalar(a.worldForward,1,Qc),Wc))):p&&(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldUp,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(h.normalizeVec3(h.mulVec3Scalar(a.worldForward,-1,Qc)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(Vc),t.cameraFlight.duration>0?t.cameraFlight.flyTo(Kc,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(Kc),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Xc{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let o=!1,c=!1;const u=this._scene.canvas.canvas,p=s=>{let n;s&&s.worldPos&&(n=s.worldPos);const i=s&&s.entity?s.entity.aabb:e.aabb;if(n){const s=e.camera;h.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})},A=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(o||c)return;const i=l.hasSubs("hover"),r=l.hasSubs("hoverEnter"),u=l.hasSubs("hoverOut"),h=l.hasSubs("hoverOff"),p=l.hasSubs("hoverSurface"),A=l.hasSubs("hoverSnapOrSurface");if(i||r||u||h||p||A)if(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=p,a.scheduleSnapOrPick=A,a.update(),a.pickResult){if(a.pickResult.entity){const t=a.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),l.fire("hoverEnter",a.pickResult,!0),this._lastPickedEntityId=t)}l.fire("hover",a.pickResult,!0),(a.pickResult.worldPos||a.pickResult.snappedWorldPos)&&l.fire("hoverSurface",a.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),l.fire("hoverOff",{canvasPos:a.pickCursorPos},!0)});u.addEventListener("mousemove",A),u.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(o=!0),3===t.which&&(c=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(n.mouseDownClientX=t.clientX,n.mouseDownClientY=t.clientY,n.mouseDownCursorX=n.pointerCanvasPos[0],n.mouseDownCursorY=n.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),1===t.which))){const t=a.pickResult;t&&t.worldPos?(r.setPivotPos(t.worldPos),r.startPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),r.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(o=!1),3===e.which&&(c=!1),r.getPivoting()&&r.endPivot()}),u.addEventListener("mouseup",this._canvasMouseUpHandler=i=>{if(!s.active||!s.pointerEnabled)return;if(!(1===i.which))return;if(r.hidePivot(),Math.abs(i.clientX-n.mouseDownClientX)>3||Math.abs(i.clientY-n.mouseDownClientY)>3)return;const o=l.hasSubs("picked"),c=l.hasSubs("pickedNothing"),u=l.hasSubs("pickedSurface"),A=l.hasSubs("doublePicked"),d=l.hasSubs("doublePickedSurface"),f=l.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||A||d||f))return(o||c||u)&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=u,a.update(),a.pickResult?(l.fire("picked",a.pickResult,!0),a.pickedSurface&&l.fire("pickedSurface",a.pickResult,!0)):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo,a.schedulePickSurface=u,a.update();const e=a.pickResult,i=a.pickedSurface;this._timeout=setTimeout((()=>{e?(l.fire("picked",e,!0),i&&(l.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo||A||d,a.schedulePickSurface=a.schedulePickEntity&&d,a.update(),a.pickResult){if(l.fire("doublePicked",a.pickResult,!0),a.pickedSurface&&l.fire("doublePickedSurface",a.pickResult,!0),s.doublePickFlyTo&&(p(a.pickResult),!s.firstPerson&&s.followPointer)){const e=a.pickResult.entity.aabb,s=h.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(l.fire("doublePickedNothing",{canvasPos:n.pointerCanvasPos},!0),s.doublePickFlyTo&&(p(),!s.firstPerson&&s.followPointer)){const s=e.aabb,n=h.getAABB3Center(s);t.pivotController.setPivotPos(n),t.pivotController.startPivot()&&t.pivotController.showPivot()}this._clicks=0}},!1)}reset(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}destroy(){const e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}class qc{constructor(e,t,s,n,i){this._scene=e;const a=e.input,r=[],l=e.canvas.canvas;let o=!0;this._onSceneMouseMove=a.on("mousemove",(()=>{o=!0})),this._onSceneKeyDown=a.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&n.mouseover&&(r[t]=!0,t===a.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=a.on("keyup",(n=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(r[n]=!1,n===a.KEY_SHIFT&&(l.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(l=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const c=t.cameraControl,u=l.deltaTime/1e3;if(!s.planView){const e=c._isKeyDownForAction(c.ROTATE_Y_POS,r),n=c._isKeyDownForAction(c.ROTATE_Y_NEG,r),a=c._isKeyDownForAction(c.ROTATE_X_POS,r),l=c._isKeyDownForAction(c.ROTATE_X_NEG,r),o=u*s.keyboardRotationRate;(e||n||a||l)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?i.rotateDeltaY+=o:n&&(i.rotateDeltaY-=o),a?i.rotateDeltaX+=o:l&&(i.rotateDeltaX-=o),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!r[a.KEY_CTRL]&&!r[a.KEY_ALT]){const e=c._isKeyDownForAction(c.DOLLY_BACKWARDS,r),a=c._isKeyDownForAction(c.DOLLY_FORWARDS,r);if(e||a){const r=u*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),a?i.dollyDelta-=r:e&&(i.dollyDelta+=r),o&&(n.followPointerDirty=!0,o=!1)}}const h=c._isKeyDownForAction(c.PAN_FORWARDS,r),p=c._isKeyDownForAction(c.PAN_BACKWARDS,r),A=c._isKeyDownForAction(c.PAN_LEFT,r),d=c._isKeyDownForAction(c.PAN_RIGHT,r),f=c._isKeyDownForAction(c.PAN_UP,r),I=c._isKeyDownForAction(c.PAN_DOWN,r),y=(r[a.KEY_ALT]?.3:1)*u*s.keyboardPanRate;(h||p||A||d||f||I)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),I?i.panDeltaY+=y:f&&(i.panDeltaY+=-y),d?i.panDeltaX+=-y:A&&(i.panDeltaX+=y),p?i.panDeltaZ+=y:h&&(i.panDeltaZ+=-y))}))}reset(){}destroy(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}const Jc=h.vec3();class Zc{constructor(e,t,s,n,i){this._scene=e;const a=e.camera,r=t.pickController,l=t.pivotController,o=t.panController;let c=1,u=1,p=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(i.dollyDelta)<.001&&(i.dollyDelta=0),Math.abs(i.rotateDeltaX)<.001&&(i.rotateDeltaX=0),Math.abs(i.rotateDeltaY)<.001&&(i.rotateDeltaY=0),0===i.rotateDeltaX&&0===i.rotateDeltaY||(i.dollyDelta=0),s.followPointer&&--c<=0&&(c=1,0!==i.dollyDelta)){if(0===i.rotateDeltaY&&0===i.rotateDeltaX&&s.followPointer&&n.followPointerDirty&&(r.pickCursorPos=n.pointerCanvasPos,r.schedulePickSurface=!0,r.update(),r.pickResult&&r.pickResult.worldPos?p=r.pickResult.worldPos:(u=1,p=null),n.followPointerDirty=!1),p){const t=Math.abs(h.lenVec3(h.subVec3(p,e.camera.eye,Jc)));u=t/s.dollyProximityThreshold}u{n.mouseover=!0}),a.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{n.mouseover=!1,a.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{eu(e,a,n.pointerCanvasPos)}),a.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(eu(e,a,n.pointerCanvasPos),n.mouseover=!0)}),a.addEventListener("mouseup",this._mouseUpHandler=e=>{s.active&&s.pointerEnabled})}reset(){}destroy(){const e=this._scene.canvas.canvas;document.removeEventListener("mousemove",this._mouseMoveHandler),e.removeEventListener("mouseenter",this._mouseEnterHandler),e.removeEventListener("mouseleave",this._mouseLeaveHandler),e.removeEventListener("mousedown",this._mouseDownHandler),e.removeEventListener("mouseup",this._mouseUpHandler)}}function eu(e,t,s){if(e){const{x:n,y:i}=t.getBoundingClientRect();s[0]=e.clientX-n,s[1]=e.clientY-i}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const tu=function(e,t){if(e){let s=e.target,n=0,i=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class su{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=h.vec2(),o=h.vec2(),c=h.vec2(),u=h.vec2(),p=[],A=this._scene.canvas.canvas;let d=0,f=!1;this._onTick=e.on("tick",(()=>{f=!1})),A.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!s.active||!s.pointerEnabled)return;t.preventDefault();const i=t.touches,o=t.changedTouches;for(n.touchStartTime=Date.now(),1===i.length&&1===o.length&&(tu(i[0],l),s.followPointer&&(a.pickCursorPos=l,a.schedulePickSurface=!0,a.update(),s.planView||(a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(r.setPivotPos(a.pickResult.worldPos),!s.firstPerson&&r.startPivot()&&r.showPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),!s.firstPerson&&r.startPivot()&&r.showPivot()))));p.length{r.getPivoting()&&r.endPivot()}),A.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const r=e.canvas.boundary,l=r[2],A=r[3],I=t.touches;if(t.touches.length===d){if(1===d){tu(I[0],o),h.subVec2(o,p[0],u);const t=u[0],a=u[1];if(null!==n.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(a)>s.longTapRadius)&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),s.planView){const n=e.camera;if("perspective"===n.projection){const r=Math.abs(e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=t*r/A*s.touchPanRate,i.panDeltaY+=a*r/A*s.touchPanRate}else i.panDeltaX+=.5*n.ortho.scale*(t/A)*s.touchPanRate,i.panDeltaY+=.5*n.ortho.scale*(a/A)*s.touchPanRate}else i.rotateDeltaY-=t/l*(1*s.dragRotationRate),i.rotateDeltaX+=a/A*(1.5*s.dragRotationRate)}else if(2===d){const t=I[0],r=I[1];tu(t,o),tu(r,c);const l=h.geometricMeanVec2(p[0],p[1]),u=h.geometricMeanVec2(o,c),d=h.vec2();h.subVec2(l,u,d);const f=d[0],y=d[1],m=e.camera,v=h.distVec2([t.pageX,t.pageY],[r.pageX,r.pageY]),w=(h.distVec2(p[0],p[1])-v)*s.touchDollyRate;if(i.dollyDelta=w,Math.abs(w)<1)if("perspective"===m.projection){const t=a.pickResult?a.pickResult.worldPos:e.center,n=Math.abs(h.lenVec3(h.subVec3(t,e.camera.eye,[])))*Math.tan(m.perspective.fov/2*Math.PI/180);i.panDeltaX-=f*n/A*s.touchPanRate,i.panDeltaY-=y*n/A*s.touchPanRate}else i.panDeltaX-=.5*m.ortho.scale*(f/A)*s.touchPanRate,i.panDeltaY-=.5*m.ortho.scale*(y/A)*s.touchPanRate;n.pointerCanvasPos=u}for(let e=0;e{let n;s&&s.worldPos&&(n=s.worldPos);const i=s?s.entity.aabb:e.aabb;if(n){const s=e.camera;h.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})};A.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null);const i=e.touches,a=e.changedTouches;if(l=Date.now(),1===i.length&&1===a.length){u=l,nu(i[0],c);const a=c[0],r=c[1],o=i[0].pageX,h=i[0].pageY;n.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(o),Math.round(h)],canvasPos:[Math.round(a),Math.round(r)],event:e},!0),n.longTouchTimeout=null}),s.longTapTimeout)}else u=-1;for(;o.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),i=e.touches,l=e.changedTouches,A=r.hasSubs("pickedSurface");null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),0===i.length&&1===l.length&&u>-1&&t-u<150&&(p>-1&&u-p<325?(nu(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=A,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("doublePicked",a.pickResult),a.pickedSurface&&r.fire("doublePickedSurface",a.pickResult),s.doublePickFlyTo&&d(a.pickResult)):(r.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),p=-1):h.distVec2(o[0],c)<4&&(nu(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=A,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("picked",a.pickResult),a.pickedSurface&&r.fire("pickedSurface",a.pickResult)):r.fire("pickedNothing"),p=t),u=-1),o.length=i.length;for(let e=0,t=i.length;e{e.preventDefault()},this._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},this._states={pointerCanvasPos:h.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:h.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const s=this.scene;this._controllers={cameraControl:this,pickController:new Uc(this,this._configs),pivotController:new Hc(s,this._configs),panController:new Oc(s),cameraFlight:new oc(this,{duration:.5})},this._handlers=[new $c(this.scene,this._controllers,this._configs,this._states,this._updates),new su(this.scene,this._controllers,this._configs,this._states,this._updates),new jc(this.scene,this._controllers,this._configs,this._states,this._updates),new Yc(this.scene,this._controllers,this._configs,this._states,this._updates),new Xc(this.scene,this._controllers,this._configs,this._states,this._updates),new iu(this.scene,this._controllers,this._configs,this._states,this._updates),new qc(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Zc(this.scene,this._controllers,this._configs,this._states,this._updates),this.navMode=t.navMode,t.planView&&(this.planView=t.planView),this.constrainVertical=t.constrainVertical,t.keyboardLayout?this.keyboardLayout=t.keyboardLayout:this.keyMap=t.keyMap,this.doublePickFlyTo=t.doublePickFlyTo,this.panRightClick=t.panRightClick,this.active=t.active,this.followPointer=t.followPointer,this.rotationInertia=t.rotationInertia,this.keyboardPanRate=t.keyboardPanRate,this.touchPanRate=t.touchPanRate,this.keyboardRotationRate=t.keyboardRotationRate,this.dragRotationRate=t.dragRotationRate,this.touchDollyRate=t.touchDollyRate,this.dollyInertia=t.dollyInertia,this.dollyProximityThreshold=t.dollyProximityThreshold,this.dollyMinSpeed=t.dollyMinSpeed,this.panInertia=t.panInertia,this.pointerEnabled=!0,this.keyboardDollyRate=t.keyboardDollyRate,this.mouseWheelDollyRate=t.mouseWheelDollyRate}set keyMap(e){if(e=e||"qwerty",m.isString(e)){const t=this.scene.input,s={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":s[this.PAN_LEFT]=[t.KEY_A],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_Z],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":s[this.PAN_LEFT]=[t.KEY_Q],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_W],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=s}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const s=this._keyMap[e];if(!s)return!1;t||(t=this.scene.input.keyDown);for(let e=0,n=s.length;e0?hu(t):null,r=s&&s.length>0?hu(s):null,l=e=>{if(!e)return;var t=!0;(r&&r[e.type]||a&&!a[e.type])&&(t=!1),t&&n.push(e.id);const s=e.children;if(s)for(var i=0,o=s.length;i>t;s.sort(kr);const n=new Int32Array(e.length);for(let t=0,i=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}Qr=new Int32Array(e),t.sort(Wr);const s=new Int32Array(e.length);for(let n=0,i=t.length;nt){let s=e;e=t,t=s}function s(s,n){return s!==e?e-s:n!==t?t-n:0}let n=0,i=(a.length>>1)-1;for(;n<=i;){const e=i+n>>1,t=s(a[2*e],a[2*e+1]);if(t>0)n=e+1;else{if(!(t<0))return e;i=e-1}}return-n-1}const l=new Int32Array(a.length/2);l.fill(0);const o=n.length/3;if(o>8*(1<p.maxNumPositions&&(p=h()),p.bucketNumber>8)return[e];let d;-1===c[o]&&(c[o]=p.numPositions++,p.positionsCompressed.push(n[3*o]),p.positionsCompressed.push(n[3*o+1]),p.positionsCompressed.push(n[3*o+2])),-1===c[u]&&(c[u]=p.numPositions++,p.positionsCompressed.push(n[3*u]),p.positionsCompressed.push(n[3*u+1]),p.positionsCompressed.push(n[3*u+2])),-1===c[A]&&(c[A]=p.numPositions++,p.positionsCompressed.push(n[3*A]),p.positionsCompressed.push(n[3*A+1]),p.positionsCompressed.push(n[3*A+2])),p.indices.push(c[o]),p.indices.push(c[u]),p.indices.push(c[A]),(d=r(o,u))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(o,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(u,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]]))}const A=t/8*2,d=t/8,f=2*n.length+(i.length+a.length)*A;let I=0,y=-n.length/3;return u.forEach((e=>{I+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),I>f?[e]:(s&&function(e,t){const s={},n={};let i=0;e.forEach((e=>{const t=e.indices,a=e.edgeIndices,r=e.positionsCompressed;for(let e=0,n=t.length;e0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Be(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uLightAmbient=n.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const i=s.lights;let a;for(let e=0,t=i.length;e0;let i;const a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const $r=new Float32Array([1,1,1]),el=h.vec3(),tl=h.vec3(),sl=h.vec3();h.vec3();const nl=h.mat4();class il{constructor(e,t){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a,d=i.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=el;if(c){const t=tl;h.transformPoint3(p,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,nl),I=sl,I[0]=i.eye[0]-e[0],I[1]=i.eye[1]-e[1],I[2]=i.eye[2]-e[2]}else f=d,I=i.eye;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s===Mn.SILHOUETTE_XRAYED){const e=n.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.SILHOUETTE_HIGHLIGHTED){const e=n.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.SILHOUETTE_SELECTED){const e=n.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,$r);if(n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=n._sectionPlanesState.getNumAllocatedSectionPlanes(),m=n._sectionPlanesState.sectionPlanes.length;if(y>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture silhouette vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.y) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = color;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const al=new Float32Array([0,0,0,1]),rl=h.vec3(),ll=h.vec3();h.vec3();const ol=h.mat4();class cl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=rl;if(I){const t=h.transformPoint3(p,c,ll);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,ol)}else f=d;if(r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s===Mn.EDGES_XRAYED){const e=i.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.EDGES_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Mn.EDGES_SELECTED){const e=i.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,al);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uWorldMatrix=s.getLocation("worldMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ul=h.vec3(),hl=h.vec3();h.vec3();const pl=h.mat4();class Al{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=ul;if(I){const t=h.transformPoint3(p,c,hl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,pl)}else f=d;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled,s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uObjectPerObjectOffsets;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vec4 rgb = vec4(color.rgba);"),s.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const dl=h.vec3(),fl=h.vec3(),Il=h.vec3(),yl=h.mat4();class ml{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n;let d,f;o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=dl;if(I){const t=h.transformPoint3(p,c,fl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(a.viewMatrix,e,yl),f=Il,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=a.viewMatrix,f=a.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(a.project.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,e)}const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("smooth out vec4 vWorldPosition;"),s.push("flat out uvec4 vFlags2;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uvec4 vFlags2;");for(var n=0;n 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outPickColor = vPickColor; "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vl=h.vec3(),wl=h.vec3(),gl=h.vec3();h.vec3();const El=h.mat4();class Tl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=e.pickViewMatrix||a.viewMatrix;let f,I;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const t=vl;if(c){const e=wl;h.transformPoint3(p,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],f=G(d,t,El),I=gl,I[0]=a.eye[0]-t[0],I[1]=a.eye[1]-t[1],I[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,I=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniform1f(this._uPickZNear,e.pickZNear),r.uniform1f(this._uPickZFar,e.pickZFar),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(var n=0;n 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outPackedDepth = packDepth(zNormalizedDepth); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bl=h.vec3(),Dl=h.vec3(),Pl=h.vec3(),Rl=h.vec3();h.vec3();const Cl=h.mat4();class _l{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=bl;let y,m;I[0]=h.safeInv(d[3]-d[0])*h.MAX_INT,I[1]=h.safeInv(d[4]-d[1])*h.MAX_INT,I[2]=h.safeInv(d[5]-d[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(I[0]),e.snapPickCoordinateScale[1]=h.safeInv(I[1]),e.snapPickCoordinateScale[2]=h.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Dl;if(v){const e=h.transformPoint3(p,c,Pl);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=G(f,t,Cl),m=Rl,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(T,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(T,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(T,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uSnapVectorA;"),s.push("uniform vec2 uSnapInvVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),s.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vViewPosition = clipPos;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Bl=h.vec3(),Ol=h.vec3(),Sl=h.vec3(),Nl=h.vec3();h.vec3();const xl=h.mat4();class Ll{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=Bl;let y,m;I[0]=h.safeInv(d[3]-d[0])*h.MAX_INT,I[1]=h.safeInv(d[4]-d[1])*h.MAX_INT,I[2]=h.safeInv(d[5]-d[2])*h.MAX_INT,e.snapPickCoordinateScale[0]=h.safeInv(I[0]),e.snapPickCoordinateScale[1]=h.safeInv(I[1]),e.snapPickCoordinateScale[2]=h.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Ol;if(v){const e=Sl;h.transformPoint3(p,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=G(f,t,xl),m=Nl,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this._uVectorA,e.snapVectorA),r.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uVectorAB;"),s.push("uniform vec2 uInverseVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),s.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" } else {"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ml=h.vec3(),Fl=h.vec3(),Hl=h.vec3();h.vec3();const Ul=h.mat4();class Gl{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=n,d=e.pickViewMatrix||a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=Ml;if(c){const t=Fl;h.transformPoint3(p,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=G(d,e,Ul),I=Hl,I[0]=a.eye[0]-e[0],I[1]=a.eye[1]-e[1],I[2]=a.eye[2]-e[2]}else f=d,I=a.eye;r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" } else {"),s.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureColorRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const jl=h.vec3(),Vl=h.vec3(),kl=h.vec3();h.vec3();const Ql=h.mat4();class Wl{constructor(e){this._scene=e,this._allocate(),this._hash=this._getHash()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=jl;if(I){const t=h.transformPoint3(p,c,Vl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(i.viewMatrix,e,Ql),f=kl,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPositionsDecodeMatrix=s.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture draw vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out highp vec2 vHighPrecisionZW;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in highp vec2 vHighPrecisionZW;"),s.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zl=h.vec3(),Kl=h.vec3(),Yl=h.vec3();h.vec3();const Xl=h.mat4();class ql{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=n,A=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const I=0!==o[0]||0!==o[1]||0!==o[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(I||y){const e=zl;if(I){const t=Kl;h.transformPoint3(u,o,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=c[0],e[1]+=c[1],e[2]+=c[2],d=G(A,e,Xl),f=Yl,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=A,f=a.eye;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),r.uniformMatrix4fv(this._uWorldNormalMatrix,!1,n.worldNormalMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0,s=[];return s.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("uniform int renderPass;"),s.push("attribute vec3 position;"),e.entityOffsetsEnabled&&s.push("attribute vec3 offset;"),s.push("attribute vec3 normal;"),s.push("attribute vec4 color;"),s.push("attribute vec4 flags;"),s.push("attribute vec4 flags2;"),s.push("uniform mat4 worldMatrix;"),s.push("uniform mat4 worldNormalMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform mat4 viewNormalMatrix;"),s.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("varying float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out vec4 vFlags2;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(ge.SUPPORTED_EXTENSIONS.EXT_frag_depth?s.push("vFragDepth = 1.0 + clipPos.w;"):(s.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),s.push("clipPos.z *= clipPos.w;")),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&ge.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Jl=h.vec3(),Zl=h.vec3(),$l=h.vec3();h.vec3(),h.vec4();const eo=h.mat4();class to{constructor(e,t){this._scene=e,this._withSAO=t,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:p,rotationMatrixConjugate:A}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=Jl;if(I){const t=h.transformPoint3(p,c,Zl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=G(i.viewMatrix,e,eo),f=$l,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Be(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// trianglesDatatextureNormalsRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("in vec4 vWorldPosition;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(` outNormal = ivec4(worldNormal * float(${h.MAX_INT}), 1.0);`),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class so{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new il(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Tl(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new to(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new _l(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ll(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Zr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Zr(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new il(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Wl(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new ql(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new cl(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Al(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new to(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new to(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Tl(this._scene)),this._pickDepthRenderer}get vertexDepthRenderer(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new _l(this._scene)),this._vertexDepthRenderer}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ll(this._scene)),this._snapDepthBufInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Gl(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const no={};class io{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]}}class ao{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}bindCommonTextures(e,t,s,n,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,n,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}bindTriangleIndicesTextures(e,t,s,n){this.indicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.indicesPerBitnessTextures[n].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,n){this.edgeIndicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[n].bindTexture(e,s,6)}}class ro{constructor(e,t,s,n,i=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=n,this._textureData=i}bindTexture(e,t,s){return e.bindTexture(t,this,s)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const lo={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(lo,null,4));let e=0;Object.keys(lo).forEach((t=>{t.startsWith("size")&&(e+=lo[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/lo.totalPolygons).toFixed(2)}`);let t={};Object.keys(lo).forEach((s=>{s.startsWith("size")&&(t[s]=`${(lo[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class oo{disableBindedTextureFiltering(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}generateTextureForColorsAndFlags(e,t,s,n,i,a,r){const l=t.length;this.numPortions=l;const o=4096,c=Math.ceil(l/512);if(0===c)throw"texture height===0";const u=new Uint8Array(16384*c);lo.sizeDataColorsAndFlags+=u.byteLength,lo.numberOfTextures++;for(let e=0;e>24&255,n[e]>>16&255,n[e]>>8&255,255&n[e]],32*e+16),u.set([i[e]>>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+20),u.set([a[e]>>24&255,a[e]>>16&255,a[e]>>8&255,255&a[e]],32*e+24),u.set([r[e]?1:0,0,0,0],32*e+28);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,o,c),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,c,e.RGBA_INTEGER,e.UNSIGNED_BYTE,u,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new ro(e,h,o,c,u)}generateTextureForObjectOffsets(e,t){const s=512,n=Math.ceil(t/s);if(0===n)throw"texture height===0";const i=new Float32Array(1536*n).fill(0);lo.sizeDataTextureOffsets+=i.byteLength,lo.numberOfTextures++;const a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,n),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,n,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new ro(e,a,s,n,i)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const n=2048,i=Math.ceil(s/512),a=new Float32Array(8192*i);lo.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete no[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new io,this._dataTextureState=new ao,this._dataTextureGenerator=new oo,this._state=new Je({origin:h.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numEdgeIndices8Bits:0,numEdgeIndices16Bits:0,numEdgeIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=h.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){h.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&lo.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const n=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[n]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let n=0,i=0;e.buckets.forEach((e=>{n+=e.positionsCompressed.length/3,i+=e.indices.length/3})),(this._state.numVertices+n>4096*uo||t+i>4096*uo)&&lo.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+n<=4096*uo&&t+i<=4096*uo}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,n)=>{const i=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${n}`:`${t.id}#${n}`;let a=this._bucketGeometries[i];a||(a=this._createBucketGeometry(t,e),this._bucketGeometries[i]=a);const r=this._createSubPortion(t,a,e);s.push(r)}));const n=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),n}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;lo.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;lo.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.edgeIndices),t.edgeIndices=s}const s=t.positionsCompressed,n=t.indices,i=t.edgeIndices,a=this._buffer;a.positionsCompressed.push(s);const r=a.lenPositionsCompressed/3,l=s.length/3;let o;a.lenPositionsCompressed+=s.length;let c,u=0;if(n){let e;u=n.length/3,l<=256?(e=a.indices8Bits,o=a.lenIndices8Bits/3,a.lenIndices8Bits+=n.length):l<=65536?(e=a.indices16Bits,o=a.lenIndices16Bits/3,a.lenIndices16Bits+=n.length):(e=a.indices32Bits,o=a.lenIndices32Bits/3,a.lenIndices32Bits+=n.length),e.push(n)}let h=0;if(i){let e;h=i.length/2,l<=256?(e=a.edgeIndices8Bits,c=a.lenEdgeIndices8Bits/2,a.lenEdgeIndices8Bits+=i.length):l<=65536?(e=a.edgeIndices16Bits,c=a.lenEdgeIndices16Bits/2,a.lenEdgeIndices16Bits+=i.length):(e=a.edgeIndices32Bits,c=a.lenEdgeIndices32Bits/2,a.lenEdgeIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=l,lo.numberOfGeometries++;return{vertexBase:r,numVertices:l,numTriangles:u,numEdges:h,indicesBase:o,edgeIndicesBase:c,obb:null}}_createSubPortion(e,t,s,n){const i=e.color;e.metallic,e.roughness;const a=e.colors,r=e.opacity,l=e.meshMatrix,o=e.pickColor,c=this._buffer,u=this._state;c.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),c.perObjectInstancePositioningMatrices.push(l||Io),c.perObjectSolid.push(!!e.solid),a?c.perObjectColors.push([255*a[0],255*a[1],255*a[2],255]):i&&c.perObjectColors.push([i[0],i[1],i[2],r]),c.perObjectPickColors.push(o),c.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?u.numIndices8Bits:t.numVertices<=65536?u.numIndices16Bits:u.numIndices32Bits,c.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?u.numEdgeIndices8Bits:t.numVertices<=65536?u.numEdgeIndices16Bits:u.numEdgeIndices32Bits,c.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const h=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=c.perTriangleNumberPortionId8Bits,u.numIndices8Bits+=s,lo.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=c.perTriangleNumberPortionId16Bits,u.numIndices16Bits+=s,lo.totalPolygons16Bits+=t.numTriangles):(e=c.perTriangleNumberPortionId32Bits,u.numIndices32Bits+=s,lo.totalPolygons32Bits+=t.numTriangles),lo.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=c.perEdgeNumberPortionId8Bits,u.numEdgeIndices8Bits+=s,lo.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=c.perEdgeNumberPortionId16Bits,u.numEdgeIndices16Bits+=s,lo.totalEdges16Bits+=t.numEdges):(e=c.perEdgeNumberPortionId32Bits,u.numEdgeIndices32Bits+=s,lo.totalEdges32Bits+=t.numEdges),lo.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId8Bits)),n.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId16Bits)),n.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId32Bits)),n.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,n.indices8Bits,n.lenIndices8Bits)),n.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,n.indices16Bits,n.lenIndices16Bits)),n.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,n.indices32Bits,n.lenIndices32Bits)),n.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(s,n.edgeIndices8Bits,n.lenEdgeIndices8Bits)),n.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(s,n.edgeIndices16Bits,n.lenEdgeIndices16Bits)),n.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(s,n.edgeIndices32Bits,n.lenEdgeIndices32Bits)),t.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}isEmpty(){return 0===this._numPortions}initFlags(e,t,s){t&Q&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&X&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&K&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Z&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&z&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&Q?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&Z?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&K?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&z?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,po)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,n=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,a=i.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,A.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,po))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const n=this._portionToSubPortionsMap[e];for(let e=0,i=n.length;e=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,po))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectOffsets._texture),n.texSubImage2D(n.TEXTURE_2D,0,0,e,1,1,n.RGB,n.FLOAT,Ao))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,n.RGBA,n.FLOAT,ho))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,Mn.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const s=this.model.backfaces||e.sectioned;if(t.backfaces!==s){const e=t.gl;s?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=s}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,Mn.COLOR_TRANSPARENT))}drawDepth(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,Mn.SILHOUETTE_SELECTED))}drawEdgesColorOpaque(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,Mn.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,Mn.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,Mn.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,Mn.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,Mn.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,Mn.PICK))}drawSnapInitDepthBuf(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,Mn.PICK))}drawSnapDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,Mn.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,Mn.PICK))}destroy(){if(this._destroyed)return;const e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const mo=h.vec4(4),vo=h.vec4(),wo=h.vec4(),go=h.vec3([1,0,0]),Eo=h.vec3([0,1,0]),To=h.vec3([0,0,1]);h.vec3(3),h.vec3(3);const bo=h.identityMat4();class Do{constructor(e){this._model=e.model,this.id=e.id,this._parentTransform=e.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=h.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=h.identityMat4(new Float32Array(16)),this._worldMatrix=h.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,e.matrix?this.matrix=e.matrix:(this.scale=e.scale,this.position=e.position,e.quaternion||(this.rotation=e.rotation)),e.parent&&e.parent._addChildTransform(this)}_addChildTransform(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}_addMesh(e){this._meshes.push(e),e.transform=this}get parentTransform(){return this._parentTransform}get meshes(){return this._meshes}set position(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),h.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),h.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}get quaternion(){return this._quaternion}set scale(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}get scale(){return this._scale}set matrix(e){this._localMatrix||(this._localMatrix=h.identityMat4()),this._localMatrix.set(e||bo),h.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}get matrix(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=h.identityMat4()),h.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix}get worldMatrix(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}rotate(e,t){return mo[0]=e[0],mo[1]=e[1],mo[2]=e[2],mo[3]=t*h.DEGTORAD,h.angleAxisToQuaternion(mo,vo),h.mulQuaternions(this.quaternion,vo,wo),this.quaternion=wo,this._setLocalMatrixDirty(),this._model.glRedraw(),this}rotateOnWorldAxis(e,t){return mo[0]=e[0],mo[1]=e[1],mo[2]=e[2],mo[3]=t*h.DEGTORAD,h.angleAxisToQuaternion(mo,vo),h.mulQuaternions(vo,this.quaternion,vo),this}rotateX(e){return this.rotate(go,e)}rotateY(e){return this.rotate(Eo,e)}rotateZ(e){return this.rotate(To,e)}translate(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateX(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateY(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateZ(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}_setLocalMatrixDirty(){this._localMatrixDirty=!0,this._transformDirty()}_transformDirty(){this._worldMatrixDirty=!0;for(let e=0,t=this._childTransforms.length;e0){const e=t._meshes;for(let t=0,s=e.length;t0){const e=this._meshes;for(let t=0,s=e.length;t{this._viewMatrixDirty=!0})),this._meshesWithDirtyMatrices=[],this._numMeshesWithDirtyMatrices=0,this._onTick=this.scene.on("tick",(()=>{for(;this._numMeshesWithDirtyMatrices>0;)this._meshesWithDirtyMatrices[--this._numMeshesWithDirtyMatrices]._updateMatrix()})),this._createDefaultTextureSet(),this.visible=t.visible,this.culled=t.culled,this.pickable=t.pickable,this.clippable=t.clippable,this.collidable=t.collidable,this.castsShadow=t.castsShadow,this.receivesShadow=t.receivesShadow,this.xrayed=t.xrayed,this.highlighted=t.highlighted,this.selected=t.selected,this.edges=t.edges,this.colorize=t.colorize,this.opacity=t.opacity,this.backfaces=t.backfaces}_meshMatrixDirty(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}_createDefaultTextureSet(){const e=new Pr({id:"defaultColorTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new Pr({id:"defaultMetalRoughTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new Pr({id:"defaultNormalsTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),n=new Pr({id:"defaultEmissiveTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new Pr({id:"defaultOcclusionTexture",texture:new fn({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=s,this._textures.defaultEmissiveTexture=n,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Dr({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:n,occlusionTexture:i})}get isPerformanceModel(){return!0}get transforms(){return this._transforms}get textures(){return this._textures}get textureSets(){return this._textureSets}get meshes(){return this._meshes}get objects(){return this._entities}get origin(){return this._origin}set position(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),h.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),h.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get quaternion(){return this._quaternion}set scale(e){}get scale(){return this._scale}set matrix(e){this._matrix.set(e||So),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),h.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),h.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get matrix(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix}get rotationMatrix(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}_rebuildMatrices(){this._matrixDirty&&(h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),h.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),h.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),h.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}get rotationMatrixConjugate(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}_setWorldMatrixDirty(){this._matrixDirty=!0,this._aabbDirty=!0}_transformDirty(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}_sceneModelDirty(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(let e=0,t=this._entityList.length;e0}set visible(e){e=!1!==e,this._visible=e;for(let t=0,s=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,s=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,s=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,s=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,s=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,s=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,s=new Uint8Array(t.length);for(let e=0,n=t.length;e{o.setImage(c,{minFilter:s,magFilter:n,wrapS:i,wrapT:a,wrapR:r,flipY:e.flipY,encoding:l}),this.glRedraw()},c.src=e.src;break;default:this._textureTranscoder?m.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'src': file data is zero length")}),(function(e){this.error(`[createTexture] Can't create texture from 'src': ${e}`)})):this.error(`[createTexture] Can't create texture from 'src' - SceneModel needs to be configured with a TextureTranscoder for this file type ('${t}')`)}}else e.buffers&&(this._textureTranscoder?this._textureTranscoder.transcode(e.buffers,o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'buffers' - SceneModel needs to be configured with a TextureTranscoder for this option"));this._textures[t]=new Pr({id:t,texture:o})}createTextureSet(e){const t=e.id;if(null==t)return void this.error("[createTextureSet] Config missing: id");if(this._textureSets[t])return void this.error(`[createTextureSet] Texture set already created: ${t}`);let s,n,i,a,r;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(s=this._textures[e.colorTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(n=this._textures[e.metallicRoughnessTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(i=this._textures[e.normalsTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(a=this._textures[e.emissiveTextureId],!a)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else a=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(r=this._textures[e.occlusionTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultOcclusionTexture;const l=new Dr({id:t,model:this,colorTexture:s,metallicRoughnessTexture:n,normalsTexture:i,emissiveTexture:a,occlusionTexture:r});return this._textureSets[t]=l,l}createTransform(e){if(void 0===e.id||null===e.id)return void this.error("[createTransform] SceneModel.createTransform() config missing: id");if(this._transforms[e.id])return void this.error(`[createTransform] SceneModel already has a transform with this ID: ${e.id}`);let t;if(this.parentTransformId&&(t=this._transforms[e.parentTransformId],!t))return void this.error("[createTransform] SceneModel.createTransform() config missing: id");const s=new Do({id:e.id,model:this,parentTransform:t,matrix:e.matrix,position:e.position,scale:e.scale,rotation:e.rotation,quaternion:e.quaternion});return this._transforms[s.id]=s,s}createMesh(e){if(void 0===e.id||null===e.id)return void this.error("[createMesh] SceneModel.createMesh() config missing: id");if(this._scheduledMeshes[e.id])return void this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`);if(!(void 0!==e.geometryId)){if(void 0!==e.primitive&&null!==e.primitive||(e.primitive="triangles"),"points"!==e.primitive&&"lines"!==e.primitive&&"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)return void this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`);if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),null;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),null;if(!e.buckets&&!e.indices&&"points"!==e.primitive)return this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),null;if((e.matrix||e.position||e.rotation||e.scale)&&(e.positionsCompressed||e.positionsDecodeBoundary))return this.error("Unexpected params: 'matrix', 'rotation', 'scale', 'position' not allowed with 'positionsCompressed'"),null;const t=!!this._dtxEnabled&&("triangles"===e.primitive||"solid"===e.primitive||"surface"===e.primitive);if(e.origin=e.origin?h.addVec3(this._origin,e.origin,h.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||Co,s=e.position||_o,n=e.rotation||Bo;h.eulerToQuaternion(n,"XYZ",Oo),e.meshMatrix=h.composeMat4(s,Oo,t,h.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Ti(e.positionsDecodeBoundary,h.mat4())),t){if(e.type=2,e.color=e.color?new Uint8Array([Math.floor(255*e.color[0]),Math.floor(255*e.color[1]),Math.floor(255*e.color[2])]):No,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=h.vec3(),s=[];V(e.positions,s,t)&&(e.positions=s,e.origin=h.addVec3(e.origin,t,t))}if(e.positions){const t=h.collapseAABB3();e.positionsDecodeMatrix=h.mat4(),h.expandAABB3Points3(t,e.positions),e.positionsCompressed=Ei(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=h.collapseAABB3();h.expandAABB3Points3(t,e.positionsCompressed),Bt.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=h.collapseAABB3();for(let s=0,n=e.buckets.length;s>24&255,i=s>>16&255,a=s>>8&255,r=255&s;switch(e.pickColor=new Uint8Array([r,a,i,n]),e.solid="solid"===e.primitive,t.origin=h.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}_getNumPrimitives(e){let t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(let s=0,n=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,n=e.textureSetId||"-",i=e.geometryId,a=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${n}.${i}`;let r=this._vboInstancingLayers[a];if(r)return r;let l=e.textureSet;const o=e.geometry;for(;!r;)switch(o.primitive){case"triangles":case"surface":r=new Ga({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!1});break;case"solid":r=new Ga({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!0});break;case"lines":r=new tr({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0});break;case"points":r=new br({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0})}return this._vboInstancingLayers[a]=r,this.layerList.push(r),r}createEntity(e){if(void 0===e.id?e.id=h.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=h.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=Q),this._pickable&&!1!==e.pickable&&(t|=z),this._culled&&!1!==e.culled&&(t|=W),this._clippable&&!1!==e.clippable&&(t|=K),this._collidable&&!1!==e.collidable&&(t|=Y),this._edges&&!1!==e.edges&&(t|=Z),this._xrayed&&!1!==e.xrayed&&(t|=X),this._highlighted&&!1!==e.highlighted&&(t|=q),this._selected&&!1!==e.selected&&(t|=J),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let s=0,n=e.meshIds.length;se.sortIdt.sortId?1:0));for(let e=0,t=this.layerList.length;e0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}_updateRenderFlagsVisibleLayers(){const e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(let t=0,s=this.layerList.length;t0)for(let e=0;e0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){const t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0){this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0))}if(this.numSelectedLayerPortions>0){const t=this.scene.selectedMaterial._state;t.fill&&(t.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){const t=this.scene.highlightMaterial._state;t.fill&&(t.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}drawColorOpaque(e){const t=this.renderFlags;for(let s=0,n=t.visibleLayers.length;s65536?16:8)}else r=[{positionsCompressed:n,indices:i,edgeIndices:a}];return r}class Mo extends _{constructor(e,t={}){if(super(e,t),this._positions=t.positions||[],t.indices)this._indices=t.indices;else{this._indices=[];for(let e=0,t=this._positions.length/3-1;e{var i=e-s,a=t-n;return Math.sqrt(i*i+a*a)};class Ko extends _{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._eventSubs={};var s=this.plugin.viewer.scene;this._originMarker=new ie(s,t.origin),this._targetMarker=new ie(s,t.target),this._originWorld=h.vec3(),this._targetWorld=h.vec3(),this._wp=new Float64Array(24),this._vp=new Float64Array(24),this._pp=new Float64Array(24),this._cp=new Float64Array(8),this._xAxisLabelCulled=!1,this._yAxisLabelCulled=!1,this._zAxisLabelCulled=!1,this._color=t.color||this.plugin.defaultColor;const n=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,c=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._targetDot=new re(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._lengthWire=new ae(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._xAxisWire=new ae(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._yAxisWire=new ae(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._zAxisWire=new ae(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._lengthLabel=new le(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._xAxisLabel=new le(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._yAxisLabel=new le(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._zAxisLabel=new le(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._sectionPlanesDirty=!0,this._visible=!1,this._originVisible=!1,this._targetVisible=!1,this._wireVisible=!1,this._axisVisible=!1,this._xAxisVisible=!1,this._yAxisVisible=!1,this._zAxisVisible=!1,this._axisEnabled=!0,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=s.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=s.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=s.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.targetVisible=t.targetVisible,this.wireVisible=t.wireVisible,this.axisVisible=t.axisVisible,this.xAxisVisible=t.xAxisVisible,this.yAxisVisible=t.yAxisVisible,this.zAxisVisible=t.zAxisVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(h.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}const t=this._originMarker.viewPos[2],s=this._targetMarker.viewPos[2];if(t>-.3||s>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){h.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var n=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var r=a.top-t.top,l=a.left-t.left,o=e.canvas.boundary,c=o[2],u=o[3],p=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,I=s.units,y=s.unitsInfo[I].abbrev;for(var A=0,d=n.length;A{const t=e.snappedCanvasPos||e.canvasPos;i=!0,a.set(e.worldPos),r.set(e.canvasPos),0===this._mouseState?(this._markerDiv.style.marginLeft=t[0]-5+"px",this._markerDiv.style.marginTop=t[1]-5+"px",this._markerDiv.style.background="pink",e.snappedToVertex||e.snappedToEdge?(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,this.pointerLens.snapped=!0),this._markerDiv.style.background="greenyellow",this._markerDiv.style.border="2px solid green"):(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.canvasPos,this.pointerLens.snapped=!1),this._markerDiv.style.background="pink",this._markerDiv.style.border="2px solid red"),c=e.entity):(this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px"),n.style.cursor="pointer",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=this._currentDistanceMeasurementInitState.wireVisible,this._currentDistanceMeasurement.axisVisible=this._currentDistanceMeasurementInitState.axisVisible&&this.distanceMeasurementsPlugin.defaultAxisVisible,this._currentDistanceMeasurement.xAxisVisible=this._currentDistanceMeasurementInitState.xAxisVisible&&this.distanceMeasurementsPlugin.defaultXAxisVisible,this._currentDistanceMeasurement.yAxisVisible=this._currentDistanceMeasurementInitState.yAxisVisible&&this.distanceMeasurementsPlugin.defaultYAxisVisible,this._currentDistanceMeasurement.zAxisVisible=this._currentDistanceMeasurementInitState.zAxisVisible&&this.distanceMeasurementsPlugin.defaultZAxisVisible,this._currentDistanceMeasurement.targetVisible=this._currentDistanceMeasurementInitState.targetVisible,this._currentDistanceMeasurement.target.worldPos=a.slice(),this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px")})),n.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(l=e.clientX,o=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>l+20||t.clientXo+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),i=!1,this._markerDiv.style.marginLeft="-100px",this._markerDiv.style.marginTop="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),n.style.cursor="default"})),this._active=!0}deactivate(){if(!this._active)return;this.fire("activated",!1),this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.distanceMeasurementsPlugin.viewer.cameraControl;t.off(this._onCameraControlHoverSnapOrSurface),t.off(this._onCameraControlHoverSnapOrSurfaceOff),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null))}destroy(){this.deactivate(),super.destroy()}}class qo{constructor(){}getMetaModel(e,t,s){m.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getGLTF(e,t,s){m.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getGLB(e,t,s){m.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getArrayBuffer(e,t,s,n){!function(e,t,s,n){var i=()=>{};s=s||i,n=n||i;const a=/^data:(.*?)(;base64)?,(.*)$/,r=t.match(a);if(r){const e=!!r[2];var l=r[3];l=window.decodeURIComponent(l),e&&(l=window.atob(l));try{const e=new ArrayBuffer(l.length),t=new Uint8Array(e);for(var o=0;o{s(e)}),(function(e){n(e)}))}}class Jo{constructor(e={}){this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=e.messages,this.locale=e.locale}set messages(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}loadMessages(e={}){for(let t in e)this._messages[t]=e[t];this.messages=this._messages}clearMessages(){this.messages={}}get locales(){return this._locales}set locale(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}get locale(){return this._locale}translate(e,t){const s=this._messages[this._locale];if(!s)return null;const n=Zo(e,s);return n?t?$o(n,t):n:null}translatePlurals(e,t,s){const n=this._messages[this._locale];if(!n)return null;let i=Zo(e,n);return i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one,i?(i=$o(i,[t]),s&&(i=$o(i,s)),i):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];if(n)for(const e in n)if(n.hasOwnProperty(e)){n[e].callback(t)}}on(t,s){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new e),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let n=this._eventSubs[t];n||(n={},this._eventSubs[t]=n);const i=this._eventSubIDMap.addItem();n[i]={callback:s},this._eventSubEvents[i]=t;const a=this._events[t];return void 0!==a&&s(a),i}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const s=this._eventSubs[t];s&&delete s[e],this._eventSubIDMap.removeItem(e)}}}function Zo(e,t){if(t[e])return t[e];const s=e.split(".");let n=t;for(let e=0,t=s.length;n&&e1?1:e}get t(){return this._t}get tangent(){return this.getTangent(this._t)}get length(){var e=this._getLengths();return e[e.length-1]}getTangent(e){var t=1e-4;void 0===e&&(e=this._t);var s=e-t,n=e+t;s<0&&(s=0),n>1&&(n=1);var i=this.getPoint(s),a=this.getPoint(n),r=h.subVec3(a,i,[]);return h.normalizeVec3(r,[])}getPointAt(e){var t=this.getUToTMapping(e);return this.getPoint(t)}getPoints(e){e||(e=5);var t,s=[];for(t=0;t<=e;t++)s.push(this.getPoint(t/e));return s}_getLengths(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,s,n=[],i=this.getPoint(0),a=0;for(n.push(0),s=1;s<=e;s++)t=this.getPoint(s/e),a+=h.lenVec3(h.subVec3(t,i,[])),n.push(a),i=t;return this.cacheArcLengths=n,n}_updateArcLengths(){this.needsUpdate=!0,this._getLengths()}getUToTMapping(e,t){var s,n=this._getLengths(),i=0,a=n.length;s=t||e*n[a-1];for(var r,l=0,o=a-1;l<=o;)if((r=n[i=Math.floor(l+(o-l)/2)]-s)<0)l=i+1;else{if(!(r>0)){o=i;break}o=i-1}if(n[i=o]===s)return i/(a-1);var c=n[i];return(i+(s-c)/(n[i+1]-c))/(a-1)}}class tc extends ec{constructor(e,t={}){super(e,t),this.points=t.points,this.t=t.t}set points(e){this._points=e||[]}get points(){return this._points}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=this.points;if(!(t.length<3)){var s=(t.length-1)*e,n=Math.floor(s),i=s-n,a=t[0===n?n:n-1],r=t[n],l=t[n>t.length-2?t.length-1:n+1],o=t[n>t.length-3?t.length-1:n+2],c=h.vec3();return c[0]=h.catmullRomInterpolate(a[0],r[0],l[0],o[0],i),c[1]=h.catmullRomInterpolate(a[1],r[1],l[1],o[1],i),c[2]=h.catmullRomInterpolate(a[2],r[2],l[2],o[2],i),c}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}getJSON(){return{points:points,t:this._t}}}const sc=h.vec3();const nc=h.vec3(),ic=h.vec3(),ac=h.vec3(),rc=h.vec3(),lc=h.vec3();class oc extends _{get type(){return"CameraFlightAnimation"}constructor(e,t={}){super(e,t),this._look1=h.vec3(),this._eye1=h.vec3(),this._up1=h.vec3(),this._look2=h.vec3(),this._eye2=h.vec3(),this._up2=h.vec3(),this._orthoScale1=1,this._orthoScale2=1,this._flying=!1,this._flyEyeLookUp=!1,this._flyingEye=!1,this._flyingLook=!1,this._callback=null,this._callbackScope=null,this._time1=null,this._time2=null,this.easing=!1!==t.easing,this.duration=t.duration,this.fit=t.fit,this.fitFOV=t.fitFOV,this.trail=t.trail}flyTo(e,t,s){e=e||this.scene,this._flying&&this.stop(),this._flying=!1,this._flyingEye=!1,this._flyingLook=!1,this._flyingEyeLookUp=!1,this._callback=t,this._callbackScope=s;const n=this.scene.camera,i=!!e.projection&&e.projection!==n.projection;let a,r,l,o,c;if(this._eye1[0]=n.eye[0],this._eye1[1]=n.eye[1],this._eye1[2]=n.eye[2],this._look1[0]=n.look[0],this._look1[1]=n.look[1],this._look1[2]=n.look[2],this._up1[0]=n.up[0],this._up1[1]=n.up[1],this._up1[2]=n.up[2],this._orthoScale1=n.ortho.scale,this._orthoScale2=e.orthoScale||this._orthoScale1,e.aabb)a=e.aabb;else if(6===e.length)a=e;else if(e.eye&&e.look||e.up)r=e.eye,l=e.look,o=e.up;else if(e.eye)r=e.eye;else if(e.look)l=e.look;else{let n=e;if((m.isNumeric(n)||m.isString(n))&&(c=n,n=this.scene.components[c],!n))return this.error("Component not found: "+m.inQuotes(c)),void(t&&(s?t.call(s):t()));i||(a=n.aabb||this.scene.aabb)}const u=e.poi;if(a){if(a[3]=1;e>1&&(e=1);const s=this.easing?oc._ease(e,0,1,1):e,n=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(h.subVec3(n.eye,n.look,lc),n.eye=h.lerpVec3(s,0,1,this._eye1,this._eye2,ac),n.look=h.subVec3(ac,lc,ic)):this._flyingLook&&(n.look=h.lerpVec3(s,0,1,this._look1,this._look2,ic),n.up=h.lerpVec3(s,0,1,this._up1,this._up2,rc)):this._flyingEyeLookUp&&(n.eye=h.lerpVec3(s,0,1,this._eye1,this._eye2,ac),n.look=h.lerpVec3(s,0,1,this._look1,this._look2,ic),n.up=h.lerpVec3(s,0,1,this._up1,this._up2,rc)),this._projection2){const t="ortho"===this._projection2?oc._easeOutExpo(e,0,1,1):oc._easeInCubic(e,0,1,1);n.customProjection.matrix=h.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else n.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return n.ortho.scale=this._orthoScale2,void this.stop();R.scheduleTask(this._update,this)}static _ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}static _easeInCubic(e,t,s,n){return s*(e/=n)*e*e+t}static _easeOutExpo(e,t,s,n){return s*(1-Math.pow(2,-10*e/n))+t}stop(){if(!this._flying)return;this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);const e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}cancel(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}set duration(e){this._duration=e?1e3*e:500,this.stop()}get duration(){return this._duration/1e3}set fit(e){this._fit=!1!==e}get fit(){return this._fit}set fitFOV(e){this._fitFOV=e||45}get fitFOV(){return this._fitFOV}set trail(e){this._trail=!!e}get trail(){return this._trail}destroy(){this.stop(),super.destroy()}}class cc extends _{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new oc(this),this._t=0,this.state=cc.SCRUBBING,this._playingFromT=0,this._playingToT=0,this._playingRate=t.playingRate||1,this._playingDir=1,this._lastTime=null,this.cameraPath=t.cameraPath,this._tick=this.scene.on("tick",this._updateT,this)}_updateT(){const e=this._cameraPath;if(!e)return;let t,s;const n=performance.now(),i=this._lastTime?.001*(n-this._lastTime):0;if(this._lastTime=n,0!==i)switch(this.state){case cc.SCRUBBING:return;case cc.PLAYING:if(this._t+=this._playingRate*i,t=this._cameraPath.frames.length,0===t||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=cc.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case cc.PLAYING_TO:s=this._t+this._playingRate*i*this._playingDir,(this._playingDir<0&&s<=this._playingToT||this._playingDir>0&&s>=this._playingToT)&&(s=this._playingToT,this.state=cc.SCRUBBING,this.fire("stopped")),this._t=s,e.loadFrame(this._t)}}_ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}set cameraPath(e){this._cameraPath=e}get cameraPath(){return this._cameraPath}set rate(e){this._playingRate=e}get rate(){return this._playingRate}play(){this._cameraPath&&(this._lastTime=null,this.state=cc.PLAYING)}playToT(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=cc.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const s=t.frames[e];s?this.playToT(s.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const s=this._cameraPath;if(!s)return;const n=s.frames[e];n?(this.state=cc.SCRUBBING,this._cameraFlightAnimation.flyTo(n,t)):this.error("flyToFrame - frame index out of range: "+e)}scrubToT(e){const t=this._cameraPath;if(!t)return;this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=cc.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=cc.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=cc.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}cc.STOPPED=0,cc.SCRUBBING=1,cc.PLAYING=2,cc.PLAYING_TO=3;const uc=h.vec3(),hc=h.vec3();h.vec3();const pc=h.vec3([0,-1,0]),Ac=h.vec4([0,0,0,1]);function dc(e){if(!fc(e.width)||!fc(e.height)){const t=document.createElement("canvas");t.width=Ic(e.width),t.height=Ic(e.height);t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function fc(e){return 0==(e&e-1)}function Ic(e){--e;for(let t=1;t<32;t<<=1)e|=e>>t;return e+1}class yc extends _{get type(){return"CubeTexture"}constructor(e,t={}){super(e,t);const s=this.scene.canvas.gl;this._state=new Je({texture:new fn({gl:s,target:s.TEXTURE_CUBE_MAP}),flipY:this._checkFlipY(t.minFilter),encoding:this._checkEncoding(t.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),this._src=t.src,this._images=[],this._loadSrc(t.src),d.memory.textures++}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}_loadSrc(e){const t=this,s=this.scene.canvas.gl;this._images=[];let n=!1,i=0;for(let a=0;a{i(),t()})):(s.eye=this._eye,s.look=this._look,s.up=this._up,i(),s.projection=n.projection)}}const vc=h.vec3();const wc=h.vec3();class gc{constructor(){this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsHasColorize=[],this.objectsOpacity=[],this.numObjects=0}saveObjects(e,t){this.numObjects=0,this._mask=t?m.apply(t,{}):null;const s=e.objects,n=!t||t.visible,i=!t||t.edges,a=!t||t.xrayed,r=!t||t.highlighted,l=!t||t.selected,o=!t||t.clippable,c=!t||t.pickable,u=!t||t.colorize,h=!t||t.opacity;for(let e in s)if(s.hasOwnProperty(e)){const t=s[e],p=this.numObjects;if(n&&(this.objectsVisible[p]=t.visible),i&&(this.objectsEdges[p]=t.edges),a&&(this.objectsXrayed[p]=t.xrayed),r&&(this.objectsHighlighted[p]=t.highlighted),l&&(this.objectsSelected[p]=t.selected),o&&(this.objectsClippable[p]=t.clippable),c&&(this.objectsPickable[p]=t.pickable),u){const e=t.colorize;e?(this.objectsColorize[3*p+0]=e[0],this.objectsColorize[3*p+1]=e[1],this.objectsColorize[3*p+2]=e[2],this.objectsHasColorize[p]=!0):this.objectsHasColorize[p]=!1}h&&(this.objectsOpacity[p]=t.opacity),this.numObjects++}}restoreObjects(e){const t=this._mask,s=!t||t.visible,n=!t||t.edges,i=!t||t.xrayed,a=!t||t.highlighted,r=!t||t.selected,l=!t||t.clippable,o=!t||t.pickable,c=!t||t.colorize,u=!t||t.opacity;var h=0;const p=e.objects;for(let e in p)if(p.hasOwnProperty(e)){const t=p[e];s&&(t.visible=this.objectsVisible[h]),n&&(t.edges=this.objectsEdges[h]),i&&(t.xrayed=this.objectsXrayed[h]),a&&(t.highlighted=this.objectsHighlighted[h]),r&&(t.selected=this.objectsSelected[h]),l&&(t.clippable=this.objectsClippable[h]),o&&(t.pickable=this.objectsPickable[h]),c&&(this.objectsHasColorize[h]?(wc[0]=this.objectsColorize[3*h+0],wc[1]=this.objectsColorize[3*h+1],wc[2]=this.objectsColorize[3*h+2],t.colorize=wc):t.colorize=null),u&&(t.opacity=this.objectsOpacity[h]),h++}}}class Ec extends _{constructor(e,t={}){super(e,t),this._skyboxMesh=new Vs(this,{geometry:new Nt(this,{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Ht(this,{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new gn(this,{src:t.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:t.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),this.size=t.size,this.active=t.active}set size(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}get size(){return this._size}set active(e){this._skyboxMesh.visible=e}get active(){return this._skyboxMesh.visible}}const Tc=h.vec4(),bc=h.vec4(),Dc=h.vec3(),Pc=h.vec3(),Rc=h.vec3(),Cc=h.vec4(),_c=h.vec4(),Bc=h.vec4();class Oc{constructor(e){this._scene=e}dollyToCanvasPos(e,t,s){let n=!1;const i=this._scene.camera;if(e){const t=h.subVec3(e,i.eye,Dc);n=h.lenVec3(t){this._cameraDirty=!0})),this._onProjMatrix=this._scene.camera.on("projMatrix",(()=>{this._cameraDirty=!0})),this._onTick=this._scene.on("tick",(()=>{this.updatePivotElement(),this.updatePivotSphere()}))}createPivotSphere(){const e=this.getPivotPos(),t=h.vec3();h.decomposeMat4(h.inverseMat4(this._scene.viewer.camera.viewMatrix,h.mat4()),t,h.vec4(),h.vec3());const s=h.distVec3(t,e);let n=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(n/=this._scene.camera.ortho.scale/2),j(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new bn(this._scene,Ws({radius:n})),this._pivotSphere=new Vs(this._scene,{geometry:this._pivotSphereGeometry,material:this._pivotSphereMaterial,pickable:!1,position:this._rtcPos,rtcCenter:this._rtcCenter})}destroyPivotSphere(){this._pivotSphere&&(this._pivotSphere.destroy(),this._pivotSphere=null),this._pivotSphereGeometry&&(this._pivotSphereGeometry.destroy(),this._pivotSphereGeometry=null)}updatePivotElement(){const e=this._scene.camera,t=this._scene.canvas;if(this._pivoting&&this._cameraDirty){h.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,h.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const s=t.boundary,n=s[2],i=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*n/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*i/2);let a=t._lastBoundingClientRect;if(!a||t._canvasSizeChanged){const e=t.canvas;a=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(a.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(a.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(j(this.getPivotPos(),this._rtcCenter,this._rtcPos),h.compareVec3(this._rtcPos,this._pivotSphere.position)||(this.destroyPivotSphere(),this.createPivotSphere()))}setPivotElement(e){this._pivotElement=e}enablePivotSphere(e={}){this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);const t=e.color||[1,0,0];this._pivotSphereMaterial=new Ht(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}disablePivotSphere(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}startPivot(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;const e=this._scene.camera;let t=h.lookAtMat4v(e.eye,e.look,e.worldUp);h.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const s=this.getPivotPos();this._cameraOffset[2]+=h.distVec3(e.eye,s),t=h.inverseMat4(t);const n=h.transformVec3(t,this._cameraOffset),i=h.vec3();if(h.subVec3(e.eye,s,i),h.addVec3(i,n),e.zUp){const e=i[1];i[1]=i[2],i[2]=e}this._radius=h.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=h.normalizeVec3(h.subVec3(e.look,e.eye,Sc)),s=h.cross3Vec3(t,e.worldUp,Nc);return h.sqLenVec3(s)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,s=Math.abs(h.distVec3(this._scene.center,t.eye)),n=t.project.transposedMatrix,i=n.subarray(8,12),a=n.subarray(12),r=[0,0,-1,1],l=h.dotVec4(r,i)/h.dotVec4(r,a),o=Lc;t.project.unproject(e,l,Mc,Fc,o);const c=h.normalizeVec3(h.subVec3(o,t.eye,Sc)),u=h.addVec3(t.eye,h.mulVec3Scalar(c,s,Nc),xc);this.setPivotPos(u)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const s=this._scene.camera;var n=-e;const i=-t;1===s.worldUp[2]&&(n=-n),this._azimuth+=.01*-n,this._polar+=.01*i,this._polar=h.clamp(this._polar,.001,Math.PI-.001);const a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===s.worldUp[2]){const e=a[1];a[1]=a[2],a[2]=e}const r=h.lenVec3(h.subVec3(s.look,s.eye,h.vec3())),l=this.getPivotPos();h.addVec3(a,l);let o=h.lookAtMat4v(a,l,s.worldUp);o=h.inverseMat4(o);const c=h.transformVec3(o,this._cameraOffset);o[12]-=c[0],o[13]-=c[1],o[14]-=c[2];const u=[o[8],o[9],o[10]];s.eye=[o[12],o[13],o[14]],h.subVec3(s.eye,h.mulVec3Scalar(u,r),s.look),s.up=[o[4],o[5],o[6]],this.showPivot()}showPivot(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}hidePivot(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}endPivot(){this._pivoting=!1}destroy(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}class Uc{constructor(e,t){this._scene=e.scene,this._cameraControl=e,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=t,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=h.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}update(){if(!this._configs.pointerEnabled)return;if(!this.schedulePickEntity&&!this.schedulePickSurface)return;const e=`${~~this.pickCursorPos[0]}-${~~this.pickCursorPos[1]}-${this.scheduleSnapOrPick}-${this.schedulePickSurface}-${this.schedulePickEntity}`;if(this._lastHash===e)return;this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;const t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){const e=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});e&&(e.snappedToEdge||e.snappedToVertex)?(this.snapPickResult=e,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){const e=this.pickResult.canvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){const e=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}fireEvents(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){const e=new Te;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){const e=this.pickResult.entity.id;this._lastPickedEntityId!==e&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=e)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}const Gc=h.vec2();class jc{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController;let r,l,o,c=0,u=0,p=0,A=0,d=!1;const f=h.vec3();let I=!0;const y=this._scene.canvas.canvas,m=[];function v(e=!0){y.style.cursor="move",c=n.pointerCanvasPos[0],u=n.pointerCanvasPos[1],p=n.pointerCanvasPos[0],A=n.pointerCanvasPos[1],e&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(d=!0,f.set(a.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:m[e.input.KEY_SHIFT]||s.planView?(r=!0,v()):(r=!0,v(!1));break;case 2:l=!0,v();break;case 3:o=!0,s.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!r&&!l&&!o)return;const t=e.canvas.boundary,a=t[2],p=t[3],A=n.pointerCanvasPos[0],I=n.pointerCanvasPos[1];if(m[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&l||s.panRightClick&&o){const t=A-c,s=I-u,n=e.camera;if("perspective"===n.projection){const a=Math.abs(d?h.lenVec3(h.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=1.5*t*a/p,i.panDeltaY+=1.5*s*a/p}else i.panDeltaX+=.5*n.ortho.scale*(t/p),i.panDeltaY+=.5*n.ortho.scale*(s/p)}else!r||l||o||s.planView||(s.firstPerson?(i.rotateDeltaY-=(A-c)/a*s.dragRotationRate/2,i.rotateDeltaX+=(I-u)/p*(s.dragRotationRate/4)):(i.rotateDeltaY-=(A-c)/a*(1.5*s.dragRotationRate),i.rotateDeltaX+=(I-u)/p*(1.5*s.dragRotationRate)));c=A,u=I}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&n.mouseover&&(I=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:r=!1,l=!1,o=!1}}),y.addEventListener("mouseup",this._mouseUpHandler=e=>{if(s.active&&s.pointerEnabled){if(3===e.which){!function(e,t){if(e){let s=e.target,n=0,i=0,a=0,r=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,a+=s.scrollLeft,r+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+a-n,t[1]=e.pageY+r-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Gc);const s=Gc[0],n=Gc[1];Math.abs(s-p)<3&&Math.abs(n-A)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Gc,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const w=1/60;let g=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var a=null!==g?t-g:0;g=t,a>.05&&(a=.05),a{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const r=i._isKeyDownForAction(i.AXIS_VIEW_RIGHT),l=i._isKeyDownForAction(i.AXIS_VIEW_BACK),o=i._isKeyDownForAction(i.AXIS_VIEW_LEFT),c=i._isKeyDownForAction(i.AXIS_VIEW_FRONT),u=i._isKeyDownForAction(i.AXIS_VIEW_TOP),p=i._isKeyDownForAction(i.AXIS_VIEW_BOTTOM);if(!(r||l||o||c||u||p))return;const A=e.aabb,d=h.getAABB3Diag(A);h.getAABB3Center(A,Vc);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*h.DEGTORAD)),I=1.1*d;Kc.orthoScale=I,r?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldRight,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):l?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldForward,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):o?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldRight,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):c?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldForward,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(a.worldUp)):u?(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldUp,f,kc),zc)),Kc.look.set(Vc),Kc.up.set(h.normalizeVec3(h.mulVec3Scalar(a.worldForward,1,Qc),Wc))):p&&(Kc.eye.set(h.addVec3(Vc,h.mulVec3Scalar(a.worldUp,-f,kc),zc)),Kc.look.set(Vc),Kc.up.set(h.normalizeVec3(h.mulVec3Scalar(a.worldForward,-1,Qc)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(Vc),t.cameraFlight.duration>0?t.cameraFlight.flyTo(Kc,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(Kc),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Xc{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let o=!1,c=!1;const u=this._scene.canvas.canvas,p=s=>{let n;s&&s.worldPos&&(n=s.worldPos);const i=s&&s.entity?s.entity.aabb:e.aabb;if(n){const s=e.camera;h.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})},A=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(o||c)return;const i=l.hasSubs("hover"),r=l.hasSubs("hoverEnter"),u=l.hasSubs("hoverOut"),h=l.hasSubs("hoverOff"),p=l.hasSubs("hoverSurface"),A=l.hasSubs("hoverSnapOrSurface");if(i||r||u||h||p||A)if(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=p,a.scheduleSnapOrPick=A,a.update(),a.pickResult){if(a.pickResult.entity){const t=a.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),l.fire("hoverEnter",a.pickResult,!0),this._lastPickedEntityId=t)}l.fire("hover",a.pickResult,!0),(a.pickResult.worldPos||a.pickResult.snappedWorldPos)&&l.fire("hoverSurface",a.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),l.fire("hoverOff",{canvasPos:a.pickCursorPos},!0)});u.addEventListener("mousemove",A),u.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(o=!0),3===t.which&&(c=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(n.mouseDownClientX=t.clientX,n.mouseDownClientY=t.clientY,n.mouseDownCursorX=n.pointerCanvasPos[0],n.mouseDownCursorY=n.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),1===t.which))){const t=a.pickResult;t&&t.worldPos?(r.setPivotPos(t.worldPos),r.startPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),r.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(o=!1),3===e.which&&(c=!1),r.getPivoting()&&r.endPivot()}),u.addEventListener("mouseup",this._canvasMouseUpHandler=i=>{if(!s.active||!s.pointerEnabled)return;if(!(1===i.which))return;if(r.hidePivot(),Math.abs(i.clientX-n.mouseDownClientX)>3||Math.abs(i.clientY-n.mouseDownClientY)>3)return;const o=l.hasSubs("picked"),c=l.hasSubs("pickedNothing"),u=l.hasSubs("pickedSurface"),A=l.hasSubs("doublePicked"),d=l.hasSubs("doublePickedSurface"),f=l.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||A||d||f))return(o||c||u)&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=u,a.update(),a.pickResult?(l.fire("picked",a.pickResult,!0),a.pickedSurface&&l.fire("pickedSurface",a.pickResult,!0)):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo,a.schedulePickSurface=u,a.update();const e=a.pickResult,i=a.pickedSurface;this._timeout=setTimeout((()=>{e?(l.fire("picked",e,!0),i&&(l.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo||A||d,a.schedulePickSurface=a.schedulePickEntity&&d,a.update(),a.pickResult){if(l.fire("doublePicked",a.pickResult,!0),a.pickedSurface&&l.fire("doublePickedSurface",a.pickResult,!0),s.doublePickFlyTo&&(p(a.pickResult),!s.firstPerson&&s.followPointer)){const e=a.pickResult.entity.aabb,s=h.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(l.fire("doublePickedNothing",{canvasPos:n.pointerCanvasPos},!0),s.doublePickFlyTo&&(p(),!s.firstPerson&&s.followPointer)){const s=e.aabb,n=h.getAABB3Center(s);t.pivotController.setPivotPos(n),t.pivotController.startPivot()&&t.pivotController.showPivot()}this._clicks=0}},!1)}reset(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}destroy(){const e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}class qc{constructor(e,t,s,n,i){this._scene=e;const a=e.input,r=[],l=e.canvas.canvas;let o=!0;this._onSceneMouseMove=a.on("mousemove",(()=>{o=!0})),this._onSceneKeyDown=a.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&n.mouseover&&(r[t]=!0,t===a.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=a.on("keyup",(n=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(r[n]=!1,n===a.KEY_SHIFT&&(l.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(l=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const c=t.cameraControl,u=l.deltaTime/1e3;if(!s.planView){const e=c._isKeyDownForAction(c.ROTATE_Y_POS,r),n=c._isKeyDownForAction(c.ROTATE_Y_NEG,r),a=c._isKeyDownForAction(c.ROTATE_X_POS,r),l=c._isKeyDownForAction(c.ROTATE_X_NEG,r),o=u*s.keyboardRotationRate;(e||n||a||l)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?i.rotateDeltaY+=o:n&&(i.rotateDeltaY-=o),a?i.rotateDeltaX+=o:l&&(i.rotateDeltaX-=o),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!r[a.KEY_CTRL]&&!r[a.KEY_ALT]){const e=c._isKeyDownForAction(c.DOLLY_BACKWARDS,r),a=c._isKeyDownForAction(c.DOLLY_FORWARDS,r);if(e||a){const r=u*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),a?i.dollyDelta-=r:e&&(i.dollyDelta+=r),o&&(n.followPointerDirty=!0,o=!1)}}const h=c._isKeyDownForAction(c.PAN_FORWARDS,r),p=c._isKeyDownForAction(c.PAN_BACKWARDS,r),A=c._isKeyDownForAction(c.PAN_LEFT,r),d=c._isKeyDownForAction(c.PAN_RIGHT,r),f=c._isKeyDownForAction(c.PAN_UP,r),I=c._isKeyDownForAction(c.PAN_DOWN,r),y=(r[a.KEY_ALT]?.3:1)*u*s.keyboardPanRate;(h||p||A||d||f||I)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),I?i.panDeltaY+=y:f&&(i.panDeltaY+=-y),d?i.panDeltaX+=-y:A&&(i.panDeltaX+=y),p?i.panDeltaZ+=y:h&&(i.panDeltaZ+=-y))}))}reset(){}destroy(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}const Jc=h.vec3();class Zc{constructor(e,t,s,n,i){this._scene=e;const a=e.camera,r=t.pickController,l=t.pivotController,o=t.panController;let c=1,u=1,p=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(i.dollyDelta)<.001&&(i.dollyDelta=0),Math.abs(i.rotateDeltaX)<.001&&(i.rotateDeltaX=0),Math.abs(i.rotateDeltaY)<.001&&(i.rotateDeltaY=0),0===i.rotateDeltaX&&0===i.rotateDeltaY||(i.dollyDelta=0),s.followPointer&&--c<=0&&(c=1,0!==i.dollyDelta)){if(0===i.rotateDeltaY&&0===i.rotateDeltaX&&s.followPointer&&n.followPointerDirty&&(r.pickCursorPos=n.pointerCanvasPos,r.schedulePickSurface=!0,r.update(),r.pickResult&&r.pickResult.worldPos?p=r.pickResult.worldPos:(u=1,p=null),n.followPointerDirty=!1),p){const t=Math.abs(h.lenVec3(h.subVec3(p,e.camera.eye,Jc)));u=t/s.dollyProximityThreshold}u{n.mouseover=!0}),a.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{n.mouseover=!1,a.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{eu(e,a,n.pointerCanvasPos)}),a.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(eu(e,a,n.pointerCanvasPos),n.mouseover=!0)}),a.addEventListener("mouseup",this._mouseUpHandler=e=>{s.active&&s.pointerEnabled})}reset(){}destroy(){const e=this._scene.canvas.canvas;document.removeEventListener("mousemove",this._mouseMoveHandler),e.removeEventListener("mouseenter",this._mouseEnterHandler),e.removeEventListener("mouseleave",this._mouseLeaveHandler),e.removeEventListener("mousedown",this._mouseDownHandler),e.removeEventListener("mouseup",this._mouseUpHandler)}}function eu(e,t,s){if(e){const{x:n,y:i}=t.getBoundingClientRect();s[0]=e.clientX-n,s[1]=e.clientY-i}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const tu=function(e,t){if(e){let s=e.target,n=0,i=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class su{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=h.vec2(),o=h.vec2(),c=h.vec2(),u=h.vec2(),p=[],A=this._scene.canvas.canvas;let d=0,f=!1;this._onTick=e.on("tick",(()=>{f=!1})),A.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!s.active||!s.pointerEnabled)return;t.preventDefault();const i=t.touches,o=t.changedTouches;for(n.touchStartTime=Date.now(),1===i.length&&1===o.length&&(tu(i[0],l),s.followPointer&&(a.pickCursorPos=l,a.schedulePickSurface=!0,a.update(),s.planView||(a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(r.setPivotPos(a.pickResult.worldPos),!s.firstPerson&&r.startPivot()&&r.showPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),!s.firstPerson&&r.startPivot()&&r.showPivot()))));p.length{r.getPivoting()&&r.endPivot()}),A.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const r=e.canvas.boundary,l=r[2],A=r[3],I=t.touches;if(t.touches.length===d){if(1===d){tu(I[0],o),h.subVec2(o,p[0],u);const t=u[0],a=u[1];if(null!==n.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(a)>s.longTapRadius)&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),s.planView){const n=e.camera;if("perspective"===n.projection){const r=Math.abs(e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=t*r/A*s.touchPanRate,i.panDeltaY+=a*r/A*s.touchPanRate}else i.panDeltaX+=.5*n.ortho.scale*(t/A)*s.touchPanRate,i.panDeltaY+=.5*n.ortho.scale*(a/A)*s.touchPanRate}else i.rotateDeltaY-=t/l*(1*s.dragRotationRate),i.rotateDeltaX+=a/A*(1.5*s.dragRotationRate)}else if(2===d){const t=I[0],r=I[1];tu(t,o),tu(r,c);const l=h.geometricMeanVec2(p[0],p[1]),u=h.geometricMeanVec2(o,c),d=h.vec2();h.subVec2(l,u,d);const f=d[0],y=d[1],m=e.camera,v=h.distVec2([t.pageX,t.pageY],[r.pageX,r.pageY]),w=(h.distVec2(p[0],p[1])-v)*s.touchDollyRate;if(i.dollyDelta=w,Math.abs(w)<1)if("perspective"===m.projection){const t=a.pickResult?a.pickResult.worldPos:e.center,n=Math.abs(h.lenVec3(h.subVec3(t,e.camera.eye,[])))*Math.tan(m.perspective.fov/2*Math.PI/180);i.panDeltaX-=f*n/A*s.touchPanRate,i.panDeltaY-=y*n/A*s.touchPanRate}else i.panDeltaX-=.5*m.ortho.scale*(f/A)*s.touchPanRate,i.panDeltaY-=.5*m.ortho.scale*(y/A)*s.touchPanRate;n.pointerCanvasPos=u}for(let e=0;e{let n;s&&s.worldPos&&(n=s.worldPos);const i=s?s.entity.aabb:e.aabb;if(n){const s=e.camera;h.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})};A.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null);const i=e.touches,a=e.changedTouches;if(l=Date.now(),1===i.length&&1===a.length){u=l,nu(i[0],c);const a=c[0],r=c[1],o=i[0].pageX,h=i[0].pageY;n.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(o),Math.round(h)],canvasPos:[Math.round(a),Math.round(r)],event:e},!0),n.longTouchTimeout=null}),s.longTapTimeout)}else u=-1;for(;o.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),i=e.touches,l=e.changedTouches,A=r.hasSubs("pickedSurface");null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),0===i.length&&1===l.length&&u>-1&&t-u<150&&(p>-1&&u-p<325?(nu(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=A,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("doublePicked",a.pickResult),a.pickedSurface&&r.fire("doublePickedSurface",a.pickResult),s.doublePickFlyTo&&d(a.pickResult)):(r.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),p=-1):h.distVec2(o[0],c)<4&&(nu(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=A,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("picked",a.pickResult),a.pickedSurface&&r.fire("pickedSurface",a.pickResult)):r.fire("pickedNothing"),p=t),u=-1),o.length=i.length;for(let e=0,t=i.length;e{e.preventDefault()},this._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},this._states={pointerCanvasPos:h.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:h.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const s=this.scene;this._controllers={cameraControl:this,pickController:new Uc(this,this._configs),pivotController:new Hc(s,this._configs),panController:new Oc(s),cameraFlight:new oc(this,{duration:.5})},this._handlers=[new $c(this.scene,this._controllers,this._configs,this._states,this._updates),new su(this.scene,this._controllers,this._configs,this._states,this._updates),new jc(this.scene,this._controllers,this._configs,this._states,this._updates),new Yc(this.scene,this._controllers,this._configs,this._states,this._updates),new Xc(this.scene,this._controllers,this._configs,this._states,this._updates),new iu(this.scene,this._controllers,this._configs,this._states,this._updates),new qc(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Zc(this.scene,this._controllers,this._configs,this._states,this._updates),this.navMode=t.navMode,t.planView&&(this.planView=t.planView),this.constrainVertical=t.constrainVertical,t.keyboardLayout?this.keyboardLayout=t.keyboardLayout:this.keyMap=t.keyMap,this.doublePickFlyTo=t.doublePickFlyTo,this.panRightClick=t.panRightClick,this.active=t.active,this.followPointer=t.followPointer,this.rotationInertia=t.rotationInertia,this.keyboardPanRate=t.keyboardPanRate,this.touchPanRate=t.touchPanRate,this.keyboardRotationRate=t.keyboardRotationRate,this.dragRotationRate=t.dragRotationRate,this.touchDollyRate=t.touchDollyRate,this.dollyInertia=t.dollyInertia,this.dollyProximityThreshold=t.dollyProximityThreshold,this.dollyMinSpeed=t.dollyMinSpeed,this.panInertia=t.panInertia,this.pointerEnabled=!0,this.keyboardDollyRate=t.keyboardDollyRate,this.mouseWheelDollyRate=t.mouseWheelDollyRate}set keyMap(e){if(e=e||"qwerty",m.isString(e)){const t=this.scene.input,s={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":s[this.PAN_LEFT]=[t.KEY_A],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_Z],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":s[this.PAN_LEFT]=[t.KEY_Q],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_W],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=s}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const s=this._keyMap[e];if(!s)return!1;t||(t=this.scene.input.keyDown);for(let e=0,n=s.length;e0?hu(t):null,r=s&&s.length>0?hu(s):null,l=e=>{if(!e)return;var t=!0;(r&&r[e.type]||a&&!a[e.type])&&(t=!1),t&&n.push(e.id);const s=e.children;if(s)for(var i=0,o=s.length;i * Copyright (c) 2022 Niklas von Hertzen @@ -34,4 +34,4 @@ 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 pu=function(e,t){return pu=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])},pu(e,t)};function Au(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function s(){this.constructor=e}pu(e,t),e.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}var du=function(){return du=Object.assign||function(e){for(var t,s=1,n=arguments.length;s0&&i[i.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=55296&&i<=56319&&s>10),r%1024+56320)),(i+1===s||n.length>16384)&&(a+=String.fromCharCode.apply(String,n),n.length=0)}return a},Eu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Tu="undefined"==typeof Uint8Array?[]:new Uint8Array(256),bu=0;bu=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Bu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ou="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Su=0;Su>4,u[o++]=(15&n)<<4|i>>2,u[o++]=(3&i)<<6|63&a;return c}(e),r=Array.isArray(a)?function(e){for(var t=e.length,s=[],n=0;n0;){var r=n[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var l=s;l<=n.length;){var o;if((o=n[++l])===t)return!0;if(o!==Nu)break}if(r!==Nu)break}return!1},Ah=function(e,t){for(var s=e;s>=0;){var n=t[s];if(n!==Nu)return n;s--}return 0},dh=function(e,t,s,n,i){if(0===s[n])return"×";var a=n-1;if(Array.isArray(i)&&!0===i[a])return"×";var r=a-1,l=a+1,o=t[a],c=r>=0?t[r]:0,u=t[l];if(2===o&&3===u)return"×";if(-1!==rh.indexOf(o))return"!";if(-1!==rh.indexOf(u))return"×";if(-1!==lh.indexOf(u))return"×";if(8===Ah(a,t))return"÷";if(11===ih.get(e[a]))return"×";if((o===Yu||o===Xu)&&11===ih.get(e[l]))return"×";if(7===o||7===u)return"×";if(9===o)return"×";if(-1===[Nu,xu,Lu].indexOf(o)&&9===u)return"×";if(-1!==[Mu,Fu,Hu,Vu,zu].indexOf(u))return"×";if(Ah(a,t)===ju)return"×";if(ph(23,ju,a,t))return"×";if(ph([Mu,Fu],Gu,a,t))return"×";if(ph(12,12,a,t))return"×";if(o===Nu)return"÷";if(23===o||23===u)return"×";if(16===u||16===o)return"÷";if(-1!==[xu,Lu,Gu].indexOf(u)||14===o)return"×";if(36===c&&-1!==hh.indexOf(o))return"×";if(o===zu&&36===u)return"×";if(u===Uu)return"×";if(-1!==ah.indexOf(u)&&o===ku||-1!==ah.indexOf(o)&&u===ku)return"×";if(o===Wu&&-1!==[Zu,Yu,Xu].indexOf(u)||-1!==[Zu,Yu,Xu].indexOf(o)&&u===Qu)return"×";if(-1!==ah.indexOf(o)&&-1!==oh.indexOf(u)||-1!==oh.indexOf(o)&&-1!==ah.indexOf(u))return"×";if(-1!==[Wu,Qu].indexOf(o)&&(u===ku||-1!==[ju,Lu].indexOf(u)&&t[l+1]===ku)||-1!==[ju,Lu].indexOf(o)&&u===ku||o===ku&&-1!==[ku,zu,Vu].indexOf(u))return"×";if(-1!==[ku,zu,Vu,Mu,Fu].indexOf(u))for(var h=a;h>=0;){if((p=t[h])===ku)return"×";if(-1===[zu,Vu].indexOf(p))break;h--}if(-1!==[Wu,Qu].indexOf(u))for(h=-1!==[Mu,Fu].indexOf(o)?r:a;h>=0;){var p;if((p=t[h])===ku)return"×";if(-1===[zu,Vu].indexOf(p))break;h--}if($u===o&&-1!==[$u,eh,qu,Ju].indexOf(u)||-1!==[eh,qu].indexOf(o)&&-1!==[eh,th].indexOf(u)||-1!==[th,Ju].indexOf(o)&&u===th)return"×";if(-1!==uh.indexOf(o)&&-1!==[Uu,Qu].indexOf(u)||-1!==uh.indexOf(u)&&o===Wu)return"×";if(-1!==ah.indexOf(o)&&-1!==ah.indexOf(u))return"×";if(o===Vu&&-1!==ah.indexOf(u))return"×";if(-1!==ah.concat(ku).indexOf(o)&&u===ju&&-1===nh.indexOf(e[l])||-1!==ah.concat(ku).indexOf(u)&&o===Fu)return"×";if(41===o&&41===u){for(var A=s[a],d=1;A>0&&41===t[--A];)d++;if(d%2!=0)return"×"}return o===Yu&&u===Xu?"×":"÷"},fh=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var s=function(e,t){void 0===t&&(t="strict");var s=[],n=[],i=[];return e.forEach((function(e,a){var r=ih.get(e);if(r>50?(i.push(!0),r-=50):i.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return n.push(a),s.push(16);if(4===r||11===r){if(0===a)return n.push(a),s.push(Ku);var l=s[a-1];return-1===ch.indexOf(l)?(n.push(n[a-1]),s.push(l)):(n.push(a),s.push(Ku))}return n.push(a),31===r?s.push("strict"===t?Gu:Zu):r===sh||29===r?s.push(Ku):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?s.push(Zu):s.push(Ku):void s.push(r)})),[n,s,i]}(e,t.lineBreak),n=s[0],i=s[1],a=s[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(i=i.map((function(e){return-1!==[ku,Ku,sh].indexOf(e)?Zu:e})));var r="keep-all"===t.wordBreak?a.map((function(t,s){return t&&e[s]>=19968&&e[s]<=40959})):void 0;return[n,i,r]},Ih=function(){function e(e,t,s,n){this.codePoints=e,this.required="!"===t,this.start=s,this.end=n}return e.prototype.slice=function(){return gu.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),yh=function(e){return e>=48&&e<=57},mh=function(e){return yh(e)||e>=65&&e<=70||e>=97&&e<=102},vh=function(e){return 10===e||9===e||32===e},wh=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},gh=function(e){return wh(e)||yh(e)||45===e},Eh=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},Th=function(e,t){return 92===e&&10!==t},bh=function(e,t,s){return 45===e?wh(t)||Th(t,s):!!wh(e)||!(92!==e||!Th(e,t))},Dh=function(e,t,s){return 43===e||45===e?!!yh(t)||46===t&&yh(s):yh(46===e?t:e)},Ph=function(e){var t=0,s=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(s=-1),t++);for(var n=[];yh(e[t]);)n.push(e[t++]);var i=n.length?parseInt(gu.apply(void 0,n),10):0;46===e[t]&&t++;for(var a=[];yh(e[t]);)a.push(e[t++]);var r=a.length,l=r?parseInt(gu.apply(void 0,a),10):0;69!==e[t]&&101!==e[t]||t++;var o=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(o=-1),t++);for(var c=[];yh(e[t]);)c.push(e[t++]);var u=c.length?parseInt(gu.apply(void 0,c),10):0;return s*(i+l*Math.pow(10,-r))*Math.pow(10,o*u)},Rh={type:2},Ch={type:3},_h={type:4},Bh={type:13},Oh={type:8},Sh={type:21},Nh={type:9},xh={type:10},Lh={type:11},Mh={type:12},Fh={type:14},Hh={type:23},Uh={type:1},Gh={type:25},jh={type:24},Vh={type:26},kh={type:27},Qh={type:28},Wh={type:29},zh={type:31},Kh={type:32},Yh=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(wu(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Kh;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),s=this.peekCodePoint(1),n=this.peekCodePoint(2);if(gh(t)||Th(s,n)){var i=bh(t,s,n)?2:1;return{type:5,value:this.consumeName(),flags:i}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Bh;break;case 39:return this.consumeStringToken(39);case 40:return Rh;case 41:return Ch;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Fh;break;case 43:if(Dh(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return _h;case 45:var a=e,r=this.peekCodePoint(0),l=this.peekCodePoint(1);if(Dh(a,r,l))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(bh(a,r,l))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(45===r&&62===l)return this.consumeCodePoint(),this.consumeCodePoint(),jh;break;case 46:if(Dh(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(-1===o)return this.consumeToken()}break;case 58:return Vh;case 59:return kh;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),Gh;break;case 64:var c=this.peekCodePoint(0),u=this.peekCodePoint(1),h=this.peekCodePoint(2);if(bh(c,u,h))return{type:7,value:this.consumeName()};break;case 91:return Qh;case 92:if(Th(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return Wh;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Oh;break;case 123:return Lh;case 125:return Mh;case 117:case 85:var p=this.peekCodePoint(0),A=this.peekCodePoint(1);return 43!==p||!mh(A)&&63!==A||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Nh;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Sh;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),xh;break;case-1:return Kh}return vh(e)?(this.consumeWhiteSpace(),zh):yh(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):wh(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:gu(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();mh(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var s=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),s=!0;if(s)return{type:30,start:parseInt(gu.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(gu.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var n=parseInt(gu.apply(void 0,e),16);if(45===this.peekCodePoint(0)&&mh(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var i=[];mh(t)&&i.length<6;)i.push(t),t=this.consumeCodePoint();return{type:30,start:n,end:parseInt(gu.apply(void 0,i),16)}}return{type:30,start:n,end:n}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var s=this.consumeStringToken(this.consumeCodePoint());return 0===s.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:s.value}):(this.consumeBadUrlRemnants(),Hh)}for(;;){var n=this.consumeCodePoint();if(-1===n||41===n)return{type:22,value:gu.apply(void 0,e)};if(vh(n))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:gu.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Hh);if(34===n||39===n||40===n||Eh(n))return this.consumeBadUrlRemnants(),Hh;if(92===n){if(!Th(n,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Hh;e.push(this.consumeEscapedCodePoint())}else e.push(n)}},e.prototype.consumeWhiteSpace=function(){for(;vh(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||-1===e)return;Th(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var s=Math.min(5e4,e);t+=gu.apply(void 0,this._value.splice(0,s)),e-=s}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",s=0;;){var n=this._value[s];if(-1===n||void 0===n||n===e)return{type:0,value:t+=this.consumeStringSlice(s)};if(10===n)return this._value.splice(0,s),Uh;if(92===n){var i=this._value[s+1];-1!==i&&void 0!==i&&(10===i?(t+=this.consumeStringSlice(s),s=-1,this._value.shift()):Th(n,i)&&(t+=this.consumeStringSlice(s),t+=gu(this.consumeEscapedCodePoint()),s=-1))}s++}},e.prototype.consumeNumber=function(){var e=[],t=4,s=this.peekCodePoint(0);for(43!==s&&45!==s||e.push(this.consumeCodePoint());yh(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0);var n=this.peekCodePoint(1);if(46===s&&yh(n))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;yh(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0),n=this.peekCodePoint(1);var i=this.peekCodePoint(2);if((69===s||101===s)&&((43===n||45===n)&&yh(i)||yh(n)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;yh(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Ph(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],s=e[1],n=this.peekCodePoint(0),i=this.peekCodePoint(1),a=this.peekCodePoint(2);return bh(n,i,a)?{type:15,number:t,flags:s,unit:this.consumeName()}:37===n?(this.consumeCodePoint(),{type:16,number:t,flags:s}):{type:17,number:t,flags:s}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(mh(e)){for(var t=gu(e);mh(this.peekCodePoint(0))&&t.length<6;)t+=gu(this.consumeCodePoint());vh(this.peekCodePoint(0))&&this.consumeCodePoint();var s=parseInt(t,16);return 0===s||function(e){return e>=55296&&e<=57343}(s)||s>1114111?65533:s}return-1===e?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(gh(t))e+=gu(t);else{if(!Th(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=gu(this.consumeEscapedCodePoint())}}},e}(),Xh=function(){function e(e){this._tokens=e}return e.create=function(t){var s=new Yh;return s.write(t),new e(s.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},s=this.consumeToken();;){if(32===s.type||ip(s,e))return t;this.reconsumeToken(s),t.values.push(this.consumeComponentValue()),s=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var s=this.consumeToken();if(32===s.type||3===s.type)return t;this.reconsumeToken(s),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Kh:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),qh=function(e){return 15===e.type},Jh=function(e){return 17===e.type},Zh=function(e){return 20===e.type},$h=function(e){return 0===e.type},ep=function(e,t){return Zh(e)&&e.value===t},tp=function(e){return 31!==e.type},sp=function(e){return 31!==e.type&&4!==e.type},np=function(e){var t=[],s=[];return e.forEach((function(e){if(4===e.type){if(0===s.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(s),void(s=[])}31!==e.type&&s.push(e)})),s.length&&t.push(s),t},ip=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},ap=function(e){return 17===e.type||15===e.type},rp=function(e){return 16===e.type||ap(e)},lp=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},op={type:17,number:0,flags:4},cp={type:16,number:50,flags:4},up={type:16,number:100,flags:4},hp=function(e,t,s){var n=e[0],i=e[1];return[pp(n,t),pp(void 0!==i?i:n,s)]},pp=function(e,t){if(16===e.type)return e.number/100*t;if(qh(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Ap=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case"grad":return Math.PI/200*t.number;case"rad":return t.number;case"turn":return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},dp=function(e){return 15===e.type&&("deg"===e.unit||"grad"===e.unit||"rad"===e.unit||"turn"===e.unit)},fp=function(e){switch(e.filter(Zh).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[op,op];case"to top":case"bottom":return Ip(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[op,up];case"to right":case"left":return Ip(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[up,up];case"to bottom":case"top":return Ip(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[up,op];case"to left":case"right":return Ip(270)}return 0},Ip=function(e){return Math.PI*e/180},yp=function(e,t){if(18===t.type){var s=Dp[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return s(e,t.values)}if(5===t.type){if(3===t.value.length){var n=t.value.substring(0,1),i=t.value.substring(1,2),a=t.value.substring(2,3);return wp(parseInt(n+n,16),parseInt(i+i,16),parseInt(a+a,16),1)}if(4===t.value.length){n=t.value.substring(0,1),i=t.value.substring(1,2),a=t.value.substring(2,3);var r=t.value.substring(3,4);return wp(parseInt(n+n,16),parseInt(i+i,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===t.value.length){n=t.value.substring(0,2),i=t.value.substring(2,4),a=t.value.substring(4,6);return wp(parseInt(n,16),parseInt(i,16),parseInt(a,16),1)}if(8===t.value.length){n=t.value.substring(0,2),i=t.value.substring(2,4),a=t.value.substring(4,6),r=t.value.substring(6,8);return wp(parseInt(n,16),parseInt(i,16),parseInt(a,16),parseInt(r,16)/255)}}if(20===t.type){var l=Rp[t.value.toUpperCase()];if(void 0!==l)return l}return Rp.TRANSPARENT},mp=function(e){return 0==(255&e)},vp=function(e){var t=255&e,s=255&e>>8,n=255&e>>16,i=255&e>>24;return t<255?"rgba("+i+","+n+","+s+","+t/255+")":"rgb("+i+","+n+","+s+")"},wp=function(e,t,s,n){return(e<<24|t<<16|s<<8|Math.round(255*n)<<0)>>>0},gp=function(e,t){if(17===e.type)return e.number;if(16===e.type){var s=3===t?1:255;return 3===t?e.number/100*s:Math.round(e.number/100*s)}return 0},Ep=function(e,t){var s=t.filter(sp);if(3===s.length){var n=s.map(gp),i=n[0],a=n[1],r=n[2];return wp(i,a,r,1)}if(4===s.length){var l=s.map(gp),o=(i=l[0],a=l[1],r=l[2],l[3]);return wp(i,a,r,o)}return 0};function Tp(e,t,s){return s<0&&(s+=1),s>=1&&(s-=1),s<1/6?(t-e)*s*6+e:s<.5?t:s<2/3?6*(t-e)*(2/3-s)+e:e}var bp=function(e,t){var s=t.filter(sp),n=s[0],i=s[1],a=s[2],r=s[3],l=(17===n.type?Ip(n.number):Ap(e,n))/(2*Math.PI),o=rp(i)?i.number/100:0,c=rp(a)?a.number/100:0,u=void 0!==r&&rp(r)?pp(r,1):1;if(0===o)return wp(255*c,255*c,255*c,1);var h=c<=.5?c*(o+1):c+o-c*o,p=2*c-h,A=Tp(p,h,l+1/3),d=Tp(p,h,l),f=Tp(p,h,l-1/3);return wp(255*A,255*d,255*f,u)},Dp={hsl:bp,hsla:bp,rgb:Ep,rgba:Ep},Pp=function(e,t){return yp(e,Xh.create(t).parseComponentValue())},Rp={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Cp={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Zh(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},_p={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Bp=function(e,t){var s=yp(e,t[0]),n=t[1];return n&&rp(n)?{color:s,stop:n}:{color:s,stop:null}},Op=function(e,t){var s=e[0],n=e[e.length-1];null===s.stop&&(s.stop=op),null===n.stop&&(n.stop=up);for(var i=[],a=0,r=0;ra?i.push(o):i.push(a),a=o}else i.push(null)}var c=null;for(r=0;re.optimumDistance)?{optimumCorner:t,optimumDistance:l}:e}),{optimumDistance:i?1/0:-1/0,optimumCorner:null}).optimumCorner},Lp=function(e,t){var s=Ip(180),n=[];return np(t).forEach((function(t,i){if(0===i){var a=t[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(s=fp(t));if(dp(a))return void(s=(Ap(e,a)+Ip(270))%Ip(360))}var r=Bp(e,t);n.push(r)})),{angle:s,stops:n,type:1}},Mp=function(e,t){var s=0,n=3,i=[],a=[];return np(t).forEach((function(t,r){var l=!0;if(0===r?l=t.reduce((function(e,t){if(Zh(t))switch(t.value){case"center":return a.push(cp),!1;case"top":case"left":return a.push(op),!1;case"right":case"bottom":return a.push(up),!1}else if(rp(t)||ap(t))return a.push(t),!1;return e}),l):1===r&&(l=t.reduce((function(e,t){if(Zh(t))switch(t.value){case"circle":return s=0,!1;case"ellipse":return s=1,!1;case"contain":case"closest-side":return n=0,!1;case"farthest-side":return n=1,!1;case"closest-corner":return n=2,!1;case"cover":case"farthest-corner":return n=3,!1}else if(ap(t)||rp(t))return Array.isArray(n)||(n=[]),n.push(t),!1;return e}),l)),l){var o=Bp(e,t);i.push(o)}})),{size:n,shape:s,stops:i,position:a,type:2}},Fp=function(e,t){if(22===t.type){var s={url:t.value,type:0};return e.cache.addImage(t.value),s}if(18===t.type){var n=Up[t.name];if(void 0===n)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return n(e,t.values)}throw new Error("Unsupported image type "+t.type)};var Hp,Up={"linear-gradient":function(e,t){var s=Ip(180),n=[];return np(t).forEach((function(t,i){if(0===i){var a=t[0];if(20===a.type&&"to"===a.value)return void(s=fp(t));if(dp(a))return void(s=Ap(e,a))}var r=Bp(e,t);n.push(r)})),{angle:s,stops:n,type:1}},"-moz-linear-gradient":Lp,"-ms-linear-gradient":Lp,"-o-linear-gradient":Lp,"-webkit-linear-gradient":Lp,"radial-gradient":function(e,t){var s=0,n=3,i=[],a=[];return np(t).forEach((function(t,r){var l=!0;if(0===r){var o=!1;l=t.reduce((function(e,t){if(o)if(Zh(t))switch(t.value){case"center":return a.push(cp),e;case"top":case"left":return a.push(op),e;case"right":case"bottom":return a.push(up),e}else(rp(t)||ap(t))&&a.push(t);else if(Zh(t))switch(t.value){case"circle":return s=0,!1;case"ellipse":return s=1,!1;case"at":return o=!0,!1;case"closest-side":return n=0,!1;case"cover":case"farthest-side":return n=1,!1;case"contain":case"closest-corner":return n=2,!1;case"farthest-corner":return n=3,!1}else if(ap(t)||rp(t))return Array.isArray(n)||(n=[]),n.push(t),!1;return e}),l)}if(l){var c=Bp(e,t);i.push(c)}})),{size:n,shape:s,stops:i,position:a,type:2}},"-moz-radial-gradient":Mp,"-ms-radial-gradient":Mp,"-o-radial-gradient":Mp,"-webkit-radial-gradient":Mp,"-webkit-gradient":function(e,t){var s=Ip(180),n=[],i=1;return np(t).forEach((function(t,s){var a=t[0];if(0===s){if(Zh(a)&&"linear"===a.value)return void(i=1);if(Zh(a)&&"radial"===a.value)return void(i=2)}if(18===a.type)if("from"===a.name){var r=yp(e,a.values[0]);n.push({stop:op,color:r})}else if("to"===a.name){r=yp(e,a.values[0]);n.push({stop:up,color:r})}else if("color-stop"===a.name){var l=a.values.filter(sp);if(2===l.length){r=yp(e,l[1]);var o=l[0];Jh(o)&&n.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===i?{angle:(s+Ip(180))%Ip(360),stops:n,type:i}:{size:3,shape:0,stops:n,position:[],type:i}}},Gp={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var s=t[0];return 20===s.type&&"none"===s.value?[]:t.filter((function(e){return sp(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Up[e.name])}(e)})).map((function(t){return Fp(e,t)}))}},jp={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Zh(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Vp={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return np(t).map((function(e){return e.filter(rp)})).map(lp)}},kp={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return np(t).map((function(e){return e.filter(Zh).map((function(e){return e.value})).join(" ")})).map(Qp)}},Qp=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(Hp||(Hp={}));var Wp,zp={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return np(t).map((function(e){return e.filter(Kp)}))}},Kp=function(e){return Zh(e)||rp(e)},Yp=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Xp=Yp("top"),qp=Yp("right"),Jp=Yp("bottom"),Zp=Yp("left"),$p=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return lp(t.filter(rp))}}},eA=$p("top-left"),tA=$p("top-right"),sA=$p("bottom-right"),nA=$p("bottom-left"),iA=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},aA=iA("top"),rA=iA("right"),lA=iA("bottom"),oA=iA("left"),cA=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return qh(t)?t.number:0}}},uA=cA("top"),hA=cA("right"),pA=cA("bottom"),AA=cA("left"),dA={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fA={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},IA={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(Zh).reduce((function(e,t){return e|yA(t.value)}),0)}},yA=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},mA={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},vA={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(Wp||(Wp={}));var wA,gA={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?Wp.STRICT:Wp.NORMAL}},EA={name:"line-height",initialValue:"normal",prefix:!1,type:4},TA=function(e,t){return Zh(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:rp(e)?pp(e,t):t},bA={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:Fp(e,t)}},DA={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},PA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},RA=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},CA=RA("top"),_A=RA("right"),BA=RA("bottom"),OA=RA("left"),SA={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(Zh).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},NA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},xA=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},LA=xA("top"),MA=xA("right"),FA=xA("bottom"),HA=xA("left"),UA={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GA={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},jA={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&ep(t[0],"none")?[]:np(t).map((function(t){for(var s={color:Rp.TRANSPARENT,offsetX:op,offsetY:op,blur:op},n=0,i=0;i1?1:0],this.overflowWrap=wd(e,NA,t.overflowWrap),this.paddingTop=wd(e,LA,t.paddingTop),this.paddingRight=wd(e,MA,t.paddingRight),this.paddingBottom=wd(e,FA,t.paddingBottom),this.paddingLeft=wd(e,HA,t.paddingLeft),this.paintOrder=wd(e,dd,t.paintOrder),this.position=wd(e,GA,t.position),this.textAlign=wd(e,UA,t.textAlign),this.textDecorationColor=wd(e,$A,null!==(s=t.textDecorationColor)&&void 0!==s?s:t.color),this.textDecorationLine=wd(e,ed,null!==(n=t.textDecorationLine)&&void 0!==n?n:t.textDecoration),this.textShadow=wd(e,jA,t.textShadow),this.textTransform=wd(e,VA,t.textTransform),this.transform=wd(e,kA,t.transform),this.transformOrigin=wd(e,KA,t.transformOrigin),this.visibility=wd(e,YA,t.visibility),this.webkitTextStrokeColor=wd(e,fd,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=wd(e,Id,t.webkitTextStrokeWidth),this.wordBreak=wd(e,XA,t.wordBreak),this.zIndex=wd(e,qA,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return mp(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return rd(this.display,4)||rd(this.display,33554432)||rd(this.display,268435456)||rd(this.display,536870912)||rd(this.display,67108864)||rd(this.display,134217728)},e}(),md=function(e,t){this.content=wd(e,ld,t.content),this.quotes=wd(e,hd,t.quotes)},vd=function(e,t){this.counterIncrement=wd(e,od,t.counterIncrement),this.counterReset=wd(e,cd,t.counterReset)},wd=function(e,t,s){var n=new Yh,i=null!=s?s.toString():t.initialValue;n.write(i);var a=new Xh(n.read());switch(t.type){case 2:var r=a.parseComponentValue();return t.parse(e,Zh(r)?r.value:t.initialValue);case 0:return t.parse(e,a.parseComponentValue());case 1:return t.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(t.format){case"angle":return Ap(e,a.parseComponentValue());case"color":return yp(e,a.parseComponentValue());case"image":return Fp(e,a.parseComponentValue());case"length":var l=a.parseComponentValue();return ap(l)?l:op;case"length-percentage":var o=a.parseComponentValue();return rp(o)?o:op;case"time":return JA(e,a.parseComponentValue())}}},gd=function(e,t){var s=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===s||t===s},Ed=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,gd(t,3),this.styles=new yd(e,window.getComputedStyle(t,null)),Tf(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=vu(this.context,t),gd(t,4)&&(this.flags|=16)},Td="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bd="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Dd=0;Dd=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Cd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Bd=0;Bd>10),r%1024+56320)),(i+1===s||n.length>16384)&&(a+=String.fromCharCode.apply(String,n),n.length=0)}return a},Fd=function(e,t){var s,n,i,a=function(e){var t,s,n,i,a,r=.75*e.length,l=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var c="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),u=Array.isArray(c)?c:new Uint8Array(c);for(t=0;t>4,u[o++]=(15&n)<<4|i>>2,u[o++]=(3&i)<<6|63&a;return c}(e),r=Array.isArray(a)?function(e){for(var t=e.length,s=[],n=0;n=55296&&i<=56319&&s=s)return{done:!0,value:null};for(var e="×";nr.x||i.y>r.y;return r=i,0===t||l}));return e.body.removeChild(t),l}(document);return Object.defineProperty(Qd,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,s=e.createElement("canvas"),n=s.getContext("2d");if(!n)return!1;t.src="data:image/svg+xml,";try{n.drawImage(t,0,0),s.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(Qd,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),s=100;t.width=s,t.height=s;var n=t.getContext("2d");if(!n)return Promise.reject(!1);n.fillStyle="rgb(0, 255, 0)",n.fillRect(0,0,s,s);var i=new Image,a=t.toDataURL();i.src=a;var r=Vd(s,s,0,0,i);return n.fillStyle="red",n.fillRect(0,0,s,s),kd(r).then((function(t){n.drawImage(t,0,0);var i=n.getImageData(0,0,s,s).data;n.fillStyle="red",n.fillRect(0,0,s,s);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",jd(i)?kd(Vd(s,s,0,0,r)):Promise.reject(!1)})).then((function(e){return n.drawImage(e,0,0),jd(n.getImageData(0,0,s,s).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Qd,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(Qd,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Qd,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Qd,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Qd,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},Wd=function(e,t){this.text=e,this.bounds=t},zd=function(e,t){var s=t.ownerDocument;if(s){var n=s.createElement("html2canvaswrapper");n.appendChild(t.cloneNode(!0));var i=t.parentNode;if(i){i.replaceChild(n,t);var a=vu(e,n);return n.firstChild&&i.replaceChild(n.firstChild,n),a}}return mu.EMPTY},Kd=function(e,t,s){var n=e.ownerDocument;if(!n)throw new Error("Node has no owner document");var i=n.createRange();return i.setStart(e,t),i.setEnd(e,t+s),i},Yd=function(e){if(Qd.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,s=Gd(e),n=[];!(t=s.next()).done;)t.value&&n.push(t.value.slice());return n}(e)},Xd=function(e,t){return 0!==t.letterSpacing?Yd(e):function(e,t){if(Qd.SUPPORT_NATIVE_TEXT_SEGMENTATION){var s=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(s.segment(e)).map((function(e){return e.segment}))}return Jd(e,t)}(e,t)},qd=[32,160,4961,65792,65793,4153,4241],Jd=function(e,t){for(var s,n=function(e,t){var s=wu(e),n=fh(s,t),i=n[0],a=n[1],r=n[2],l=s.length,o=0,c=0;return{next:function(){if(c>=l)return{done:!0,value:null};for(var e="×";c0)if(Qd.SUPPORT_RANGE_BOUNDS){var i=Kd(n,r,t.length).getClientRects();if(i.length>1){var l=Yd(t),o=0;l.forEach((function(t){a.push(new Wd(t,mu.fromDOMRectList(e,Kd(n,o+r,t.length).getClientRects()))),o+=t.length}))}else a.push(new Wd(t,mu.fromDOMRectList(e,i)))}else{var c=n.splitText(t.length);a.push(new Wd(t,zd(e,n))),n=c}else Qd.SUPPORT_RANGE_BOUNDS||(n=n.splitText(t.length));r+=t.length})),a}(e,this.text,s,t)},$d=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(ef,tf);case 2:return e.toUpperCase();default:return e}},ef=/(^|\s|:|-|\(|\))([a-z])/g,tf=function(e,t,s){return e.length>0?t+s.toUpperCase():e},sf=function(e){function t(t,s){var n=e.call(this,t,s)||this;return n.src=s.currentSrc||s.src,n.intrinsicWidth=s.naturalWidth,n.intrinsicHeight=s.naturalHeight,n.context.cache.addImage(n.src),n}return Au(t,e),t}(Ed),nf=function(e){function t(t,s){var n=e.call(this,t,s)||this;return n.canvas=s,n.intrinsicWidth=s.width,n.intrinsicHeight=s.height,n}return Au(t,e),t}(Ed),af=function(e){function t(t,s){var n=e.call(this,t,s)||this,i=new XMLSerializer,a=vu(t,s);return s.setAttribute("width",a.width+"px"),s.setAttribute("height",a.height+"px"),n.svg="data:image/svg+xml,"+encodeURIComponent(i.serializeToString(s)),n.intrinsicWidth=s.width.baseVal.value,n.intrinsicHeight=s.height.baseVal.value,n.context.cache.addImage(n.svg),n}return Au(t,e),t}(Ed),rf=function(e){function t(t,s){var n=e.call(this,t,s)||this;return n.value=s.value,n}return Au(t,e),t}(Ed),lf=function(e){function t(t,s){var n=e.call(this,t,s)||this;return n.start=s.start,n.reversed="boolean"==typeof s.reversed&&!0===s.reversed,n}return Au(t,e),t}(Ed),of=[{type:15,flags:0,unit:"px",number:3}],cf=[{type:16,flags:0,number:50}],uf="password",hf=function(e){function t(t,s){var n,i=e.call(this,t,s)||this;switch(i.type=s.type.toLowerCase(),i.checked=s.checked,i.value=function(e){var t=e.type===uf?new Array(e.value.length+1).join("•"):e.value;return 0===t.length?e.placeholder||"":t}(s),"checkbox"!==i.type&&"radio"!==i.type||(i.styles.backgroundColor=3739148031,i.styles.borderTopColor=i.styles.borderRightColor=i.styles.borderBottomColor=i.styles.borderLeftColor=2779096575,i.styles.borderTopWidth=i.styles.borderRightWidth=i.styles.borderBottomWidth=i.styles.borderLeftWidth=1,i.styles.borderTopStyle=i.styles.borderRightStyle=i.styles.borderBottomStyle=i.styles.borderLeftStyle=1,i.styles.backgroundClip=[0],i.styles.backgroundOrigin=[0],i.bounds=(n=i.bounds).width>n.height?new mu(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width0)s.textNodes.push(new Zd(e,i,s.styles));else if(Ef(i))if(Ff(i)&&i.assignedNodes)i.assignedNodes().forEach((function(t){return If(e,t,s,n)}));else{var r=yf(e,i);r.styles.isVisible()&&(vf(i,r,n)?r.flags|=4:wf(r.styles)&&(r.flags|=2),-1!==ff.indexOf(i.tagName)&&(r.flags|=8),s.elements.push(r),i.slot,i.shadowRoot?If(e,i.shadowRoot,r,n):Lf(i)||Cf(i)||Mf(i)||If(e,i,r,n))}},yf=function(e,t){return Sf(t)?new sf(e,t):Bf(t)?new nf(e,t):Cf(t)?new af(e,t):Df(t)?new rf(e,t):Pf(t)?new lf(e,t):Rf(t)?new hf(e,t):Mf(t)?new pf(e,t):Lf(t)?new Af(e,t):Nf(t)?new df(e,t):new Ed(e,t)},mf=function(e,t){var s=yf(e,t);return s.flags|=4,If(e,t,s,s),s},vf=function(e,t,s){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||_f(e)&&s.styles.isTransparent()},wf=function(e){return e.isPositioned()||e.isFloating()},gf=function(e){return e.nodeType===Node.TEXT_NODE},Ef=function(e){return e.nodeType===Node.ELEMENT_NODE},Tf=function(e){return Ef(e)&&void 0!==e.style&&!bf(e)},bf=function(e){return"object"==typeof e.className},Df=function(e){return"LI"===e.tagName},Pf=function(e){return"OL"===e.tagName},Rf=function(e){return"INPUT"===e.tagName},Cf=function(e){return"svg"===e.tagName},_f=function(e){return"BODY"===e.tagName},Bf=function(e){return"CANVAS"===e.tagName},Of=function(e){return"VIDEO"===e.tagName},Sf=function(e){return"IMG"===e.tagName},Nf=function(e){return"IFRAME"===e.tagName},xf=function(e){return"STYLE"===e.tagName},Lf=function(e){return"TEXTAREA"===e.tagName},Mf=function(e){return"SELECT"===e.tagName},Ff=function(e){return"SLOT"===e.tagName},Hf=function(e){return e.tagName.indexOf("-")>0},Uf=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){var t=this.counters[e];return t||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,s=e.counterIncrement,n=e.counterReset,i=!0;null!==s&&s.forEach((function(e){var s=t.counters[e.counter];s&&0!==e.increment&&(i=!1,s.length||s.push(1),s[Math.max(0,s.length-1)]+=e.increment)}));var a=[];return i&&n.forEach((function(e){var s=t.counters[e.counter];a.push(e.counter),s||(s=t.counters[e.counter]=[]),s.push(e.reset)})),a},e}(),Gf={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},jf={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Vf={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},kf={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Qf=function(e,t,s,n,i,a){return es?Xf(e,i,a.length>0):n.integers.reduce((function(t,s,i){for(;e>=s;)e-=s,t+=n.values[i];return t}),"")+a},Wf=function(e,t,s,n){var i="";do{s||e--,i=n(e)+i,e/=t}while(e*t>=t);return i},zf=function(e,t,s,n,i){var a=s-t+1;return(e<0?"-":"")+(Wf(Math.abs(e),a,n,(function(e){return gu(Math.floor(e%a)+t)}))+i)},Kf=function(e,t,s){void 0===s&&(s=". ");var n=t.length;return Wf(Math.abs(e),n,!1,(function(e){return t[Math.floor(e%n)]}))+s},Yf=function(e,t,s,n,i,a){if(e<-9999||e>9999)return Xf(e,4,i.length>0);var r=Math.abs(e),l=i;if(0===r)return t[0]+l;for(var o=0;r>0&&o<=4;o++){var c=r%10;0===c&&rd(a,1)&&""!==l?l=t[c]+l:c>1||1===c&&0===o||1===c&&1===o&&rd(a,2)||1===c&&1===o&&rd(a,4)&&e>100||1===c&&o>1&&rd(a,8)?l=t[c]+(o>0?s[o-1]:"")+l:1===c&&o>0&&(l=s[o-1]+l),r=Math.floor(r/10)}return(e<0?n:"")+l},Xf=function(e,t,s){var n=s?". ":"",i=s?"、":"",a=s?", ":"",r=s?" ":"";switch(t){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var l=zf(e,48,57,!0,n);return l.length<4?"0"+l:l;case 4:return Kf(e,"〇一二三四五六七八九",i);case 6:return Qf(e,1,3999,Gf,3,n).toLowerCase();case 7:return Qf(e,1,3999,Gf,3,n);case 8:return zf(e,945,969,!1,n);case 9:return zf(e,97,122,!1,n);case 10:return zf(e,65,90,!1,n);case 11:return zf(e,1632,1641,!0,n);case 12:case 49:return Qf(e,1,9999,jf,3,n);case 35:return Qf(e,1,9999,jf,3,n).toLowerCase();case 13:return zf(e,2534,2543,!0,n);case 14:case 30:return zf(e,6112,6121,!0,n);case 15:return Kf(e,"子丑寅卯辰巳午未申酉戌亥",i);case 16:return Kf(e,"甲乙丙丁戊己庚辛壬癸",i);case 17:case 48:return Yf(e,"零一二三四五六七八九","十百千萬","負",i,14);case 47:return Yf(e,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",i,15);case 42:return Yf(e,"零一二三四五六七八九","十百千萬","负",i,14);case 41:return Yf(e,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",i,15);case 26:return Yf(e,"〇一二三四五六七八九","十百千万","マイナス",i,0);case 25:return Yf(e,"零壱弐参四伍六七八九","拾百千万","マイナス",i,7);case 31:return Yf(e,"영일이삼사오육칠팔구","십백천만","마이너스",a,7);case 33:return Yf(e,"零一二三四五六七八九","十百千萬","마이너스",a,0);case 32:return Yf(e,"零壹貳參四五六七八九","拾百千","마이너스",a,7);case 18:return zf(e,2406,2415,!0,n);case 20:return Qf(e,1,19999,kf,3,n);case 21:return zf(e,2790,2799,!0,n);case 22:return zf(e,2662,2671,!0,n);case 22:return Qf(e,1,10999,Vf,3,n);case 23:return Kf(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Kf(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return zf(e,3302,3311,!0,n);case 28:return Kf(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",i);case 29:return Kf(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",i);case 34:return zf(e,3792,3801,!0,n);case 37:return zf(e,6160,6169,!0,n);case 38:return zf(e,4160,4169,!0,n);case 39:return zf(e,2918,2927,!0,n);case 40:return zf(e,1776,1785,!0,n);case 43:return zf(e,3046,3055,!0,n);case 44:return zf(e,3174,3183,!0,n);case 45:return zf(e,3664,3673,!0,n);case 46:return zf(e,3872,3881,!0,n);default:return zf(e,48,57,!0,n)}},qf=function(){function e(e,t,s){if(this.context=e,this.options=s,this.scrolledElements=[],this.referenceElement=t,this.counters=new Uf,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var s=this,n=Zf(e,t);if(!n.contentWindow)return Promise.reject("Unable to find iframe window");var i=e.defaultView.pageXOffset,a=e.defaultView.pageYOffset,r=n.contentWindow,l=r.document,o=tI(n).then((function(){return fu(s,void 0,void 0,(function(){var e,s;return Iu(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(rI),r&&(r.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||r.scrollY===t.top&&r.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(r.scrollX-t.left,r.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(s=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,eI(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,s)})).then((function(){return n}))]:[2,n]}}))}))}));return l.open(),l.write(iI(document.doctype)+""),aI(this.referenceElement.ownerDocument,i,a),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),o},e.prototype.createElementClone=function(e){if(gd(e,2),Bf(e))return this.createCanvasClone(e);if(Of(e))return this.createVideoClone(e);if(xf(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Sf(t)&&(Sf(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),Hf(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return nI(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var s=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),n=e.cloneNode(!1);return n.textContent=s,n}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var s=e.ownerDocument.createElement("img");try{return s.src=e.toDataURL(),s}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var n=e.cloneNode(!1);try{n.width=e.width,n.height=e.height;var i=e.getContext("2d"),a=n.getContext("2d");if(a)if(!this.options.allowTaint&&i)a.putImageData(i.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(r){var l=r.getContextAttributes();!1===(null==l?void 0:l.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return n}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return n},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var s=t.getContext("2d");try{return s&&(s.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||s.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var n=e.ownerDocument.createElement("canvas");return n.width=e.offsetWidth,n.height=e.offsetHeight,n},e.prototype.appendChildNode=function(e,t,s){Ef(t)&&(function(e){return"SCRIPT"===e.tagName}(t)||t.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&Ef(t)&&xf(t)||e.appendChild(this.cloneNode(t,s))},e.prototype.cloneChildNodes=function(e,t,s){for(var n=this,i=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;i;i=i.nextSibling)if(Ef(i)&&Ff(i)&&"function"==typeof i.assignedNodes){var a=i.assignedNodes();a.length&&a.forEach((function(e){return n.appendChildNode(t,e,s)}))}else this.appendChildNode(t,i,s)},e.prototype.cloneNode=function(e,t){if(gf(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var s=e.ownerDocument.defaultView;if(s&&Ef(e)&&(Tf(e)||bf(e))){var n=this.createElementClone(e);n.style.transitionProperty="none";var i=s.getComputedStyle(e),a=s.getComputedStyle(e,":before"),r=s.getComputedStyle(e,":after");this.referenceElement===e&&Tf(n)&&(this.clonedReferenceElement=n),_f(n)&&cI(n);var l=this.counters.parse(new vd(this.context,i)),o=this.resolvePseudoContent(e,n,a,Od.BEFORE);Hf(e)&&(t=!0),Of(e)||this.cloneChildNodes(e,n,t),o&&n.insertBefore(o,n.firstChild);var c=this.resolvePseudoContent(e,n,r,Od.AFTER);return c&&n.appendChild(c),this.counters.pop(l),(i&&(this.options.copyStyles||bf(e))&&!Nf(e)||t)&&nI(i,n),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([n,e.scrollLeft,e.scrollTop]),(Lf(e)||Mf(e))&&(Lf(n)||Mf(n))&&(n.value=e.value),n}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,s,n){var i=this;if(s){var a=s.content,r=t.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==s.display){this.counters.parse(new vd(this.context,s));var l=new md(this.context,s),o=r.createElement("html2canvaspseudoelement");nI(s,o),l.content.forEach((function(t){if(0===t.type)o.appendChild(r.createTextNode(t.value));else if(22===t.type){var s=r.createElement("img");s.src=t.value,s.style.opacity="1",o.appendChild(s)}else if(18===t.type){if("attr"===t.name){var n=t.values.filter(Zh);n.length&&o.appendChild(r.createTextNode(e.getAttribute(n[0].value)||""))}else if("counter"===t.name){var a=t.values.filter(sp),c=a[0],u=a[1];if(c&&Zh(c)){var h=i.counters.getCounterValue(c.value),p=u&&Zh(u)?PA.parse(i.context,u.value):3;o.appendChild(r.createTextNode(Xf(h,p,!1)))}}else if("counters"===t.name){var A=t.values.filter(sp),d=(c=A[0],A[1]);u=A[2];if(c&&Zh(c)){var f=i.counters.getCounterValues(c.value),I=u&&Zh(u)?PA.parse(i.context,u.value):3,y=d&&0===d.type?d.value:"",m=f.map((function(e){return Xf(e,I,!1)})).join(y);o.appendChild(r.createTextNode(m))}}}else if(20===t.type)switch(t.value){case"open-quote":o.appendChild(r.createTextNode(pd(l.quotes,i.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(pd(l.quotes,--i.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(t.value))}})),o.className=lI+" "+oI;var c=n===Od.BEFORE?" "+lI:" "+oI;return bf(t)?t.className.baseValue+=c:t.className+=c,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Od||(Od={}));var Jf,Zf=function(e,t){var s=e.createElement("iframe");return s.className="html2canvas-container",s.style.visibility="hidden",s.style.position="fixed",s.style.left="-10000px",s.style.top="0px",s.style.border="0",s.width=t.width.toString(),s.height=t.height.toString(),s.scrolling="no",s.setAttribute("data-html2canvas-ignore","true"),e.body.appendChild(s),s},$f=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},eI=function(e){return Promise.all([].slice.call(e.images,0).map($f))},tI=function(e){return new Promise((function(t,s){var n=e.contentWindow;if(!n)return s("No window assigned for iframe");var i=n.document;n.onload=e.onload=function(){n.onload=e.onload=null;var s=setInterval((function(){i.body.childNodes.length>0&&"complete"===i.readyState&&(clearInterval(s),t(e))}),50)}}))},sI=["all","d","content"],nI=function(e,t){for(var s=e.length-1;s>=0;s--){var n=e.item(s);-1===sI.indexOf(n)&&t.style.setProperty(n,e.getPropertyValue(n))}return t},iI=function(e){var t="";return e&&(t+=""),t},aI=function(e,t,s){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||s!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,s)},rI=function(e){var t=e[0],s=e[1],n=e[2];t.scrollLeft=s,t.scrollTop=n},lI="___html2canvas___pseudoelement_before",oI="___html2canvas___pseudoelement_after",cI=function(e){uI(e,"."+lI+':before{\n content: "" !important;\n display: none !important;\n}\n .'+oI+':after{\n content: "" !important;\n display: none !important;\n}')},uI=function(e,t){var s=e.ownerDocument;if(s){var n=s.createElement("style");n.textContent=t,e.appendChild(n)}},hI=function(){function e(){}return e.getOrigin=function(t){var s=e._link;return s?(s.href=t,s.href=s.href,s.protocol+s.hostname+s.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),pI=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:vI(e)||II(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return fu(this,void 0,void 0,(function(){var t,s,n,i,a=this;return Iu(this,(function(r){switch(r.label){case 0:return t=hI.isSameOrigin(e),s=!yI(e)&&!0===this._options.useCORS&&Qd.SUPPORT_CORS_IMAGES&&!t,n=!yI(e)&&!t&&!vI(e)&&"string"==typeof this._options.proxy&&Qd.SUPPORT_CORS_XHR&&!s,t||!1!==this._options.allowTaint||yI(e)||vI(e)||n||s?(i=e,n?[4,this.proxy(i)]:[3,2]):[2];case 1:i=r.sent(),r.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var n=new Image;n.onload=function(){return e(n)},n.onerror=t,(mI(i)||s)&&(n.crossOrigin="anonymous"),n.src=i,!0===n.complete&&setTimeout((function(){return e(n)}),500),a._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+a._options.imageTimeout+"ms) loading image")}),a._options.imageTimeout)}))];case 3:return[2,r.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,s=this._options.proxy;if(!s)throw new Error("No proxy defined");var n=e.substring(0,256);return new Promise((function(i,a){var r=Qd.SUPPORT_RESPONSE_TYPE?"blob":"text",l=new XMLHttpRequest;l.onload=function(){if(200===l.status)if("text"===r)i(l.response);else{var e=new FileReader;e.addEventListener("load",(function(){return i(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(l.response)}else a("Failed to proxy resource "+n+" with status code "+l.status)},l.onerror=a;var o=s.indexOf("?")>-1?"&":"?";if(l.open("GET",""+s+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&l instanceof XMLHttpRequest&&(l.responseType=r),t._options.imageTimeout){var c=t._options.imageTimeout;l.timeout=c,l.ontimeout=function(){return a("Timed out ("+c+"ms) proxying "+n)}}l.send()}))},e}(),AI=/^data:image\/svg\+xml/i,dI=/^data:image\/.*;base64,/i,fI=/^data:image\/.*/i,II=function(e){return Qd.SUPPORT_SVG_DRAWING||!wI(e)},yI=function(e){return fI.test(e)},mI=function(e){return dI.test(e)},vI=function(e){return"blob"===e.substr(0,4)},wI=function(e){return"svg"===e.substr(-3).toLowerCase()||AI.test(e)},gI=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,s){return new e(this.x+t,this.y+s)},e}(),EI=function(e,t,s){return new gI(e.x+(t.x-e.x)*s,e.y+(t.y-e.y)*s)},TI=function(){function e(e,t,s,n){this.type=1,this.start=e,this.startControl=t,this.endControl=s,this.end=n}return e.prototype.subdivide=function(t,s){var n=EI(this.start,this.startControl,t),i=EI(this.startControl,this.endControl,t),a=EI(this.endControl,this.end,t),r=EI(n,i,t),l=EI(i,a,t),o=EI(r,l,t);return s?new e(this.start,n,r,o):new e(o,l,a,this.end)},e.prototype.add=function(t,s){return new e(this.start.add(t,s),this.startControl.add(t,s),this.endControl.add(t,s),this.end.add(t,s))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),bI=function(e){return 1===e.type},DI=function(e){var t=e.styles,s=e.bounds,n=hp(t.borderTopLeftRadius,s.width,s.height),i=n[0],a=n[1],r=hp(t.borderTopRightRadius,s.width,s.height),l=r[0],o=r[1],c=hp(t.borderBottomRightRadius,s.width,s.height),u=c[0],h=c[1],p=hp(t.borderBottomLeftRadius,s.width,s.height),A=p[0],d=p[1],f=[];f.push((i+l)/s.width),f.push((A+u)/s.width),f.push((a+d)/s.height),f.push((o+h)/s.height);var I=Math.max.apply(Math,f);I>1&&(i/=I,a/=I,l/=I,o/=I,u/=I,h/=I,A/=I,d/=I);var y=s.width-l,m=s.height-h,v=s.width-u,w=s.height-d,g=t.borderTopWidth,E=t.borderRightWidth,T=t.borderBottomWidth,b=t.borderLeftWidth,D=pp(t.paddingTop,e.bounds.width),P=pp(t.paddingRight,e.bounds.width),R=pp(t.paddingBottom,e.bounds.width),C=pp(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=i>0||a>0?PI(s.left+b/3,s.top+g/3,i-b/3,a-g/3,Jf.TOP_LEFT):new gI(s.left+b/3,s.top+g/3),this.topRightBorderDoubleOuterBox=i>0||a>0?PI(s.left+y,s.top+g/3,l-E/3,o-g/3,Jf.TOP_RIGHT):new gI(s.left+s.width-E/3,s.top+g/3),this.bottomRightBorderDoubleOuterBox=u>0||h>0?PI(s.left+v,s.top+m,u-E/3,h-T/3,Jf.BOTTOM_RIGHT):new gI(s.left+s.width-E/3,s.top+s.height-T/3),this.bottomLeftBorderDoubleOuterBox=A>0||d>0?PI(s.left+b/3,s.top+w,A-b/3,d-T/3,Jf.BOTTOM_LEFT):new gI(s.left+b/3,s.top+s.height-T/3),this.topLeftBorderDoubleInnerBox=i>0||a>0?PI(s.left+2*b/3,s.top+2*g/3,i-2*b/3,a-2*g/3,Jf.TOP_LEFT):new gI(s.left+2*b/3,s.top+2*g/3),this.topRightBorderDoubleInnerBox=i>0||a>0?PI(s.left+y,s.top+2*g/3,l-2*E/3,o-2*g/3,Jf.TOP_RIGHT):new gI(s.left+s.width-2*E/3,s.top+2*g/3),this.bottomRightBorderDoubleInnerBox=u>0||h>0?PI(s.left+v,s.top+m,u-2*E/3,h-2*T/3,Jf.BOTTOM_RIGHT):new gI(s.left+s.width-2*E/3,s.top+s.height-2*T/3),this.bottomLeftBorderDoubleInnerBox=A>0||d>0?PI(s.left+2*b/3,s.top+w,A-2*b/3,d-2*T/3,Jf.BOTTOM_LEFT):new gI(s.left+2*b/3,s.top+s.height-2*T/3),this.topLeftBorderStroke=i>0||a>0?PI(s.left+b/2,s.top+g/2,i-b/2,a-g/2,Jf.TOP_LEFT):new gI(s.left+b/2,s.top+g/2),this.topRightBorderStroke=i>0||a>0?PI(s.left+y,s.top+g/2,l-E/2,o-g/2,Jf.TOP_RIGHT):new gI(s.left+s.width-E/2,s.top+g/2),this.bottomRightBorderStroke=u>0||h>0?PI(s.left+v,s.top+m,u-E/2,h-T/2,Jf.BOTTOM_RIGHT):new gI(s.left+s.width-E/2,s.top+s.height-T/2),this.bottomLeftBorderStroke=A>0||d>0?PI(s.left+b/2,s.top+w,A-b/2,d-T/2,Jf.BOTTOM_LEFT):new gI(s.left+b/2,s.top+s.height-T/2),this.topLeftBorderBox=i>0||a>0?PI(s.left,s.top,i,a,Jf.TOP_LEFT):new gI(s.left,s.top),this.topRightBorderBox=l>0||o>0?PI(s.left+y,s.top,l,o,Jf.TOP_RIGHT):new gI(s.left+s.width,s.top),this.bottomRightBorderBox=u>0||h>0?PI(s.left+v,s.top+m,u,h,Jf.BOTTOM_RIGHT):new gI(s.left+s.width,s.top+s.height),this.bottomLeftBorderBox=A>0||d>0?PI(s.left,s.top+w,A,d,Jf.BOTTOM_LEFT):new gI(s.left,s.top+s.height),this.topLeftPaddingBox=i>0||a>0?PI(s.left+b,s.top+g,Math.max(0,i-b),Math.max(0,a-g),Jf.TOP_LEFT):new gI(s.left+b,s.top+g),this.topRightPaddingBox=l>0||o>0?PI(s.left+Math.min(y,s.width-E),s.top+g,y>s.width+E?0:Math.max(0,l-E),Math.max(0,o-g),Jf.TOP_RIGHT):new gI(s.left+s.width-E,s.top+g),this.bottomRightPaddingBox=u>0||h>0?PI(s.left+Math.min(v,s.width-b),s.top+Math.min(m,s.height-T),Math.max(0,u-E),Math.max(0,h-T),Jf.BOTTOM_RIGHT):new gI(s.left+s.width-E,s.top+s.height-T),this.bottomLeftPaddingBox=A>0||d>0?PI(s.left+b,s.top+Math.min(w,s.height-T),Math.max(0,A-b),Math.max(0,d-T),Jf.BOTTOM_LEFT):new gI(s.left+b,s.top+s.height-T),this.topLeftContentBox=i>0||a>0?PI(s.left+b+C,s.top+g+D,Math.max(0,i-(b+C)),Math.max(0,a-(g+D)),Jf.TOP_LEFT):new gI(s.left+b+C,s.top+g+D),this.topRightContentBox=l>0||o>0?PI(s.left+Math.min(y,s.width+b+C),s.top+g+D,y>s.width+b+C?0:l-b+C,o-(g+D),Jf.TOP_RIGHT):new gI(s.left+s.width-(E+P),s.top+g+D),this.bottomRightContentBox=u>0||h>0?PI(s.left+Math.min(v,s.width-(b+C)),s.top+Math.min(m,s.height+g+D),Math.max(0,u-(E+P)),h-(T+R),Jf.BOTTOM_RIGHT):new gI(s.left+s.width-(E+P),s.top+s.height-(T+R)),this.bottomLeftContentBox=A>0||d>0?PI(s.left+b+C,s.top+w,Math.max(0,A-(b+C)),d-(T+R),Jf.BOTTOM_LEFT):new gI(s.left+b+C,s.top+s.height-(T+R))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Jf||(Jf={}));var PI=function(e,t,s,n,i){var a=(Math.sqrt(2)-1)/3*4,r=s*a,l=n*a,o=e+s,c=t+n;switch(i){case Jf.TOP_LEFT:return new TI(new gI(e,c),new gI(e,c-l),new gI(o-r,t),new gI(o,t));case Jf.TOP_RIGHT:return new TI(new gI(e,t),new gI(e+r,t),new gI(o,c-l),new gI(o,c));case Jf.BOTTOM_RIGHT:return new TI(new gI(o,t),new gI(o,t+l),new gI(e+r,c),new gI(e,c));case Jf.BOTTOM_LEFT:default:return new TI(new gI(o,c),new gI(o-r,c),new gI(e,t+l),new gI(e,t))}},RI=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},CI=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},_I=function(e,t,s){this.offsetX=e,this.offsetY=t,this.matrix=s,this.type=0,this.target=6},BI=function(e,t){this.path=e,this.target=t,this.type=1},OI=function(e){this.opacity=e,this.type=2,this.target=6},SI=function(e){return 1===e.type},NI=function(e,t){return e.length===t.length&&e.some((function(e,s){return e===t[s]}))},xI=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},LI=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new DI(this.container),this.container.styles.opacity<1&&this.effects.push(new OI(this.container.styles.opacity)),null!==this.container.styles.transform){var s=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,i=this.container.styles.transform;this.effects.push(new _I(s,n,i))}if(0!==this.container.styles.overflowX){var a=RI(this.curves),r=CI(this.curves);NI(a,r)?this.effects.push(new BI(a,6)):(this.effects.push(new BI(a,2)),this.effects.push(new BI(r,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),s=this.parent,n=this.effects.slice(0);s;){var i=s.effects.filter((function(e){return!SI(e)}));if(t||0!==s.container.styles.position||!s.parent){if(n.unshift.apply(n,i),t=-1===[2,3].indexOf(s.container.styles.position),0!==s.container.styles.overflowX){var a=RI(s.curves),r=CI(s.curves);NI(a,r)||n.unshift(new BI(r,6))}}else n.unshift.apply(n,i);s=s.parent}return n.filter((function(t){return rd(t.target,e)}))},e}(),MI=function(e,t,s,n){e.container.elements.forEach((function(i){var a=rd(i.flags,4),r=rd(i.flags,2),l=new LI(i,e);rd(i.styles.display,2048)&&n.push(l);var o=rd(i.flags,8)?[]:n;if(a||r){var c=a||i.styles.isPositioned()?s:t,u=new xI(l);if(i.styles.isPositioned()||i.styles.opacity<1||i.styles.isTransformed()){var h=i.styles.zIndex.order;if(h<0){var p=0;c.negativeZIndex.some((function(e,t){return h>e.element.container.styles.zIndex.order?(p=t,!1):p>0})),c.negativeZIndex.splice(p,0,u)}else if(h>0){var A=0;c.positiveZIndex.some((function(e,t){return h>=e.element.container.styles.zIndex.order?(A=t+1,!1):A>0})),c.positiveZIndex.splice(A,0,u)}else c.zeroOrAutoZIndexOrTransformedOrOpacity.push(u)}else i.styles.isFloating()?c.nonPositionedFloats.push(u):c.nonPositionedInlineLevel.push(u);MI(l,u,a?u:s,o)}else i.styles.isInlineLevel()?t.inlineLevel.push(l):t.nonInlineLevel.push(l),MI(l,t,s,o);rd(i.flags,8)&&FI(i,o)}))},FI=function(e,t){for(var s=e instanceof lf?e.start:1,n=e instanceof lf&&e.reversed,i=0;i0&&e.intrinsicHeight>0){var n=VI(e),i=CI(t);this.path(i),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(s,0,0,e.intrinsicWidth,e.intrinsicHeight,n.left,n.top,n.width,n.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return fu(this,void 0,void 0,(function(){var s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v;return Iu(this,(function(w){switch(w.label){case 0:this.applyEffects(e.getEffects(4)),s=e.container,n=e.curves,i=s.styles,a=0,r=s.textNodes,w.label=1;case 1:return a0&&T>0&&(y=n.ctx.createPattern(d,"repeat"),n.renderRepeat(v,y,D,P))):function(e){return 2===e.type}(s)&&(m=kI(e,t,[null,null,null]),v=m[0],w=m[1],g=m[2],E=m[3],T=m[4],b=0===s.position.length?[cp]:s.position,D=pp(b[0],E),P=pp(b[b.length-1],T),R=function(e,t,s,n,i){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(t),Math.abs(t-n),Math.abs(s),Math.abs(s-i)):1===e.shape&&(a=Math.min(Math.abs(t),Math.abs(t-n)),r=Math.min(Math.abs(s),Math.abs(s-i)));break;case 2:if(0===e.shape)a=r=Math.min(Np(t,s),Np(t,s-i),Np(t-n,s),Np(t-n,s-i));else if(1===e.shape){var l=Math.min(Math.abs(s),Math.abs(s-i))/Math.min(Math.abs(t),Math.abs(t-n)),o=xp(n,i,t,s,!0),c=o[0],u=o[1];r=l*(a=Np(c-t,(u-s)/l))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(t),Math.abs(t-n),Math.abs(s),Math.abs(s-i)):1===e.shape&&(a=Math.max(Math.abs(t),Math.abs(t-n)),r=Math.max(Math.abs(s),Math.abs(s-i)));break;case 3:if(0===e.shape)a=r=Math.max(Np(t,s),Np(t,s-i),Np(t-n,s),Np(t-n,s-i));else if(1===e.shape){l=Math.max(Math.abs(s),Math.abs(s-i))/Math.max(Math.abs(t),Math.abs(t-n));var h=xp(n,i,t,s,!1);c=h[0],u=h[1],r=l*(a=Np(c-t,(u-s)/l))}}return Array.isArray(e.size)&&(a=pp(e.size[0],n),r=2===e.size.length?pp(e.size[1],i):a),[a,r]}(s,D,P,E,T),C=R[0],_=R[1],C>0&&_>0&&(B=n.ctx.createRadialGradient(w+D,g+P,0,w+D,g+P,C),Op(s.stops,2*C).forEach((function(e){return B.addColorStop(e.stop,vp(e.color))})),n.path(v),n.ctx.fillStyle=B,C!==_?(O=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,x=1/(N=_/C),n.ctx.save(),n.ctx.translate(O,S),n.ctx.transform(1,0,0,N,0,0),n.ctx.translate(-O,-S),n.ctx.fillRect(w,x*(g-S)+S,E,T*x),n.ctx.restore()):n.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},n=this,i=0,a=e.styles.backgroundImage.slice(0).reverse(),l.label=1;case 1:return i0?2!==o.style?[3,5]:[4,this.renderDashedDottedBorder(o.color,o.width,a,e.curves,2)]:[3,11]:[3,13];case 4:return u.sent(),[3,11];case 5:return 3!==o.style?[3,7]:[4,this.renderDashedDottedBorder(o.color,o.width,a,e.curves,3)];case 6:return u.sent(),[3,11];case 7:return 4!==o.style?[3,9]:[4,this.renderDoubleBorder(o.color,o.width,a,e.curves)];case 8:return u.sent(),[3,11];case 9:return[4,this.renderSolidBorder(o.color,a,e.curves)];case 10:u.sent(),u.label=11;case 11:a++,u.label=12;case 12:return r++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,s,n,i){return fu(this,void 0,void 0,(function(){var a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w;return Iu(this,(function(g){return this.ctx.save(),a=function(e,t){switch(t){case 0:return UI(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return UI(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return UI(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return UI(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(n,s),r=HI(n,s),2===i&&(this.path(r),this.ctx.clip()),bI(r[0])?(l=r[0].start.x,o=r[0].start.y):(l=r[0].x,o=r[0].y),bI(r[1])?(c=r[1].end.x,u=r[1].end.y):(c=r[1].x,u=r[1].y),h=0===s||2===s?Math.abs(l-c):Math.abs(o-u),this.ctx.beginPath(),3===i?this.formatPath(a):this.formatPath(r.slice(0,2)),p=t<3?3*t:2*t,A=t<3?2*t:t,3===i&&(p=t,A=t),d=!0,h<=2*p?d=!1:h<=2*p+A?(p*=f=h/(2*p+A),A*=f):(I=Math.floor((h+A)/(p+A)),y=(h-I*p)/(I-1),A=(m=(h-(I+1)*p)/I)<=0||Math.abs(A-y){})),wy(this,"_reject",(()=>{})),this.name=e,this.workerThread=t,this.result=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){Ay(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){Ay(this.isRunning),this.isRunning=!1,this._reject(e)}}class Ey{}const Ty=new Map;function by(e){Ay(e.source&&!e.url||!e.source&&e.url);let t=Ty.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return Dy((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),Ty.set(e.url,t)),e.source&&(t=Dy(e.source),Ty.set(e.source,t))),Ay(t),t}function Dy(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function Py(e,t=!0,s){const n=s||new Set;if(e){if(Ry(e))n.add(e);else if(Ry(e.buffer))n.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const s in e)Py(e[s],t,n)}else;return void 0===s?Array.from(n):[]}function Ry(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const Cy=()=>{};class _y{static isSupported(){return"undefined"!=typeof Worker&&Iy||void 0!==typeof Ey}constructor(e){wy(this,"name",void 0),wy(this,"source",void 0),wy(this,"url",void 0),wy(this,"terminated",!1),wy(this,"worker",void 0),wy(this,"onMessage",void 0),wy(this,"onError",void 0),wy(this,"_loadableURL","");const{name:t,source:s,url:n}=e;Ay(s||n),this.name=t,this.source=s,this.url=n,this.onMessage=Cy,this.onError=e=>console.log(e),this.worker=Iy?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Cy,this.onError=Cy,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||Py(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=by({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);e=new Ey(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new Ey(this.source,{eval:!0})}return e.on("message",(e=>{this.onMessage(e)})),e.on("error",(e=>{this.onError(e)})),e.on("exit",(e=>{})),e}}class By{static isSupported(){return _y.isSupported()}constructor(e){wy(this,"name","unnamed"),wy(this,"source",void 0),wy(this,"url",void 0),wy(this,"maxConcurrency",1),wy(this,"maxMobileConcurrency",1),wy(this,"onDebug",(()=>{})),wy(this,"reuseWorkers",!0),wy(this,"props",{}),wy(this,"jobQueue",[]),wy(this,"idleQueue",[]),wy(this,"count",0),wy(this,"isDestroyed",!1),this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach((e=>e.destroy())),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=((e,t,s)=>e.done(s)),s=((e,t)=>e.error(t))){const n=new Promise((n=>(this.jobQueue.push({name:e,onMessage:t,onError:s,onStart:n}),this)));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const s=new gy(t.name,e);e.onMessage=e=>t.onMessage(s,e.type,e.payload),e.onError=e=>t.onError(s,e),t.onStart(s);try{await s.result}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class Sy{static isSupported(){return _y.isSupported()}static getWorkerFarm(e={}){return Sy._workerFarm=Sy._workerFarm||new Sy({}),Sy._workerFarm.setProps(e),Sy._workerFarm}constructor(e){wy(this,"props",void 0),wy(this,"workerPools",new Map),this.props={...Oy},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:s,url:n}=e;let i=this.workerPools.get(t);return i||(i=new By({name:t,source:s,url:n}),i.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,i)),i}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}wy(Sy,"_workerFarm",void 0);var Ny=Object.freeze({__proto__:null,default:{}});const xy={};async function Ly(e,t=null,s={}){return t&&(e=function(e,t,s){if(e.startsWith("http"))return e;const n=s.modules||{};if(n[e])return n[e];if(!Iy)return"modules/".concat(t,"/dist/libs/").concat(e);if(s.CDN)return Ay(s.CDN.startsWith("http")),"".concat(s.CDN,"/").concat(t,"@").concat("3.2.6","/dist/libs/").concat(e);if(yy)return"../src/libs/".concat(e);return"modules/".concat(t,"/src/libs/").concat(e)}(e,t,s)),xy[e]=xy[e]||async function(e){if(e.endsWith("wasm")){const t=await fetch(e);return await t.arrayBuffer()}if(!Iy)try{return Ny&&void 0}catch{return null}if(yy)return importScripts(e);const t=await fetch(e);return function(e,t){if(!Iy)return;if(yy)return eval.call(fy,e),null;const s=document.createElement("script");s.id=t;try{s.appendChild(document.createTextNode(e))}catch(t){s.text=e}return document.body.appendChild(s),null}(await t.text(),e)}(e),await xy[e]}async function My(e,t,s,n,i){const a=e.id,r=function(e,t={}){const s=t[e.id]||{},n="".concat(e.id,"-worker.js");let i=s.workerUrl;if(i||"compression"!==e.id||(i=t.workerUrl),"test"===t._workerType&&(i="modules/".concat(e.module,"/dist/").concat(n)),!i){let t=e.version;"latest"===t&&(t="latest");const s=t?"@".concat(t):"";i="https://unpkg.com/@loaders.gl/".concat(e.module).concat(s,"/dist/").concat(n)}return Ay(i),i}(e,s),l=Sy.getWorkerFarm(s).getWorkerPool({name:a,url:r});s=JSON.parse(JSON.stringify(s)),n=JSON.parse(JSON.stringify(n||{}));const o=await l.startJob("process-on-worker",Fy.bind(null,i));o.postMessage("process",{input:t,options:s,context:n});const c=await o.result;return await c.result}async function Fy(e,t,s,n){switch(s){case"done":t.done(n);break;case"error":t.error(new Error(n.error));break;case"process":const{id:i,input:a,options:r}=n;try{const s=await e(a,r);t.postMessage("done",{id:i,result:s})}catch(e){const s=e instanceof Error?e.message:"unknown error";t.postMessage("error",{id:i,error:s})}break;default:console.warn("parse-with-worker unknown message ".concat(s))}}function Hy(e,t,s){if(e.byteLength<=t+s)return"";const n=new DataView(e);let i="";for(let e=0;e=0),uy(t>0),e+(t-1)&~(t-1)}function Qy(e,t,s){let n;if(e instanceof ArrayBuffer)n=new Uint8Array(e);else{const t=e.byteOffset,s=e.byteLength;n=new Uint8Array(e.buffer||e.arrayBuffer,t,s)}return t.set(n,s),s+ky(n.byteLength,4)}async function Wy(e){const t=[];for await(const s of e)t.push(s);return function(...e){const t=e.map((e=>e instanceof ArrayBuffer?new Uint8Array(e):e)),s=t.reduce(((e,t)=>e+t.byteLength),0),n=new Uint8Array(s);let i=0;for(const e of t)n.set(e,i),i+=e.byteLength;return n.buffer}(...t)}const zy={};const Ky=e=>"function"==typeof e,Yy=e=>null!==e&&"object"==typeof e,Xy=e=>Yy(e)&&e.constructor==={}.constructor,qy=e=>"undefined"!=typeof Response&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json,Jy=e=>"undefined"!=typeof Blob&&e instanceof Blob,Zy=e=>(e=>"undefined"!=typeof ReadableStream&&e instanceof ReadableStream||Yy(e)&&Ky(e.tee)&&Ky(e.cancel)&&Ky(e.getReader))(e)||(e=>Yy(e)&&Ky(e.read)&&Ky(e.pipe)&&(e=>"boolean"==typeof e)(e.readable))(e),$y=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,em=/^([-\w.]+\/[-\w.+]+)/;function tm(e){const t=em.exec(e);return t?t[1]:e}function sm(e){const t=$y.exec(e);return t?t[1]:""}const nm=/\?.*/;function im(e){if(qy(e)){const t=am(e.url||"");return{url:t,type:tm(e.headers.get("content-type")||"")||sm(t)}}return Jy(e)?{url:am(e.name||""),type:e.type||""}:"string"==typeof e?{url:am(e),type:sm(e)}:{url:"",type:""}}function am(e){return e.replace(nm,"")}async function rm(e){if(qy(e))return e;const t={},s=function(e){return qy(e)?e.headers["content-length"]||-1:Jy(e)?e.size:"string"==typeof e?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}(e);s>=0&&(t["content-length"]=String(s));const{url:n,type:i}=im(e);i&&(t["content-type"]=i);const a=await async function(e){const t=5;if("string"==typeof e)return"data:,".concat(e.slice(0,t));if(e instanceof Blob){const t=e.slice(0,5);return await new Promise((e=>{const s=new FileReader;s.onload=t=>{var s;return e(null==t||null===(s=t.target)||void 0===s?void 0:s.result)},s.readAsDataURL(t)}))}if(e instanceof ArrayBuffer){const s=function(e){let t="";const s=new Uint8Array(e);for(let e=0;e=0)}();class Am{constructor(e,t,s="sessionStorage"){this.storage=function(e){try{const t=window[e],s="__storage_test__";return t.setItem(s,s),t.removeItem(s),t}catch(e){return null}}(s),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function dm(e,t,s,n=600){const i=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(s=Math.min(s,n/e.width));const a=e.width*s,r=e.height*s,l=["font-size:1px;","padding:".concat(Math.floor(r/2),"px ").concat(Math.floor(a/2),"px;"),"line-height:".concat(r,"px;"),"background:url(".concat(i,");"),"background-size:".concat(a,"px ").concat(r,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),l]}const fm={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function Im(e){return"string"==typeof e?fm[e.toUpperCase()]||fm.WHITE:e}function ym(e,t){if(!e)throw new Error(t||"Assertion failed")}function mm(){let e;if(pm&&cm.performance)e=cm.performance.now();else if(um.hrtime){const t=um.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const vm={debug:pm&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},wm={enabled:!0,level:0};function gm(){}const Em={},Tm={once:!0};function bm(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}class Dm{constructor({id:e}={id:""}){this.id=e,this.VERSION=hm,this._startTs=mm(),this._deltaTs=mm(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new Am("__probe-".concat(this.id,"__"),wm),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const s=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(s);for(const s of n)"function"==typeof e[s]&&(t.find((e=>s===e))||(e[s]=e[s].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((mm()-this._startTs).toPrecision(10))}getDelta(){return Number((mm()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}assert(e,t){ym(e,t)}warn(e){return this._getLogFunction(0,e,vm.warn,arguments,Tm)}error(e){return this._getLogFunction(0,e,vm.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,vm.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,vm.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,vm.debug||vm.info,arguments,Tm)}table(e,t,s){return t?this._getLogFunction(e,t,console.table||gm,s&&[s],{tag:bm(t)}):gm}image({logLevel:e,priority:t,image:s,message:n="",scale:i=1}){return this._shouldLog(e||t)?pm?function({image:e,message:t="",scale:s=1}){if("string"==typeof e){const n=new Image;return n.onload=()=>{const e=dm(n,t,s);console.log(...e)},n.src=e,gm}const n=e.nodeName||"";if("img"===n.toLowerCase())return console.log(...dm(e,t,s)),gm;if("canvas"===n.toLowerCase()){const n=new Image;return n.onload=()=>console.log(...dm(n,t,s)),n.src=e.toDataURL(),gm}return gm}({image:s,message:n,scale:i}):function({image:e,message:t="",scale:s=1}){let n=null;try{n=module.require("asciify-image")}catch(e){}if(n)return()=>n(e,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return gm}({image:s,message:n,scale:i}):gm}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||gm)}group(e,t,s={collapsed:!1}){s=Rm({logLevel:e,message:t,opts:s});const{collapsed:n}=s;return s.method=(n?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t,s={}){return this.group(e,t,Object.assign({},s,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||gm)}withGroup(e,t,s){this.group(e,t)();try{s()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Pm(e)}_getLogFunction(e,t,s,n=[],i){if(this._shouldLog(e)){i=Rm({logLevel:e,message:t,args:n,opts:i}),ym(s=s||i.method),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=mm();const a=i.tag||i.message;if(i.once){if(Em[a])return gm;Em[a]=mm()}return t=function(e,t,s){if("string"==typeof t){const n=s.time?function(e,t=8){const s=Math.max(t-e.length,0);return"".concat(" ".repeat(s)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(s.total)):"";t=s.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return pm||"string"!=typeof e||(t&&(t=Im(t),e="[".concat(t,"m").concat(e,"")),s&&(t=Im(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,i.message,i),s.bind(console,t,...i.args)}return gm}}function Pm(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return ym(Number.isFinite(t)&&t>=0),t}function Rm(e){const{logLevel:t,message:s}=e;e.logLevel=Pm(t);const n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==s;);switch(e.args=n,typeof t){case"string":case"function":void 0!==s&&n.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const i=typeof e.message;return ym("string"===i||"object"===i),Object.assign(e,e.opts)}Dm.VERSION=hm;const Cm=new Dm({id:"loaders.gl"});class _m{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}const Bm={fetch:null,mimeType:void 0,nothrow:!1,log:new class{constructor(){wy(this,"console",void 0),this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}},CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:hy,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},Om={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function Sm(){globalThis.loaders=globalThis.loaders||{};const{loaders:e}=globalThis;return e._state=e._state||{},e._state}const Nm=()=>{const e=Sm();return e.globalOptions=e.globalOptions||{...Bm},e.globalOptions};function xm(e,t,s,n){return s=s||[],function(e,t){Mm(e,null,Bm,Om,t);for(const s of t){const n=e&&e[s.id]||{},i=s.options&&s.options[s.id]||{},a=s.deprecatedOptions&&s.deprecatedOptions[s.id]||{};Mm(n,s.id,i,a,t)}}(e,s=Array.isArray(s)?s:[s]),function(e,t,s){const n={...e.options||{}};(function(e,t){t&&!("baseUri"in e)&&(e.baseUri=t)})(n,s),null===n.log&&(n.log=new _m);return Hm(n,Nm()),Hm(n,t),n}(t,e,n)}function Lm(e,t){const s=Nm(),n=e||s;return"function"==typeof n.fetch?n.fetch:Yy(n.fetch)?e=>lm(e,n):null!=t&&t.fetch?null==t?void 0:t.fetch:lm}function Mm(e,t,s,n,i){const a=t||"Top level",r=t?"".concat(t,"."):"";for(const l in e){const o=!t&&Yy(e[l]),c="baseUri"===l&&!t,u="workerUrl"===l&&t;if(!(l in s)&&!c&&!u)if(l in n)Cm.warn("".concat(a," loader option '").concat(r).concat(l,"' no longer supported, use '").concat(n[l],"'"))();else if(!o){const e=Fm(l,i);Cm.warn("".concat(a," loader option '").concat(r).concat(l,"' not recognized. ").concat(e))()}}}function Fm(e,t){const s=e.toLowerCase();let n="";for(const i of t)for(const t in i.options){if(e===t)return"Did you mean '".concat(i.id,".").concat(t,"'?");const a=t.toLowerCase();(s.startsWith(a)||a.startsWith(s))&&(n=n||"Did you mean '".concat(i.id,".").concat(t,"'?"))}return n}function Hm(e,t){for(const s in t)if(s in t){const n=t[s];Xy(n)&&Xy(e[s])?e[s]={...e[s],...t[s]}:e[s]=t[s]}}function Um(e){var t;if(!e)return!1;Array.isArray(e)&&(e=e[0]);return Array.isArray(null===(t=e)||void 0===t?void 0:t.extensions)}function Gm(e){var t,s;let n;return uy(e,"null loader"),uy(Um(e),"invalid loader"),Array.isArray(e)&&(n=e[1],e=e[0],e={...e,options:{...e.options,...n}}),(null!==(t=e)&&void 0!==t&&t.parseTextSync||null!==(s=e)&&void 0!==s&&s.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}function jm(){return(()=>{const e=Sm();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry})()}function Vm(){return!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,s=e||t;return!!(s&&s.indexOf("Electron")>=0)}()}const km={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},Qm=km.window||km.self||km.global,Wm=km.process||{},zm="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";Vm();class Km{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";wy(this,"storage",void 0),wy(this,"id",void 0),wy(this,"config",{}),this.storage=function(e){try{const t=window[e],s="__storage_test__";return t.setItem(s,s),t.removeItem(s),t}catch(e){return null}}(s),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function Ym(e,t,s){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const i=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(s=Math.min(s,n/e.width));const a=e.width*s,r=e.height*s,l=["font-size:1px;","padding:".concat(Math.floor(r/2),"px ").concat(Math.floor(a/2),"px;"),"line-height:".concat(r,"px;"),"background:url(".concat(i,");"),"background-size:".concat(a,"px ").concat(r,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),l]}let Xm;function qm(e){return"string"==typeof e?Xm[e.toUpperCase()]||Xm.WHITE:e}function Jm(e,t){if(!e)throw new Error(t||"Assertion failed")}function Zm(){let e;var t,s;if(Vm&&"performance"in Qm)e=null==Qm||null===(t=Qm.performance)||void 0===t||null===(s=t.now)||void 0===s?void 0:s.call(t);else if("hrtime"in Wm){var n;const t=null==Wm||null===(n=Wm.hrtime)||void 0===n?void 0:n.call(Wm);e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}!function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(Xm||(Xm={}));const $m={debug:Vm&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},ev={enabled:!0,level:0};function tv(){}const sv={},nv={once:!0};class iv{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};wy(this,"id",void 0),wy(this,"VERSION",zm),wy(this,"_startTs",Zm()),wy(this,"_deltaTs",Zm()),wy(this,"_storage",void 0),wy(this,"userData",{}),wy(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new Km("__probe-".concat(this.id,"__"),ev),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const s=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(s);for(const s of n)"function"==typeof e[s]&&(t.find((e=>s===e))||(e[s]=e[s].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Zm()-this._startTs).toPrecision(10))}getDelta(){return Number((Zm()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){Jm(e,t)}warn(e){return this._getLogFunction(0,e,$m.warn,arguments,nv)}error(e){return this._getLogFunction(0,e,$m.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,$m.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,$m.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var s=arguments.length,n=new Array(s>2?s-2:0),i=2;i{const t=Ym(e,s,n);console.log(...t)},e.src=t,tv}const i=t.nodeName||"";if("img"===i.toLowerCase())return console.log(...Ym(t,s,n)),tv;if("canvas"===i.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...Ym(e,s,n)),e.src=t.toDataURL(),tv}return tv}({image:n,message:i,scale:a}):function(e){let{image:t,message:s="",scale:n=1}=e,i=null;try{i=module.require("asciify-image")}catch(e){}if(i)return()=>i(t,{fit:"box",width:"".concat(Math.round(80*n),"%")}).then((e=>console.log(e)));return tv}({image:n,message:i,scale:a}):tv}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||tv)}group(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const n=rv({logLevel:e,message:t,opts:s}),{collapsed:i}=s;return n.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},s,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||tv)}withGroup(e,t,s){this.group(e,t)();try{s()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=av(e)}_getLogFunction(e,t,s,n,i){if(this._shouldLog(e)){i=rv({logLevel:e,message:t,args:n,opts:i}),Jm(s=s||i.method),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=Zm();const a=i.tag||i.message;if(i.once){if(sv[a])return tv;sv[a]=Zm()}return t=function(e,t,s){if("string"==typeof t){const n=s.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const s=Math.max(t-e.length,0);return"".concat(" ".repeat(s)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(s.total)):"";t=s.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return Vm||"string"!=typeof e||(t&&(t=qm(t),e="[".concat(t,"m").concat(e,"")),s&&(t=qm(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,i.message,i),s.bind(console,t,...i.args)}return tv}}function av(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return Jm(Number.isFinite(t)&&t>=0),t}function rv(e){const{logLevel:t,message:s}=e;e.logLevel=av(t);const n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==s;);switch(typeof t){case"string":case"function":void 0!==s&&n.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const i=typeof e.message;return Jm("string"===i||"object"===i),Object.assign(e,{args:n},e.opts)}function lv(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}wy(iv,"VERSION",zm);const ov=new iv({id:"loaders.gl"}),cv=/\.([^.]+)$/;function uv(e,t=[],s,n){if(!hv(e))return null;if(t&&!Array.isArray(t))return Gm(t);let i=[];t&&(i=i.concat(t)),null!=s&&s.ignoreRegisteredLoaders||i.push(...jm()),function(e){for(const t of e)Gm(t)}(i);const a=function(e,t,s,n){const{url:i,type:a}=im(e),r=i||(null==n?void 0:n.url);let l=null,o="";null!=s&&s.mimeType&&(l=Av(t,null==s?void 0:s.mimeType),o="match forced by supplied MIME type ".concat(null==s?void 0:s.mimeType));var c;l=l||function(e,t){const s=t&&cv.exec(t),n=s&&s[1];return n?function(e,t){t=t.toLowerCase();for(const s of e)for(const e of s.extensions)if(e.toLowerCase()===t)return s;return null}(e,n):null}(t,r),o=o||(l?"matched url ".concat(r):""),l=l||Av(t,a),o=o||(l?"matched MIME type ".concat(a):""),l=l||function(e,t){if(!t)return null;for(const s of e)if("string"==typeof t){if(dv(t,s))return s}else if(ArrayBuffer.isView(t)){if(fv(t.buffer,t.byteOffset,s))return s}else if(t instanceof ArrayBuffer){if(fv(t,0,s))return s}return null}(t,e),o=o||(l?"matched initial data ".concat(Iv(e)):""),l=l||Av(t,null==s?void 0:s.fallbackMimeType),o=o||(l?"matched fallback MIME type ".concat(a):""),o&&ov.log(1,"selectLoader selected ".concat(null===(c=l)||void 0===c?void 0:c.name,": ").concat(o,"."));return l}(e,i,s,n);if(!(a||null!=s&&s.nothrow))throw new Error(pv(e));return a}function hv(e){return!(e instanceof Response&&204===e.status)}function pv(e){const{url:t,type:s}=im(e);let n="No valid loader found (";n+=t?"".concat(function(e){const t=e&&e.lastIndexOf("/");return t>=0?e.substr(t+1):""}(t),", "):"no url provided, ",n+="MIME type: ".concat(s?'"'.concat(s,'"'):"not provided",", ");const i=e?Iv(e):"";return n+=i?' first bytes: "'.concat(i,'"'):"first bytes: not available",n+=")",n}function Av(e,t){for(const s of e){if(s.mimeTypes&&s.mimeTypes.includes(t))return s;if(t==="application/x.".concat(s.id))return s}return null}function dv(e,t){if(t.testText)return t.testText(e);return(Array.isArray(t.tests)?t.tests:[t.tests]).some((t=>e.startsWith(t)))}function fv(e,t,s){return(Array.isArray(s.tests)?s.tests:[s.tests]).some((n=>function(e,t,s,n){if(n instanceof ArrayBuffer)return function(e,t,s){if(s=s||e.byteLength,e.byteLength60?"".concat(t.slice(0,60),"..."):t}catch(e){}return t}(e);throw new Error(t)}}(s),t.binary?await s.arrayBuffer():await s.text()}if(Zy(e)&&(e=wv(e,s)),(i=e)&&"function"==typeof i[Symbol.iterator]||(e=>e&&"function"==typeof e[Symbol.asyncIterator])(e))return Wy(e);var i;throw new Error(gv)}async function Tv(e,t,s,n){Ay(!n||"object"==typeof n),!t||Array.isArray(t)||Um(t)||(n=void 0,s=t,t=void 0),e=await e,s=s||{};const{url:i}=im(e),a=function(e,t){if(!t&&e&&!Array.isArray(e))return e;let s;if(e&&(s=Array.isArray(e)?e:[e]),t&&t.loaders){const e=Array.isArray(t.loaders)?t.loaders:[t.loaders];s=s?[...s,...e]:e}return s&&s.length?s:null}(t,n),r=await async function(e,t=[],s,n){if(!hv(e))return null;let i=uv(e,t,{...s,nothrow:!0},n);if(i)return i;if(Jy(e)&&(i=uv(e=await e.slice(0,10).arrayBuffer(),t,s,n)),!(i||null!=s&&s.nothrow))throw new Error(pv(e));return i}(e,a,s);return r?(n=function(e,t,s=null){if(s)return s;const n={fetch:Lm(t,e),...e};return Array.isArray(n.loaders)||(n.loaders=null),n}({url:i,parse:Tv,loaders:a},s=xm(s,r,a,i),n),await async function(e,t,s,n){if(function(e,t="3.2.6"){Ay(e,"no worker provided");const s=e.version}(e),qy(t)){const e=t,{ok:s,redirected:i,status:a,statusText:r,type:l,url:o}=e,c=Object.fromEntries(e.headers.entries());n.response={headers:c,ok:s,redirected:i,status:a,statusText:r,type:l,url:o}}if(t=await Ev(t,e,s),e.parseTextSync&&"string"==typeof t)return s.dataType="text",e.parseTextSync(t,s,n,e);if(function(e,t){return!!Sy.isSupported()&&!!(Iy||null!=t&&t._nodeWorkers)&&e.worker&&(null==t?void 0:t.worker)}(e,s))return await My(e,t,s,n,Tv);if(e.parseText&&"string"==typeof t)return await e.parseText(t,s,n,e);if(e.parse)return await e.parse(t,s,n,e);throw Ay(!e.parseSync),new Error("".concat(e.id," loader - no parser found and worker is disabled"))}(r,e,s,n)):null}const bv="https://unpkg.com/@loaders.gl/textures@".concat("3.2.6","/dist/libs/basis_encoder.wasm"),Dv="https://unpkg.com/@loaders.gl/textures@".concat("3.2.6","/dist/libs/basis_encoder.js");let Pv,Rv;async function Cv(e){const t=e.modules||{};return t.basis?t.basis:(Pv=Pv||async function(e){let t=null,s=null;return[t,s]=await Promise.all([await Ly("basis_transcoder.js","textures",e),await Ly("basis_transcoder.wasm","textures",e)]),t=t||globalThis.BASIS,await function(e,t){const s={};t&&(s.wasmBinary=t);return new Promise((t=>{e(s).then((e=>{const{BasisFile:s,initializeBasis:n}=e;n(),t({BasisFile:s})}))}))}(t,s)}(e),await Pv)}async function _v(e){const t=e.modules||{};return t.basisEncoder?t.basisEncoder:(Rv=Rv||async function(e){let t=null,s=null;return[t,s]=await Promise.all([await Ly(Dv,"textures",e),await Ly(bv,"textures",e)]),t=t||globalThis.BASIS,await function(e,t){const s={};t&&(s.wasmBinary=t);return new Promise((t=>{e(s).then((e=>{const{BasisFile:s,KTX2File:n,initializeBasis:i,BasisEncoder:a}=e;i(),t({BasisFile:s,KTX2File:n,BasisEncoder:a})}))}))}(t,s)}(e),await Rv)}const Bv=33776,Ov=33779,Sv=35840,Nv=35842,xv=36196,Lv=37808,Mv=["","WEBKIT_","MOZ_"],Fv={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let Hv=null;function Uv(e){if(!Hv){e=e||function(){try{return document.createElement("canvas").getContext("webgl")}catch(e){return null}}()||void 0,Hv=new Set;for(const t of Mv)for(const s in Fv)if(e&&e.getExtension("".concat(t).concat(s))){const e=Fv[s];Hv.add(e)}}return Hv}var Gv,jv,Vv,kv,Qv,Wv,zv,Kv,Yv;(Yv=Gv||(Gv={}))[Yv.NONE=0]="NONE",Yv[Yv.BASISLZ=1]="BASISLZ",Yv[Yv.ZSTD=2]="ZSTD",Yv[Yv.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(jv||(jv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Vv||(Vv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(kv||(kv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(Qv||(Qv={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(Wv||(Wv={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(zv||(zv={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(Kv||(Kv={}));const Xv=[171,75,84,88,32,50,48,187,13,10,26,10];const qv={etc1:{basisFormat:0,compressed:!0,format:xv},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:Bv},bc3:{basisFormat:3,compressed:!0,format:Ov},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:Sv},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:Nv},"astc-4x4":{basisFormat:10,compressed:!0,format:Lv},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};function Jv(e,t,s){const n=new e(new Uint8Array(t));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");const e=n.getNumImages(),t=[];for(let i=0;i{try{s.onload=()=>t(s),s.onerror=t=>n(new Error("Could not load image ".concat(e,": ").concat(t)))}catch(e){n(e)}}))}(a||n,t)}finally{a&&i.revokeObjectURL(a)}}const fw={};let Iw=!0;async function yw(e,t,s){let n;if(pw(s)){n=await dw(e,t,s)}else n=Aw(e,s);const i=t&&t.imagebitmap;return await async function(e,t=null){!function(e){for(const t in e||fw)return!1;return!0}(t)&&Iw||(t=null);if(t)try{return await createImageBitmap(e,t)}catch(e){console.warn(e),Iw=!1}return await createImageBitmap(e)}(n,i)}function mw(e){const t=vw(e);return function(e){const t=vw(e);if(!(t.byteLength>=24&&2303741511===t.getUint32(0,false)))return null;return{mimeType:"image/png",width:t.getUint32(16,false),height:t.getUint32(20,false)}}(t)||function(e){const t=vw(e);if(!(t.byteLength>=3&&65496===t.getUint16(0,false)&&255===t.getUint8(2)))return null;const{tableMarkers:s,sofMarkers:n}=function(){const e=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)e.add(t);const t=new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502]);return{tableMarkers:e,sofMarkers:t}}();let i=2;for(;i+9=10&&1195984440===t.getUint32(0,false)))return null;return{mimeType:"image/gif",width:t.getUint16(6,true),height:t.getUint16(8,true)}}(t)||function(e){const t=vw(e);if(!(t.byteLength>=14&&16973===t.getUint16(0,false)&&t.getUint32(2,true)===t.byteLength))return null;return{mimeType:"image/bmp",width:t.getUint32(18,true),height:t.getUint32(22,true)}}(t)}function vw(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}const ww={id:"image",module:"images",name:"Images",version:"3.2.6",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg"],parse:async function(e,t,s){const n=((t=t||{}).image||{}).type||"auto",{url:i}=s||{};let a;switch(function(e){switch(e){case"auto":case"data":return function(){if(rw)return"imagebitmap";if(aw)return"image";if(ow)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(e){switch(e){case"auto":return rw||aw||ow;case"imagebitmap":return rw;case"image":return aw;case"data":return ow;default:throw new Error("@loaders.gl/images: image ".concat(e," not supported in this environment"))}}(e),e}}(n)){case"imagebitmap":a=await yw(e,t,i);break;case"image":a=await dw(e,t,i);break;case"data":a=await async function(e,t){const{mimeType:s}=mw(e)||{},n=globalThis._parseImageNode;return uy(n),await n(e,s)}(e);break;default:uy(!1)}return"data"===n&&(a=function(e){switch(cw(e)){case"data":return e;case"image":case"imagebitmap":const t=document.createElement("canvas"),s=t.getContext("2d");if(!s)throw new Error("getImageData");return t.width=e.width,t.height=e.height,s.drawImage(e,0,0),s.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}(a)),a},tests:[e=>Boolean(mw(new DataView(e)))],options:{image:{type:"auto",decode:!0}}},gw=["image/png","image/jpeg","image/gif"],Ew={};function Tw(e){return void 0===Ew[e]&&(Ew[e]=function(e){switch(e){case"image/webp":return function(){if(!hy)return!1;try{return 0===document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")}catch{return!1}}();case"image/svg":return hy;default:if(!hy){const{_parseImageNode:t}=globalThis;return Boolean(t)&&gw.includes(e)}return!0}}(e)),Ew[e]}function bw(e,t){if(!e)throw new Error(t||"assert failed: gltf")}function Dw(e,t){if(e.startsWith("data:")||e.startsWith("http:")||e.startsWith("https:"))return e;const s=t.baseUri||t.uri;if(!s)throw new Error("'baseUri' must be provided to resolve relative url ".concat(e));return s.substr(0,s.lastIndexOf("/")+1)+e}const Pw=["SCALAR","VEC2","VEC3","VEC4"],Rw=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Cw=new Map(Rw),_w={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Bw={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Ow={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Sw(e){return Pw[e-1]||Pw[0]}function Nw(e){const t=Cw.get(e.constructor);if(!t)throw new Error("Illegal typed array");return t}function xw(e,t){const s=Ow[e.componentType],n=_w[e.type],i=Bw[e.componentType],a=e.count*n,r=e.count*n*i;return bw(r>=0&&r<=t.byteLength),{ArrayType:s,length:a,byteLength:r}}const Lw={asset:{version:"2.0",generator:"loaders.gl"},buffers:[]};class Mw{constructor(e){wy(this,"gltf",void 0),wy(this,"sourceBuffers",void 0),wy(this,"byteLength",void 0),this.gltf=e||{json:{...Lw},buffers:[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}getExtension(e){const t=this.getUsedExtensions().find((t=>t===e)),s=this.json.extensions||{};return t?s[e]||!0:null}getRequiredExtension(e){const t=this.getRequiredExtensions().find((t=>t===e));return t?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if("object"==typeof t)return t;const s=this.json[e]&&this.json[e][t];if(!s)throw new Error("glTF file error: Could not find ".concat(e,"[").concat(t,"]"));return s}getTypedArrayForBufferView(e){const t=(e=this.getBufferView(e)).buffer,s=this.gltf.buffers[t];bw(s);const n=(e.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,n,e.byteLength)}getTypedArrayForAccessor(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),s=this.getBuffer(t.buffer).data,{ArrayType:n,length:i}=xw(e,t);return new n(s,t.byteOffset+e.byteOffset,i)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),s=this.getBuffer(t.buffer).data,n=t.byteOffset||0;return new Uint8Array(s,n,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,s){return e.extensions=e.extensions||{},e.extensions[t]=s,this.registerUsedExtension(t),this}setObjectExtension(e,t,s){(e.extensions||{})[t]=s}removeObjectExtension(e,t){const s=e.extensions||{},n=s[t];return delete s[t],n}addExtension(e,t={}){return bw(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return bw(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find((t=>t===e))||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find((t=>t===e))||this.json.extensionsRequired.push(e)}removeExtension(e){this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e),this.json.extensions&&delete this.json.extensions[e]}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:s}=e;this.json.nodes=this.json.nodes||[];const n={mesh:t};return s&&(n.matrix=s),this.json.nodes.push(n),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:s,material:n,mode:i=4}=e,a={primitives:[{attributes:this._addAttributes(t),mode:i}]};if(s){const e=this._addIndices(s);a.primitives[0].indices=e}return Number.isFinite(n)&&(a.primitives[0].material=n),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){const t={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(t),this.json.meshes.length-1}addImage(e,t){const s=mw(e),n=t||(null==s?void 0:s.mimeType),i={bufferView:this.addBufferView(e),mimeType:n};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e){const t=e.byteLength;bw(Number.isFinite(t)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const s={buffer:0,byteOffset:this.byteLength,byteLength:t};return this.byteLength+=ky(t,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,t){const s={bufferView:e,type:Sw(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(s),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const s=this.addBufferView(e);let n={min:t.min,max:t.max};n.min&&n.max||(n=this._getAccessorMinMax(e,t.size));const i={size:t.size,componentType:Nw(e),count:Math.round(e.length/t.size),min:n.min,max:n.max};return this.addAccessor(s,Object.assign(i,t))}addTexture(e){const{imageIndex:t}=e,s={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(s),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,t;this.gltf.buffers=[];const s=this.byteLength,n=new ArrayBuffer(s),i=new Uint8Array(n);let a=0;for(const e of this.sourceBuffers||[])a=Qy(e,i,a);null!==(e=this.json)&&void 0!==e&&null!==(t=e.buffers)&&void 0!==t&&t[0]?this.json.buffers[0].byteLength=s:this.json.buffers=[{byteLength:s}],this.gltf.binary=n,this.sourceBuffers=[n]}_removeStringFromArray(e,t){let s=!0;for(;s;){const n=e.indexOf(t);n>-1?e.splice(n,1):s=!1}}_addAttributes(e={}){const t={};for(const s in e){const n=e[s],i=this._getGltfAttributeName(s),a=this.addBinaryBuffer(n.value,n);t[i]=a}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const s={min:null,max:null};if(e.length96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let s=0;for(let n=0;nt[e.name]));return new qw(s,this.metadata)}selectAt(...e){const t=e.map((e=>this.fields[e])).filter(Boolean);return new qw(t,this.metadata)}assign(e){let t,s=this.metadata;if(e instanceof qw){const n=e;t=n.fields,s=Jw(Jw(new Map,this.metadata),n.metadata)}else t=e;const n=Object.create(null);for(const e of this.fields)n[e.name]=e;for(const e of t)n[e.name]=e;const i=Object.values(n);return new qw(i,s)}}function Jw(e,t){return new Map([...e||new Map,...t||new Map])}class Zw{constructor(e,t,s=!1,n=new Map){wy(this,"name",void 0),wy(this,"type",void 0),wy(this,"nullable",void 0),wy(this,"metadata",void 0),this.name=e,this.type=t,this.nullable=s,this.metadata=n}get typeId(){return this.type&&this.type.typeId}clone(){return new Zw(this.name,this.type,this.nullable,this.metadata)}compareTo(e){return this.name===e.name&&this.type===e.type&&this.nullable===e.nullable&&this.metadata===e.metadata}toString(){return"".concat(this.type).concat(this.nullable?", nullable":"").concat(this.metadata?", metadata: ".concat(this.metadata):"")}}let $w,eg,tg,sg;!function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}($w||($w={}));class ng{static isNull(e){return e&&e.typeId===$w.Null}static isInt(e){return e&&e.typeId===$w.Int}static isFloat(e){return e&&e.typeId===$w.Float}static isBinary(e){return e&&e.typeId===$w.Binary}static isUtf8(e){return e&&e.typeId===$w.Utf8}static isBool(e){return e&&e.typeId===$w.Bool}static isDecimal(e){return e&&e.typeId===$w.Decimal}static isDate(e){return e&&e.typeId===$w.Date}static isTime(e){return e&&e.typeId===$w.Time}static isTimestamp(e){return e&&e.typeId===$w.Timestamp}static isInterval(e){return e&&e.typeId===$w.Interval}static isList(e){return e&&e.typeId===$w.List}static isStruct(e){return e&&e.typeId===$w.Struct}static isUnion(e){return e&&e.typeId===$w.Union}static isFixedSizeBinary(e){return e&&e.typeId===$w.FixedSizeBinary}static isFixedSizeList(e){return e&&e.typeId===$w.FixedSizeList}static isMap(e){return e&&e.typeId===$w.Map}static isDictionary(e){return e&&e.typeId===$w.Dictionary}get typeId(){return $w.NONE}compareTo(e){return this===e}}eg=Symbol.toStringTag;class ig extends ng{constructor(e,t){super(),wy(this,"isSigned",void 0),wy(this,"bitWidth",void 0),this.isSigned=e,this.bitWidth=t}get typeId(){return $w.Int}get[eg](){return"Int"}toString(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}}class ag extends ig{constructor(){super(!0,8)}}class rg extends ig{constructor(){super(!0,16)}}class lg extends ig{constructor(){super(!0,32)}}class og extends ig{constructor(){super(!1,8)}}class cg extends ig{constructor(){super(!1,16)}}class ug extends ig{constructor(){super(!1,32)}}const hg=32,pg=64;tg=Symbol.toStringTag;class Ag extends ng{constructor(e){super(),wy(this,"precision",void 0),this.precision=e}get typeId(){return $w.Float}get[tg](){return"Float"}toString(){return"Float".concat(this.precision)}}class dg extends Ag{constructor(){super(hg)}}class fg extends Ag{constructor(){super(pg)}}sg=Symbol.toStringTag;class Ig extends ng{constructor(e,t){super(),wy(this,"listSize",void 0),wy(this,"children",void 0),this.listSize=e,this.children=[t]}get typeId(){return $w.FixedSizeList}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get[sg](){return"FixedSizeList"}toString(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}}function yg(e,t,s){const n=function(e){switch(e.constructor){case Int8Array:return new ag;case Uint8Array:return new og;case Int16Array:return new rg;case Uint16Array:return new cg;case Int32Array:return new lg;case Uint32Array:return new ug;case Float32Array:return new dg;case Float64Array:return new fg;default:throw new Error("array type not supported")}}(t.value),i=s||function(e){const t=new Map;"byteOffset"in e&&t.set("byteOffset",e.byteOffset.toString(10));"byteStride"in e&&t.set("byteStride",e.byteStride.toString(10));"normalized"in e&&t.set("normalized",e.normalized.toString());return t}(t);return new Zw(e,new Ig(t.size,new Zw("value",n)),!1,i)}function mg(e,t,s){return yg(e,t,s?vg(s.metadata):void 0)}function vg(e){const t=new Map;for(const s in e)t.set("".concat(s,".string"),JSON.stringify(e[s]));return t}const wg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},gg={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array};class Eg{constructor(e){wy(this,"draco",void 0),wy(this,"decoder",void 0),wy(this,"metadataQuerier",void 0),this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const s=new this.draco.DecoderBuffer;s.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const n=this.decoder.GetEncodedGeometryType(s),i=n===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let e;switch(n){case this.draco.TRIANGULAR_MESH:e=this.decoder.DecodeBufferToMesh(s,i);break;case this.draco.POINT_CLOUD:e=this.decoder.DecodeBufferToPointCloud(s,i);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!e.ok()||!i.ptr){const t="DRACO decompression failed: ".concat(e.error_msg());throw new Error(t)}const a=this._getDracoLoaderData(i,n,t),r=this._getMeshData(i,a,t),l=function(e){let t=1/0,s=1/0,n=1/0,i=-1/0,a=-1/0,r=-1/0;const l=e.POSITION?e.POSITION.value:[],o=l&&l.length;for(let e=0;ei?o:i,a=c>a?c:a,r=u>r?u:r}return[[t,s,n],[i,a,r]]}(r.attributes),o=function(e,t,s){const n=vg(t.metadata),i=[],a=function(e){const t={};for(const s in e){const n=e[s];t[n.name||"undefined"]=n}return t}(t.attributes);for(const t in e){const s=mg(t,e[t],a[t]);i.push(s)}if(s){const e=mg("indices",s);i.push(e)}return new qw(i,n)}(r.attributes,a,r.indices);return{loader:"draco",loaderData:a,header:{vertexCount:i.num_points(),boundingBox:l},...r,schema:o}}finally{this.draco.destroy(s),i&&this.draco.destroy(i)}}_getDracoLoaderData(e,t,s){const n=this._getTopLevelMetadata(e),i=this._getDracoAttributes(e,s);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:n,attributes:i}}_getDracoAttributes(e,t){const s={};for(let n=0;nthis.decoder[e])).includes(n)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits(),range:t.range(),min_values:new Float32Array([1,2,3]).map((e=>t.min_value(e)))}}finally{this.draco.destroy(t)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:s=[]}=t,n=e.attribute_type();if(s.map((e=>this.decoder[e])).includes(n)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits()}}finally{this.draco.destroy(t)}}return null}}const Tg="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_decoder.js"),bg="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_wasm_wrapper.js"),Dg="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_decoder.wasm");let Pg;async function Rg(e){const t=e.modules||{};return Pg=t.draco3d?Pg||t.draco3d.createDecoderModule({}).then((e=>({draco:e}))):Pg||async function(e){let t,s;if("js"===(e.draco&&e.draco.decoderType))t=await Ly(Tg,"draco",e);else[t,s]=await Promise.all([await Ly(bg,"draco",e),await Ly(Dg,"draco",e)]);return t=t||globalThis.DracoDecoderModule,await function(e,t){const s={};t&&(s.wasmBinary=t);return new Promise((t=>{e({...s,onModuleLoaded:e=>t({draco:e})})}))}(t,s)}(e),await Pg}const Cg={...Xw,parse:async function(e,t){const{draco:s}=await Rg(t),n=new Eg(s);try{return n.parseSync(e,null==t?void 0:t.draco)}finally{n.destroy()}}};function _g(e){const{buffer:t,size:s,count:n}=function(e){let t=e,s=1,n=0;e&&e.value&&(t=e.value,s=e.size||1);t&&(ArrayBuffer.isView(t)||(t=function(e,t,s=!1){if(!e)return null;if(Array.isArray(e))return new t(e);if(s&&!(e instanceof t))return new t(e);return e}(t,Float32Array)),n=t.length/s);return{buffer:t,size:s,count:n}}(e);return{value:t,size:s,byteOffset:0,count:n,type:Sw(s),componentType:Nw(t)}}async function Bg(e,t,s,n){const i=e.getObjectExtension(t,"KHR_draco_mesh_compression");if(!i)return;const a=e.getTypedArrayForBufferView(i.bufferView),r=Vy(a.buffer,a.byteOffset),{parse:l}=n,o={...s};delete o["3d-tiles"];const c=await l(r,Cg,o,n),u=function(e){const t={};for(const s in e){const n=e[s];if("indices"!==s){const e=_g(n);t[s]=e}}return t}(c.attributes);for(const[s,n]of Object.entries(u))if(s in t.attributes){const i=t.attributes[s],a=e.getAccessor(i);null!=a&&a.min&&null!=a&&a.max&&(n.min=a.min,n.max=a.max)}t.attributes=u,c.indices&&(t.indices=_g(c.indices)),function(e){if(!e.attributes&&Object.keys(e.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}(t)}function Og(e,t,s=4,n,i){var a;if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const r=n.DracoWriter.encodeSync({attributes:e}),l=null==i||null===(a=i.parseSync)||void 0===a?void 0:a.call(i,{attributes:e}),o=n._addFauxAttributes(l.attributes);return{primitives:[{attributes:o,mode:s,extensions:{KHR_draco_mesh_compression:{bufferView:n.addBufferView(r),attributes:o}}}]}}function*Sg(e){for(const t of e.json.meshes||[])for(const e of t.primitives)yield e}var Ng=Object.freeze({__proto__:null,name:"KHR_draco_mesh_compression",preprocess:function(e,t,s){const n=new Mw(e);for(const e of Sg(n))n.getObjectExtension(e,"KHR_draco_mesh_compression")},decode:async function(e,t,s){var n;if(null==t||null===(n=t.gltf)||void 0===n||!n.decompressMeshes)return;const i=new Mw(e),a=[];for(const e of Sg(i))i.getObjectExtension(e,"KHR_draco_mesh_compression")&&a.push(Bg(i,e,t,s));await Promise.all(a),i.removeExtension("KHR_draco_mesh_compression")},encode:function(e,t={}){const s=new Mw(e);for(const e of s.json.meshes||[])Og(e),s.addRequiredExtension("KHR_draco_mesh_compression")}});var xg=Object.freeze({__proto__:null,name:"KHR_lights_punctual",decode:async function(e){const t=new Mw(e),{json:s}=t,n=t.getExtension("KHR_lights_punctual");n&&(t.json.lights=n.lights,t.removeExtension("KHR_lights_punctual"));for(const e of s.nodes||[]){const s=t.getObjectExtension(e,"KHR_lights_punctual");s&&(e.light=s.light),t.removeObjectExtension(e,"KHR_lights_punctual")}},encode:async function(e){const t=new Mw(e),{json:s}=t;if(s.lights){const e=t.addExtension("KHR_lights_punctual");bw(!e.lights),e.lights=s.lights,delete s.lights}if(t.json.lights){for(const e of t.json.lights){const s=e.node;t.addObjectExtension(s,"KHR_lights_punctual",e)}delete t.json.lights}}});function Lg(e,t){const s=Object.assign({},e.values);return Object.keys(e.uniforms||{}).forEach((t=>{e.uniforms[t].value&&!(t in s)&&(s[t]=e.uniforms[t].value)})),Object.keys(s).forEach((e=>{"object"==typeof s[e]&&void 0!==s[e].index&&(s[e].texture=t.getTexture(s[e].index))})),s}const Mg=[zw,Kw,Yw,Ng,xg,Object.freeze({__proto__:null,name:"KHR_materials_unlit",decode:async function(e){const t=new Mw(e),{json:s}=t;t.removeExtension("KHR_materials_unlit");for(const e of s.materials||[]){e.extensions&&e.extensions.KHR_materials_unlit&&(e.unlit=!0),t.removeObjectExtension(e,"KHR_materials_unlit")}},encode:function(e){const t=new Mw(e),{json:s}=t;if(t.materials)for(const e of s.materials||[])e.unlit&&(delete e.unlit,t.addObjectExtension(e,"KHR_materials_unlit",{}),t.addExtension("KHR_materials_unlit"))}}),Object.freeze({__proto__:null,name:"KHR_techniques_webgl",decode:async function(e){const t=new Mw(e),{json:s}=t,n=t.getExtension("KHR_techniques_webgl");if(n){const e=function(e,t){const{programs:s=[],shaders:n=[],techniques:i=[]}=e,a=new TextDecoder;return n.forEach((e=>{if(!Number.isFinite(e.bufferView))throw new Error("KHR_techniques_webgl: no shader code");e.code=a.decode(t.getTypedArrayForBufferView(e.bufferView))})),s.forEach((e=>{e.fragmentShader=n[e.fragmentShader],e.vertexShader=n[e.vertexShader]})),i.forEach((e=>{e.program=s[e.program]})),i}(n,t);for(const n of s.materials||[]){const s=t.getObjectExtension(n,"KHR_techniques_webgl");s&&(n.technique=Object.assign({},s,e[s.technique]),n.technique.values=Lg(n.technique,t)),t.removeObjectExtension(n,"KHR_techniques_webgl")}t.removeExtension("KHR_techniques_webgl")}},encode:async function(e,t){}})];function Fg(e,t){var s;const n=(null==t||null===(s=t.gltf)||void 0===s?void 0:s.excludeExtensions)||{};return!(e in n&&!n[e])}const Hg={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},Ug={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};class Gg{constructor(){wy(this,"idToIndexMap",{animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}}),wy(this,"json",void 0)}normalize(e,t){this.json=e.json;const s=e.json;switch(s.asset&&s.asset.version){case"2.0":return;case void 0:case"1.0":break;default:return void console.warn("glTF: Unknown version ".concat(s.asset.version))}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(s),this._convertTopLevelObjectsToArrays(s),function(e){const t=new Mw(e),{json:s}=t;for(const e of s.images||[]){const s=t.getObjectExtension(e,"KHR_binary_glTF");s&&Object.assign(e,s),t.removeObjectExtension(e,"KHR_binary_glTF")}s.buffers&&s.buffers[0]&&delete s.buffers[0].uri,t.removeExtension("KHR_binary_glTF")}(e),this._convertObjectIdsToArrayIndices(s),this._updateObjects(s),this._updateMaterial(s)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in Hg)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const s=e[t];if(s&&!Array.isArray(s)){e[t]=[];for(const n in s){const i=s[n];i.id=i.id||n;const a=e[t].length;e[t].push(i),this.idToIndexMap[t][n]=a}}}_convertObjectIdsToArrayIndices(e){for(const t in Hg)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:e,indices:s,material:n}=t;for(const t in e)e[t]=this._convertIdToIndex(e[t],"accessor");s&&(t.indices=this._convertIdToIndex(s,"accessor")),n&&(t.material=this._convertIdToIndex(n,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map((e=>this._convertIdToIndex(e,"node")))),e.meshes&&(e.meshes=e.meshes.map((e=>this._convertIdToIndex(e,"mesh"))))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map((e=>this._convertIdToIndex(e,"node"))))}_convertIdsToIndices(e,t){e[t]||(console.warn("gltf v1: json doesn't contain attribute ".concat(t)),e[t]=[]);for(const s of e[t])for(const e in s){const t=s[e],n=this._convertIdToIndex(t,e);s[e]=n}}_convertIdToIndex(e,t){const s=Ug[t];if(s in this.idToIndexMap){const n=this.idToIndexMap[s][e];if(!Number.isFinite(n))throw new Error("gltf v1: failed to resolve ".concat(t," with id ").concat(e));return n}return e}_updateObjects(e){for(const e of this.json.buffers)delete e.type}_updateMaterial(e){for(const n of e.materials){var t,s;n.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const i=(null===(t=n.values)||void 0===t?void 0:t.tex)||(null===(s=n.values)||void 0===s?void 0:s.texture2d_0),a=e.textures.findIndex((e=>e.id===i));-1!==a&&(n.pbrMetallicRoughness.baseColorTexture={index:a})}}}const jg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Vg={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},kg=10240,Qg=10241,Wg=10242,zg=10243,Kg=10497,Yg={magFilter:kg,minFilter:Qg,wrapS:Wg,wrapT:zg},Xg={[kg]:9729,[Qg]:9986,[Wg]:Kg,[zg]:Kg};class qg{constructor(){wy(this,"baseUri",""),wy(this,"json",{}),wy(this,"buffers",[]),wy(this,"images",[])}postProcess(e,t={}){const{json:s,buffers:n=[],images:i=[],baseUri:a=""}=e;return bw(s),this.baseUri=a,this.json=s,this.buffers=n,this.images=i,this._resolveTree(this.json,t),this.json}_resolveTree(e,t={}){e.bufferViews&&(e.bufferViews=e.bufferViews.map(((e,t)=>this._resolveBufferView(e,t)))),e.images&&(e.images=e.images.map(((e,t)=>this._resolveImage(e,t)))),e.samplers&&(e.samplers=e.samplers.map(((e,t)=>this._resolveSampler(e,t)))),e.textures&&(e.textures=e.textures.map(((e,t)=>this._resolveTexture(e,t)))),e.accessors&&(e.accessors=e.accessors.map(((e,t)=>this._resolveAccessor(e,t)))),e.materials&&(e.materials=e.materials.map(((e,t)=>this._resolveMaterial(e,t)))),e.meshes&&(e.meshes=e.meshes.map(((e,t)=>this._resolveMesh(e,t)))),e.nodes&&(e.nodes=e.nodes.map(((e,t)=>this._resolveNode(e,t)))),e.skins&&(e.skins=e.skins.map(((e,t)=>this._resolveSkin(e,t)))),e.scenes&&(e.scenes=e.scenes.map(((e,t)=>this._resolveScene(e,t)))),void 0!==e.scene&&(e.scene=e.scenes[this.json.scene])}getScene(e){return this._get("scenes",e)}getNode(e){return this._get("nodes",e)}getSkin(e){return this._get("skins",e)}getMesh(e){return this._get("meshes",e)}getMaterial(e){return this._get("materials",e)}getAccessor(e){return this._get("accessors",e)}getCamera(e){return null}getTexture(e){return this._get("textures",e)}getSampler(e){return this._get("samplers",e)}getImage(e){return this._get("images",e)}getBufferView(e){return this._get("bufferViews",e)}getBuffer(e){return this._get("buffers",e)}_get(e,t){if("object"==typeof t)return t;const s=this.json[e]&&this.json[e][t];return s||console.warn("glTF file error: Could not find ".concat(e,"[").concat(t,"]")),s}_resolveScene(e,t){return e.id=e.id||"scene-".concat(t),e.nodes=(e.nodes||[]).map((e=>this.getNode(e))),e}_resolveNode(e,t){return e.id=e.id||"node-".concat(t),e.children&&(e.children=e.children.map((e=>this.getNode(e)))),void 0!==e.mesh?e.mesh=this.getMesh(e.mesh):void 0!==e.meshes&&e.meshes.length&&(e.mesh=e.meshes.reduce(((e,t)=>{const s=this.getMesh(t);return e.id=s.id,e.primitives=e.primitives.concat(s.primitives),e}),{primitives:[]})),void 0!==e.camera&&(e.camera=this.getCamera(e.camera)),void 0!==e.skin&&(e.skin=this.getSkin(e.skin)),e}_resolveSkin(e,t){return e.id=e.id||"skin-".concat(t),e.inverseBindMatrices=this.getAccessor(e.inverseBindMatrices),e}_resolveMesh(e,t){return e.id=e.id||"mesh-".concat(t),e.primitives&&(e.primitives=e.primitives.map((e=>{const t=(e={...e}).attributes;e.attributes={};for(const s in t)e.attributes[s]=this.getAccessor(t[s]);return void 0!==e.indices&&(e.indices=this.getAccessor(e.indices)),void 0!==e.material&&(e.material=this.getMaterial(e.material)),e}))),e}_resolveMaterial(e,t){if(e.id=e.id||"material-".concat(t),e.normalTexture&&(e.normalTexture={...e.normalTexture},e.normalTexture.texture=this.getTexture(e.normalTexture.index)),e.occlusionTexture&&(e.occlustionTexture={...e.occlustionTexture},e.occlusionTexture.texture=this.getTexture(e.occlusionTexture.index)),e.emissiveTexture&&(e.emmisiveTexture={...e.emmisiveTexture},e.emissiveTexture.texture=this.getTexture(e.emissiveTexture.index)),e.emissiveFactor||(e.emissiveFactor=e.emmisiveTexture?[1,1,1]:[0,0,0]),e.pbrMetallicRoughness){e.pbrMetallicRoughness={...e.pbrMetallicRoughness};const t=e.pbrMetallicRoughness;t.baseColorTexture&&(t.baseColorTexture={...t.baseColorTexture},t.baseColorTexture.texture=this.getTexture(t.baseColorTexture.index)),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture={...t.metallicRoughnessTexture},t.metallicRoughnessTexture.texture=this.getTexture(t.metallicRoughnessTexture.index))}return e}_resolveAccessor(e,t){var s,n;if(e.id=e.id||"accessor-".concat(t),void 0!==e.bufferView&&(e.bufferView=this.getBufferView(e.bufferView)),e.bytesPerComponent=(s=e.componentType,Vg[s]),e.components=(n=e.type,jg[n]),e.bytesPerElement=e.bytesPerComponent*e.components,e.bufferView){const t=e.bufferView.buffer,{ArrayType:s,byteLength:n}=xw(e,e.bufferView),i=(e.bufferView.byteOffset||0)+(e.byteOffset||0)+t.byteOffset;let a=t.arrayBuffer.slice(i,i+n);e.bufferView.byteStride&&(a=this._getValueFromInterleavedBuffer(t,i,e.bufferView.byteStride,e.bytesPerElement,e.count)),e.value=new s(a)}return e}_getValueFromInterleavedBuffer(e,t,s,n,i){const a=new Uint8Array(i*n);for(let r=0;r20);const n=t.getUint32(s+0,Zg),i=t.getUint32(s+4,Zg);return s+=8,uy(0===i),eE(e,t,s,n),s+=n,s+=tE(e,t,s,e.header.byteLength)}(e,i,s);case 2:return function(e,t,s,n){return uy(e.header.byteLength>20),function(e,t,s,n){for(;s+8<=e.header.byteLength;){const i=t.getUint32(s+0,Zg),a=t.getUint32(s+4,Zg);switch(s+=8,a){case 1313821514:eE(e,t,s,i);break;case 5130562:tE(e,t,s,i);break;case 0:n.strict||eE(e,t,s,i);break;case 1:n.strict||tE(e,t,s,i)}s+=ky(i,4)}}(e,t,s,n),s+e.header.byteLength}(e,i,s,{});default:throw new Error("Invalid GLB version ".concat(e.version,". Only supports v1 and v2."))}}function eE(e,t,s,n){const i=new Uint8Array(t.buffer,s,n),a=new TextDecoder("utf8").decode(i);return e.json=JSON.parse(a),ky(n,4)}function tE(e,t,s,n){return e.header.hasBinChunk=!0,e.binChunks.push({byteOffset:s,byteLength:n,arrayBuffer:t.buffer}),ky(n,4)}async function sE(e,t,s=0,n,i){var a,r,l,o;!function(e,t,s,n){n.uri&&(e.baseUri=n.uri);if(t instanceof ArrayBuffer&&!function(e,t=0,s={}){const n=new DataView(e),{magic:i=Jg}=s,a=n.getUint32(t,!1);return a===i||a===Jg}(t,s,n)){t=(new TextDecoder).decode(t)}if("string"==typeof t)e.json=Uy(t);else if(t instanceof ArrayBuffer){const i={};s=$g(i,t,s,n.glb),bw("glTF"===i.type,"Invalid GLB magic string ".concat(i.type)),e._glb=i,e.json=i.json}else bw(!1,"GLTF: must be ArrayBuffer or string");const i=e.json.buffers||[];if(e.buffers=new Array(i.length).fill(null),e._glb&&e._glb.header.hasBinChunk){const{binChunks:t}=e._glb;e.buffers[0]={arrayBuffer:t[0].arrayBuffer,byteOffset:t[0].byteOffset,byteLength:t[0].byteLength}}const a=e.json.images||[];e.images=new Array(a.length).fill({})}(e,t,s,n),function(e,t={}){(new Gg).normalize(e,t)}(e,{normalize:null==n||null===(a=n.gltf)||void 0===a?void 0:a.normalize}),function(e,t={},s){const n=Mg.filter((e=>Fg(e.name,t)));for(const a of n){var i;null===(i=a.preprocess)||void 0===i||i.call(a,e,t,s)}}(e,n,i);const c=[];if(null!=n&&null!==(r=n.gltf)&&void 0!==r&&r.loadBuffers&&e.json.buffers&&await async function(e,t,s){const n=e.json.buffers||[];for(let r=0;rFg(e.name,t)));for(const a of n){var i;await(null===(i=a.decode)||void 0===i?void 0:i.call(a,e,t,s))}}(e,n,i);return c.push(u),await Promise.all(c),null!=n&&null!==(o=n.gltf)&&void 0!==o&&o.postProcess?function(e,t){return(new qg).postProcess(e,t)}(e,n):e}async function nE(e,t,s,n,i){const{fetch:a,parse:r}=i;let l;if(t.uri){const e=Dw(t.uri,n),s=await a(e);l=await s.arrayBuffer()}if(Number.isFinite(t.bufferView)){const s=function(e,t,s){const n=e.bufferViews[s];bw(n);const i=t[n.buffer];bw(i);const a=(n.byteOffset||0)+i.byteOffset;return new Uint8Array(i.arrayBuffer,a,n.byteLength)}(e.json,e.buffers,t.bufferView);l=Vy(s.buffer,s.byteOffset,s.byteLength)}bw(l,"glTF image has no data");let o=await r(l,[ww,nw],{mimeType:t.mimeType,basis:n.basis||{format:sw()}},i);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),e.images=e.images||[],e.images[s]=o}const iE={name:"glTF",id:"gltf",module:"gltf",version:"3.2.6",extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:async function(e,t={},s){(t={...iE.options,...t}).gltf={...iE.options.gltf,...t.gltf};const{byteOffset:n=0}=t;return await sE({},e,n,t,s)},options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0,postProcess:!0},log:console},deprecatedOptions:{fetchImages:"gltf.loadImages",createImages:"gltf.loadImages",decompress:"gltf.decompressMeshes",postProcess:"gltf.postProcess",gltf:{decompress:"gltf.decompressMeshes"}}};class aE{constructor(e){}load(e,t,s,n,i,a,r){!function(e,t,s,n,i,a,r){const l=e.viewer.scene.canvas.spinner;l.processes++;"glb"===t.split(".").pop()?e.dataSource.getGLB(t,(r=>{n.basePath=lE(t),oE(e,t,r,s,n,i,a),l.processes--}),(e=>{l.processes--,r(e)})):e.dataSource.getGLTF(t,(r=>{n.basePath=lE(t),oE(e,t,r,s,n,i,a),l.processes--}),(e=>{l.processes--,r(e)}))}(e,t,s,n=n||{},i,(function(){R.scheduleTask((function(){i.scene.fire("modelLoaded",i.id),i.fire("loaded",!0,!1)})),a&&a()}),(function(t){e.error(t),r&&r(t),i.fire("error",t)}))}parse(e,t,s,n,i,a,r){oE(e,"",t,s,n=n||{},i,(function(){i.scene.fire("modelLoaded",i.id),i.fire("loaded",!0,!1),a&&a()}))}}function rE(e){const t={},s={},n=e.metaObjects||[],i={};for(let e=0,t=n.length;e{const o={src:t,metaModelCorrections:n?rE(n):null,loadBuffer:i.loadBuffer,basePath:i.basePath,handlenode:i.handlenode,gltfData:s,scene:a.scene,plugin:e,sceneModel:a,numObjects:0,nodes:[],nextId:0,log:t=>{e.log(t)}};!function(e){const t=e.gltfData.textures;if(t)for(let s=0,n=t.length;s0)for(let t=0;t0){null==r&&e.log("Warning: 'name' properties not found on glTF scene nodes - will randomly-generate object IDs in XKT");let t=r;if(e.metaModelCorrections){const s=e.metaModelCorrections.eachChildRoot[t];if(s){const t=e.metaModelCorrections.eachRootStats[s.id];t.countChildren++,t.countChildren>=t.numChildren&&(a.createEntity({id:s.id,meshIds:AE}),AE.length=0)}else{e.metaModelCorrections.metaObjectsMap[t]&&(a.createEntity({id:t,meshIds:AE}),AE.length=0)}}else a.createEntity({id:t,meshIds:AE}),AE.length=0}}function fE(e,t){e.plugin.error(t)}const IE={DEFAULT:{}};function yE(e,t,s={}){const n="lightgrey",i=s.hoverColor||"rgba(0,0,0,0.4)",a=500,r=a+a/3,l=r/24,o=[{boundary:[6,6,6,6],color:s.frontColor||s.color||"#55FF55"},{boundary:[18,6,6,6],color:s.backColor||s.color||"#55FF55"},{boundary:[12,6,6,6],color:s.rightColor||s.color||"#FF5555"},{boundary:[0,6,6,6],color:s.leftColor||s.color||"#FF5555"},{boundary:[6,0,6,6],color:s.topColor||s.color||"#7777FF"},{boundary:[6,12,6,6],color:s.bottomColor||s.color||"#7777FF"}],c=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];s.frontColor||s.color,s.backColor||s.color,s.rightColor||s.color,s.leftColor||s.color,s.topColor||s.color,s.bottomColor||s.color;const u=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let e=0,t=c.length;e=i[0]*l&&t<=(i[0]+i[2])*l&&s>=i[1]*l&&s<=(i[1]+i[3])*l)return n}}return-1},this.setAreaHighlighted=function(e,t){var s=p[e];if(!s)throw"Area not found: "+e;s.highlighted=!!t,f()},this.getAreaDir=function(e){var t=p[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=p[e];if(!t)throw"Unknown area: "+e;return t.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const mE=h.vec3(),vE=h.vec3();h.mat4();const wE=h.vec3();class gE{load(e,t,s={}){var n=e.scene.canvas.spinner;n.processes++,EE(e,t,(function(t){!function(e,t,s){for(var n=t.basePath,i=Object.keys(t.materialLibraries),a=i.length,r=0,l=a;r=0?s-1:s+t/3)}function i(e,t){var s=parseInt(e,10);return 3*(s>=0?s-1:s+t/3)}function a(e,t){var s=parseInt(e,10);return 2*(s>=0?s-1:s+t/2)}function r(e,t,s,n){var i=e.positions,a=e.object.geometry.positions;a.push(i[t+0]),a.push(i[t+1]),a.push(i[t+2]),a.push(i[s+0]),a.push(i[s+1]),a.push(i[s+2]),a.push(i[n+0]),a.push(i[n+1]),a.push(i[n+2])}function l(e,t){var s=e.positions,n=e.object.geometry.positions;n.push(s[t+0]),n.push(s[t+1]),n.push(s[t+2])}function o(e,t,s,n){var i=e.normals,a=e.object.geometry.normals;a.push(i[t+0]),a.push(i[t+1]),a.push(i[t+2]),a.push(i[s+0]),a.push(i[s+1]),a.push(i[s+2]),a.push(i[n+0]),a.push(i[n+1]),a.push(i[n+2])}function c(e,t,s,n){var i=e.uv,a=e.object.geometry.uv;a.push(i[t+0]),a.push(i[t+1]),a.push(i[s+0]),a.push(i[s+1]),a.push(i[n+0]),a.push(i[n+1])}function u(e,t){var s=e.uv,n=e.object.geometry.uv;n.push(s[t+0]),n.push(s[t+1])}function h(e,t,s,l,u,h,p,A,d,f,I,y,m){var v,w=e.positions.length,g=n(t,w),E=n(s,w),T=n(l,w);if(void 0===u?r(e,g,E,T):(r(e,g,E,v=n(u,w)),r(e,E,T,v)),void 0!==h){var b=e.uv.length;g=a(h,b),E=a(p,b),T=a(A,b),void 0===u?c(e,g,E,T):(c(e,g,E,v=a(d,b)),c(e,E,T,v))}if(void 0!==f){var D=e.normals.length;g=i(f,D),E=f===I?g:i(I,D),T=f===y?g:i(y,D),void 0===u?o(e,g,E,T):(o(e,g,E,v=i(m,D)),o(e,E,T,v))}}function p(e,t,s){e.object.geometry.type="Line";for(var i=e.positions.length,r=e.uv.length,o=0,c=t.length;o=0?r.substring(0,l):r).toLowerCase(),c=(c=l>=0?r.substring(l+1):"").trim(),o.toLowerCase()){case"newmtl":s(e,p),p={id:c},A=!0;break;case"ka":p.ambient=n(c);break;case"kd":p.diffuse=n(c);break;case"ks":p.specular=n(c);break;case"map_kd":p.diffuseMap||(p.diffuseMap=t(e,a,c,"sRGB"));break;case"map_ks":p.specularMap||(p.specularMap=t(e,a,c,"linear"));break;case"map_bump":case"bump":p.normalMap||(p.normalMap=t(e,a,c));break;case"ns":p.shininess=parseFloat(c);break;case"d":(u=parseFloat(c))<1&&(p.alpha=u,p.alphaMode="blend");break;case"tr":(u=parseFloat(c))>0&&(p.alpha=1-u,p.alphaMode="blend")}A&&s(e,p)};function t(e,t,s,n){var i={},a=s.split(/\s+/),r=a.indexOf("-bm");return r>=0&&a.splice(r,2),(r=a.indexOf("-s"))>=0&&(i.scale=[parseFloat(a[r+1]),parseFloat(a[r+2])],a.splice(r,4)),(r=a.indexOf("-o"))>=0&&(i.translate=[parseFloat(a[r+1]),parseFloat(a[r+2])],a.splice(r,4)),i.src=t+a.join(" ").trim(),i.flipY=!0,i.encoding=n||"linear",new gn(e,i).id}function s(e,t){new Ht(e,t)}function n(t){var s=t.split(e,3);return[parseFloat(s[0]),parseFloat(s[1]),parseFloat(s[2])]}}();function PE(e,t){for(var s=0,n=t.objects.length;s0&&(r.normals=a.normals),a.uv.length>0&&(r.uv=a.uv);for(var l=new Array(r.positions.length/3),o=0;o{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),j(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=h.vec3PairToQuaternion(CE,e,_E)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,s=.01;this._rootNode=new an(t,{position:[0,0,0],scale:[5,5,5]});const n=this._rootNode,i={arrowHead:new Nt(n,Qs({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new Nt(n,Qs({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new Nt(n,Qs({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new Nt(n,Cn({radius:.8,tube:s,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new Nt(n,Cn({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new Nt(n,Cn({radius:.8,tube:s,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new Nt(n,Qs({radiusTop:s,radiusBottom:s,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new Nt(n,Qs({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},a={pickable:new Ht(n,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Ht(n,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Gt(n,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Ht(n,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Gt(n,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Ht(n,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Gt(n,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Ht(n,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Gt(n,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Gt(n,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:n.addChild(new Vs(n,{geometry:new Nt(n,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new Ht(n,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Gt(n,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1]}),e),planeFrame:n.addChild(new Vs(n,{geometry:new Nt(n,Cn({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ht(n,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Gt(n,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45]}),e),xCurve:n.addChild(new Vs(n,{geometry:i.curve,material:a.red,matrix:function(){const e=h.rotationMat4v(90*h.DEGTORAD,[0,1,0],h.identityMat4()),t=h.rotationMat4v(270*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:n.addChild(new Vs(n,{geometry:i.curveHandle,material:a.pickable,matrix:function(){const e=h.rotationMat4v(90*h.DEGTORAD,[0,1,0],h.identityMat4()),t=h.rotationMat4v(270*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.red,matrix:function(){const e=h.translateMat4c(0,-.07,-.8,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4()),s=h.rotationMat4v(0*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(h.mulMat4(e,t,h.identityMat4()),s,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.red,matrix:function(){const e=h.translateMat4c(0,-.8,-.07,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4()),s=h.rotationMat4v(90*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(h.mulMat4(e,t,h.identityMat4()),s,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:n.addChild(new Vs(n,{geometry:i.curve,material:a.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:n.addChild(new Vs(n,{geometry:i.curveHandle,material:a.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.green,matrix:function(){const e=h.translateMat4c(.07,0,-.8,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4()),s=h.rotationMat4v(90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(h.mulMat4(e,t,h.identityMat4()),s,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.green,matrix:function(){const e=h.translateMat4c(.8,0,-.07,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4()),s=h.rotationMat4v(90*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(h.mulMat4(e,t,h.identityMat4()),s,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:n.addChild(new Vs(n,{geometry:i.curve,material:a.blue,matrix:h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:n.addChild(new Vs(n,{geometry:i.curveHandle,material:a.pickable,matrix:h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.blue,matrix:function(){const e=h.translateMat4c(.8,-.07,0,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4());return h.mulMat4(e,t,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.blue,matrix:function(){const e=h.translateMat4c(.05,-.8,0,h.identityMat4()),t=h.scaleMat4v([.6,.6,.6],h.identityMat4()),s=h.rotationMat4v(90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(h.mulMat4(e,t,h.identityMat4()),s,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:n.addChild(new Vs(n,{geometry:new Nt(n,Ws({radius:.05})),material:a.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.red,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:n.addChild(new Vs(n,{geometry:i.arrowHeadHandle,material:a.pickable,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:n.addChild(new Vs(n,{geometry:i.axis,material:a.red,matrix:function(){const e=h.translateMat4c(0,.5,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:n.addChild(new Vs(n,{geometry:i.axisHandle,material:a.pickable,matrix:function(){const e=h.translateMat4c(0,.5,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.green,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:n.addChild(new Vs(n,{geometry:i.arrowHeadHandle,material:a.pickable,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:n.addChild(new Vs(n,{geometry:i.axis,material:a.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:n.addChild(new Vs(n,{geometry:i.axisHandle,material:a.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.blue,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[.8,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:n.addChild(new Vs(n,{geometry:i.arrowHeadHandle,material:a.pickable,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[.8,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:n.addChild(new Vs(n,{geometry:i.axis,material:a.blue,matrix:function(){const e=h.translateMat4c(0,.5,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:n.addChild(new Vs(n,{geometry:i.axisHandle,material:a.pickable,matrix:function(){const e=h.translateMat4c(0,.5,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:n.addChild(new Vs(n,{geometry:new Nt(n,Cn({center:[0,0,0],radius:2,tube:s,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ht(n,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Gt(n,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45]}),e),xHoop:n.addChild(new Vs(n,{geometry:i.hoop,material:a.red,highlighted:!0,highlightMaterial:a.highlightRed,matrix:function(){const e=h.rotationMat4v(90*h.DEGTORAD,[0,1,0],h.identityMat4()),t=h.rotationMat4v(270*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:n.addChild(new Vs(n,{geometry:i.hoop,material:a.green,highlighted:!0,highlightMaterial:a.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:n.addChild(new Vs(n,{geometry:i.hoop,material:a.blue,highlighted:!0,highlightMaterial:a.highlightBlue,matrix:h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHeadBig,material:a.red,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[0,0,1],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHeadBig,material:a.green,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(180*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHeadBig,material:a.blue,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[.8,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const s=-1,n=0,i=1,a=2,r=3,l=4,o=5,c=this._rootNode;var u=null,p=null;const A=h.vec2(),d=h.vec3([1,0,0]),f=h.vec3([0,1,0]),I=h.vec3([0,0,1]),y=this._viewer.scene.canvas.canvas,m=this._viewer.camera,v=this._viewer.scene;{const e=h.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=v.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=v.camera.on("projMatrix",(()=>{})),this._onSceneTick=v.on("tick",(()=>{const s=Math.abs(h.lenVec3(h.subVec3(v.camera.eye,this._pos,e)));if(s!==t&&"perspective"===m.projection){const e=.07*(Math.tan(m.perspective.fov*h.DEGTORAD)*s);c.scale=[e,e,e],t=s}if("ortho"===m.projection){const e=m.ortho.scale/10;c.scale=[e,e,e],t=s}}))}const w=function(){const e=new Float64Array(2);return function(t){if(t){for(var s=t.target,n=0,i=0;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;e[0]=t.pageX-n,e[1]=t.pageY-i}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),g=function(){const t=h.mat4();return function(s,n){return h.quaternionToMat4(e._rootNode.quaternion,t),h.transformVec3(t,s,n),h.normalizeVec3(n),n}}();var E=function(){const e=h.vec3();return function(t){const s=Math.abs(t[0]);return s>Math.abs(t[1])&&s>Math.abs(t[2])?h.cross3Vec3(t,[0,1,0],e):h.cross3Vec3(t,[1,0,0],e),h.cross3Vec3(e,t,e),h.normalizeVec3(e),e}}();const T=function(){const t=h.vec3(),s=h.vec3(),n=h.vec4();return function(i,a,r){g(i,n);const l=E(n,a,r);D(a,l,t),D(r,l,s),h.subVec3(s,t);const o=h.dotVec3(s,n);e._pos[0]+=n[0]*o,e._pos[1]+=n[1]*o,e._pos[2]+=n[2]*o,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var b=function(){const t=h.vec4(),s=h.vec4(),n=h.vec4(),i=h.vec4();return function(a,r,l){g(a,i);if(!(D(r,i,t)&&D(l,i,s))){const e=E(i,r,l);D(r,e,t,1),D(l,e,s,1);var o=h.dotVec3(t,i);t[0]-=o*i[0],t[1]-=o*i[1],t[2]-=o*i[2],o=h.dotVec3(s,i),s[0]-=o*i[0],s[1]-=o*i[1],s[2]-=o*i[2]}h.normalizeVec3(t),h.normalizeVec3(s),o=h.dotVec3(t,s),o=h.clamp(o,-1,1);var c=Math.acos(o)*h.RADTODEG;h.cross3Vec3(t,s,n),h.dotVec3(n,i)<0&&(c=-c),e._rootNode.rotate(a,c),P()}}(),D=function(){const t=h.vec4([0,0,0,1]),s=h.mat4();return function(n,i,a,r){r=r||0,t[0]=n[0]/y.width*2-1,t[1]=-(n[1]/y.height*2-1),t[2]=0,t[3]=1,h.mulMat4(m.projMatrix,m.viewMatrix,s),h.inverseMat4(s),h.transformVec4(s,t,t),h.mulVec4Scalar(t,1/t[3]);var l=m.eye;h.subVec4(t,l,t);const o=e._sectionPlane.pos;var c=-h.dotVec3(o,i)-r,u=h.dotVec3(i,t);if(Math.abs(u)>.005){var p=-(h.dotVec3(i,l)+c)/u;return h.mulVec3Scalar(t,p,a),h.addVec3(a,l),h.subVec3(a,o,a),!0}return!1}}();const P=function(){const t=h.vec3(),s=h.mat4();return function(){e.sectionPlane&&(h.quaternionToMat4(c.quaternion,s),h.transformVec3(s,[0,0,1],t),e._setSectionPlaneDir(t))}}();var R,C=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(C)return;var c;t=!1,R&&(R.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:c=this._affordanceMeshes.xAxisArrow,u=n;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:c=this._affordanceMeshes.yAxisArrow,u=i;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:c=this._affordanceMeshes.zAxisArrow,u=a;break;case this._displayMeshes.xCurveHandle.id:c=this._affordanceMeshes.xHoop,u=r;break;case this._displayMeshes.yCurveHandle.id:c=this._affordanceMeshes.yHoop,u=l;break;case this._displayMeshes.zCurveHandle.id:c=this._affordanceMeshes.zHoop,u=o;break;default:return void(u=s)}c&&(c.visible=!0),R=c,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(R&&(R.visible=!1),R=null,u=s)})),y.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){C=!0;var s=w(e);p=u,A[0]=s[0],A[1]=s[1]}}),y.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!C)return;var t=w(e);const s=t[0],c=t[1];switch(p){case n:T(d,A,t);break;case i:T(f,A,t);break;case a:T(I,A,t);break;case r:b(d,A,t);break;case l:b(f,A,t);break;case o:b(I,A,t)}A[0]=s,A[1]=c}),y.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,C&&(e.which,C=!1,t=!1))}),y.addEventListener("wheel",this._canvasWheelListener=e=>{if(this._visible)Math.max(-1,Math.min(1,40*-e.deltaY))})}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,s=t.canvas.canvas,n=e.camera,i=e.cameraControl;t.off(this._onSceneTick),s.removeEventListener("mousedown",this._canvasMouseDownListener),s.removeEventListener("mousemove",this._canvasMouseMoveListener),s.removeEventListener("mouseup",this._canvasMouseUpListener),s.removeEventListener("wheel",this._canvasWheelListener),n.off(this._onCameraViewMatrix),n.off(this._onCameraProjMatrix),i.off(this._onCameraControlHover),i.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class OE{constructor(e,t,s){this.id=s.id,this._sectionPlane=s,this._mesh=new Vs(t,{id:s.id,geometry:new Nt(t,xt({xSize:.5,ySize:.5,zSize:.001})),material:new Ht(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Vt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Gt(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Gt(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=h.vec3([0,0,0]),t=h.vec3(),s=h.vec3([0,0,1]),n=h.vec4(4),i=h.vec3(),a=()=>{const a=this._sectionPlane.scene.center,r=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];h.subVec3(a,this._sectionPlane.pos,e);const l=-h.dotVec3(r,e);h.normalizeVec3(r),h.mulVec3Scalar(r,l,t);const o=h.vec3PairToQuaternion(s,this._sectionPlane.dir,n);i[0]=.1*t[0],i[1]=.1*t[1],i[2]=.1*t[2],this._mesh.quaternion=o,this._mesh.position=i};this._onSectionPlanePos=this._sectionPlane.on("pos",a),this._onSectionPlaneDir=this._sectionPlane.on("dir",a)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class SE{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new Jt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new wt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new wt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new wt(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=h.rotationMat4c(-90*h.DEGTORAD,1,0,0),s=h.vec3(),n=h.vec3(),i=h.vec3();this._synchCamera=()=>{const a=this._viewer.camera.eye,r=this._viewer.camera.look,l=this._viewer.camera.up;h.mulVec3Scalar(h.normalizeVec3(h.subVec3(a,r,s)),7),this._zUp?(h.transformVec3(t,s,n),h.transformVec3(t,l,i),e.look=[0,0,0],e.eye=h.transformVec3(t,s,n),e.up=h.transformPoint3(t,l,i)):(e.look=[0,0,0],e.eye=s,e.up=l)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var s=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!s||t.entity.id!==s.id){if(s){this._planes[s.id]&&this._onHoverLeavePlane(s.id)}s=t.entity;this._planes[s.id]&&this._onHoverEnterPlane(s.id)}}else s&&(this._onHoverLeavePlane(s.id),s=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(s){this._planes[s.id]&&this._onClickedPlane(s.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{s&&(this._onHoverLeavePlane(s.id),s=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new OE(this,this._scene,e)}setPlaneHighlighted(e,t){const s=this._planes[e];s&&s.setHighlighted(t)}setPlaneSelected(e,t){const s=this._planes[e];s&&s.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const NE=h.AABB3(),xE=h.vec3();class LE{constructor(e,t,s,n,i,a){this.plugin=e,this.storeyId=i,this.modelId=n,this.storeyAABB=s.slice(),this.aabb=this.storeyAABB,this.modelAABB=t.slice(),this.numObjects=a}}class ME{constructor(e,t,s,n,i,a){this.storeyId=e,this.imageData=t,this.format=s,this.width=n,this.height=i}}const FE=h.vec3(),HE=h.mat4();const UE=new Float64Array([0,0,1]),GE=new Float64Array(4);class jE{constructor(e){this.id=null,this._viewer=e.viewer,this._plugin=e,this._visible=!1,this._pos=h.vec3(),this._origin=h.vec3(),this._rtcPos=h.vec3(),this._baseDir=h.vec3(),this._rootNode=null,this._displayMeshes=null,this._affordanceMeshes=null,this._ignoreNextSectionPlaneDirUpdate=!1,this._createNodes(),this._bindEvents()}_setSectionPlane(e){this._sectionPlane&&(this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._onSectionPlanePos=null,this._onSectionPlaneDir=null,this._sectionPlane=null),e&&(this.id=e.id,this._setPos(e.pos),this._setDir(e.dir),this._sectionPlane=e,this._onSectionPlanePos=e.on("pos",(()=>{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),j(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=h.vec3PairToQuaternion(UE,e,GE)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,s=.01;this._rootNode=new an(t,{position:[0,0,0],scale:[5,5,5]});const n=this._rootNode,i={arrowHead:new Nt(n,Qs({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new Nt(n,Qs({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),axis:new Nt(n,Qs({radiusTop:s,radiusBottom:s,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},a={red:new Ht(n,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),green:new Ht(n,{diffuse:[0,1,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),blue:new Ht(n,{diffuse:[0,0,1],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Gt(n,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6})};this._displayMeshes={plane:n.addChild(new Vs(n,{geometry:new Nt(n,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new Ht(n,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1]}),e),planeFrame:n.addChild(new Vs(n,{geometry:new Nt(n,Cn({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ht(n,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45]}),e),center:n.addChild(new Vs(n,{geometry:new Nt(n,Ws({radius:.05})),material:a.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHead,material:a.blue,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[.8,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zShaft:n.addChild(new Vs(n,{geometry:i.axis,material:a.blue,matrix:function(){const e=h.translateMat4c(0,.5,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[1,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:n.addChild(new Vs(n,{geometry:new Nt(n,Cn({center:[0,0,0],radius:2,tube:s,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ht(n,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Gt(n,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45]}),e),zAxisArrow:n.addChild(new Vs(n,{geometry:i.arrowHeadBig,material:a.blue,matrix:function(){const e=h.translateMat4c(0,1.1,0,h.identityMat4()),t=h.rotationMat4v(-90*h.DEGTORAD,[.8,0,0],h.identityMat4());return h.mulMat4(t,e,h.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this._rootNode,t=h.vec2(),s=this._viewer.camera,n=this._viewer.scene;let i=0,a=!1;{const t=h.vec3([0,0,0]);let r=-1;this._onCameraViewMatrix=n.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=n.camera.on("projMatrix",(()=>{})),this._onSceneTick=n.on("tick",(()=>{a=!1;const o=Math.abs(h.lenVec3(h.subVec3(n.camera.eye,this._pos,t)));if(o!==r&&"perspective"===s.projection){const t=.07*(Math.tan(s.perspective.fov*h.DEGTORAD)*o);e.scale=[t,t,t],r=o}if("ortho"===s.projection){const t=s.ortho.scale/10;e.scale=[t,t,t],r=o}0!==i&&(l(i),i=0)}))}const r=function(){const e=new Float64Array(2);return function(t){if(t){for(var s=t.target,n=0,i=0;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;e[0]=t.pageX-n,e[1]=t.pageY-i}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),l=e=>{const t=this._sectionPlane.pos,s=this._sectionPlane.dir;h.addVec3(t,h.mulVec3Scalar(s,.1*e*this._plugin.getDragSensitivity(),h.vec3())),this._sectionPlane.pos=t};{let e=!1;this._plugin._controlElement.addEventListener("mousedown",this._canvasMouseDownListener=s=>{if(s.preventDefault(),this._visible&&(this._viewer.cameraControl.pointerEnabled=!1,1===s.which)){e=!0;var n=r(s);t[0]=n[0],t[1]=n[1]}}),this._plugin._controlElement.addEventListener("mousemove",this._canvasMouseMoveListener=s=>{if(!this._visible)return;if(!e)return;if(a)return;var n=r(s);const i=n[0],o=n[1];l(o-t[1]),t[0]=i,t[1]=o}),this._plugin._controlElement.addEventListener("mouseup",this._canvasMouseUpListener=t=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,e&&(t.which,e=!1))}),this._plugin._controlElement.addEventListener("wheel",this._canvasWheelListener=e=>{this._visible&&(i+=Math.max(-1,Math.min(1,40*-e.deltaY)))})}{let e,t,s=null;this._plugin._controlElement.addEventListener("touchstart",this._handleTouchStart=t=>{t.stopPropagation(),t.preventDefault(),this._visible&&(e=t.touches[0].clientY,s=e,i=0)}),this._plugin._controlElement.addEventListener("touchmove",this._handleTouchMove=e=>{e.stopPropagation(),e.preventDefault(),this._visible&&(a||(a=!0,t=e.touches[0].clientY,null!==s&&(i+=t-s),s=t))}),this._plugin._controlElement.addEventListener("touchend",this._handleTouchEnd=s=>{s.stopPropagation(),s.preventDefault(),this._visible&&(e=null,t=null,i=0)})}}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,s=t.canvas.canvas,n=e.camera,i=this._plugin._controlElement;t.off(this._onSceneTick),s.removeEventListener("mousedown",this._canvasMouseDownListener),s.removeEventListener("mousemove",this._canvasMouseMoveListener),s.removeEventListener("mouseup",this._canvasMouseUpListener),s.removeEventListener("wheel",this._canvasWheelListener),i.removeEventListener("touchstart",this._handleTouchStart),i.removeEventListener("touchmove",this._handleTouchMove),i.removeEventListener("touchend",this._handleTouchEnd),n.off(this._onCameraViewMatrix),n.off(this._onCameraProjMatrix)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class VE{constructor(e,t,s){this.id=s.id,this._sectionPlane=s,this._mesh=new Vs(t,{id:s.id,geometry:new Nt(t,xt({xSize:.5,ySize:.5,zSize:.001})),material:new Ht(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Vt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Gt(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Gt(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=h.vec3([0,0,0]),t=h.vec3(),s=h.vec3([0,0,1]),n=h.vec4(4),i=h.vec3(),a=()=>{const a=this._sectionPlane.scene.center,r=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];h.subVec3(a,this._sectionPlane.pos,e);const l=-h.dotVec3(r,e);h.normalizeVec3(r),h.mulVec3Scalar(r,l,t);const o=h.vec3PairToQuaternion(s,this._sectionPlane.dir,n);i[0]=.1*t[0],i[1]=.1*t[1],i[2]=.1*t[2],this._mesh.quaternion=o,this._mesh.position=i};this._onSectionPlanePos=this._sectionPlane.on("pos",a),this._onSectionPlaneDir=this._sectionPlane.on("dir",a)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class kE{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new Jt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new wt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new wt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new wt(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=h.rotationMat4c(-90*h.DEGTORAD,1,0,0),s=h.vec3(),n=h.vec3(),i=h.vec3();this._synchCamera=()=>{const a=this._viewer.camera.eye,r=this._viewer.camera.look,l=this._viewer.camera.up;h.mulVec3Scalar(h.normalizeVec3(h.subVec3(a,r,s)),7),this._zUp?(h.transformVec3(t,s,n),h.transformVec3(t,l,i),e.look=[0,0,0],e.eye=h.transformVec3(t,s,n),e.up=h.transformPoint3(t,l,i)):(e.look=[0,0,0],e.eye=s,e.up=l)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var s=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!s||t.entity.id!==s.id){if(s){this._planes[s.id]&&this._onHoverLeavePlane(s.id)}s=t.entity;this._planes[s.id]&&this._onHoverEnterPlane(s.id)}}else s&&(this._onHoverLeavePlane(s.id),s=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(s){this._planes[s.id]&&this._onClickedPlane(s.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{s&&(this._onHoverLeavePlane(s.id),s=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new VE(this,this._scene,e)}setPlaneHighlighted(e,t){const s=this._planes[e];s&&s.setHighlighted(t)}setPlaneSelected(e,t){const s=this._planes[e];s&&s.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const QE=h.AABB3(),WE=h.vec3();class zE{getSTL(e,t,s){const n=new XMLHttpRequest;n.overrideMimeType("application/json"),n.open("GET",e,!0),n.responseType="arraybuffer",n.onreadystatechange=function(){4===n.readyState&&(200===n.status?t(n.response):s(n.statusText))},n.send(null)}}const KE=h.vec3();class YE{load(e,t,s,n,i,a){n=n||{};const r=e.viewer.scene.canvas.spinner;r.processes++,e.dataSource.getSTL(s,(function(s){!function(e,t,s,n){try{const i=eT(s);XE(i)?qE(e,i,t,n):JE(e,$E(s),t,n)}catch(e){t.fire("error",e)}}(e,t,s,n);try{const a=eT(s);XE(a)?qE(e,a,t,n):JE(e,$E(s),t,n),r.processes--,R.scheduleTask((function(){t.fire("loaded",!0,!1)})),i&&i()}catch(s){r.processes--,e.error(s),a&&a(s),t.fire("error",s)}}),(function(s){r.processes--,e.error(s),a&&a(s),t.fire("error",s)}))}parse(e,t,s,n){const i=e.viewer.scene.canvas.spinner;i.processes++;try{const a=eT(s);XE(a)?qE(e,a,t,n):JE(e,$E(s),t,n),i.processes--,R.scheduleTask((function(){t.fire("loaded",!0,!1)}))}catch(e){i.processes--,t.fire("error",e)}}}function XE(e){const t=new DataView(e);if(84+50*t.getUint32(80,!0)===t.byteLength)return!0;const s=[115,111,108,105,100];for(var n=0;n<5;n++)if(s[n]!==t.getUint8(n,!1))return!0;return!1}function qE(e,t,s,n){const i=new DataView(t),a=i.getUint32(80,!0);let r,l,o,c,u,h,p,A=!1,d=null,f=null,I=null,y=!1;for(let e=0;e<70;e++)1129270351===i.getUint32(e,!1)&&82===i.getUint8(e+4)&&61===i.getUint8(e+5)&&(A=!0,c=[],u=i.getUint8(e+6)/255,h=i.getUint8(e+7)/255,p=i.getUint8(e+8)/255,i.getUint8(e+9));const m=new cn(s,{roughness:.5});let v=[],w=[],g=n.splitMeshes;for(let e=0;e>5&31)/31,o=(e>>10&31)/31):(r=u,l=h,o=p),(g&&r!==d||l!==f||o!==I)&&(null!==d&&(y=!0),d=r,f=l,I=o)}for(let e=1;e<=3;e++){let s=t+12*e;v.push(i.getFloat32(s,!0)),v.push(i.getFloat32(s+4,!0)),v.push(i.getFloat32(s+8,!0)),w.push(a,E,T),A&&c.push(r,l,o,1)}g&&y&&(ZE(s,v,w,c,m,n),v=[],w=[],c=c?[]:null,y=!1)}v.length>0&&ZE(s,v,w,c,m,n)}function JE(e,t,s,n){const i=/facet([\s\S]*?)endfacet/g;let a=0;const r=/[\s]+([+-]?(?:\d+.\d+|\d+.|\d+|.\d+)(?:[eE][+-]?\d+)?)/.source,l=new RegExp("vertex"+r+r+r,"g"),o=new RegExp("normal"+r+r+r,"g"),c=[],u=[];let h,p,A,d,f,I,y;for(;null!==(d=i.exec(t));){for(f=0,I=0,y=d[0];null!==(d=o.exec(y));)h=parseFloat(d[1]),p=parseFloat(d[2]),A=parseFloat(d[3]),I++;for(;null!==(d=l.exec(y));)c.push(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3])),u.push(h,p,A),f++;1!==I&&e.error("Error in normal of face "+a),3!==f&&e.error("Error in positions of face "+a),a++}ZE(s,c,u,null,new cn(s,{roughness:.5}),n)}function ZE(e,t,s,n,i,a){const r=new Int32Array(t.length/3);for(let e=0,t=r.length;e0?s:null,n=n&&n.length>0?n:null,a.smoothNormals&&h.faceToVertexNormals(t,s,a);const l=KE;V(t,t,l);const o=new Nt(e,{primitive:"triangles",positions:t,normals:s,colors:n,indices:r}),c=new Vs(e,{origin:0!==l[0]||0!==l[1]||0!==l[2]?l:null,geometry:o,material:i,edges:a.edges});e.addChild(c)}function $E(e){return"string"!=typeof e?function(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let s=0,n=e.length;s{const s=e.models[t];s&&this._addModel(s)})),this._onTick=e.on("tick",(()=>{this._dirty&&this._build(),this._applyChanges()}))}_addModel(e){const t={model:e,onDestroyed:e.on("destroyed",(()=>{this._removeModel(e)}))};this._modelInfos[e.id]=t,this._dirty=!0}_removeModel(e){const t=this._modelInfos[e.id];t&&(t.model.off(t.onDestroyed),delete this._modelInfos[e.id],this._dirty=!0)}_build(){if(!this._dirty)return;this._applyChanges();const e=this._scene.objects;for(let e=0;e0){for(let e=0;e{t(e)}),(function(e){s(e)}))}getMetaModel(e,t,s){m.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getXKT(e,t,s){var n=()=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r=0;)e[t]=0}const s=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),n=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),i=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),a=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r=new Array(576);t(r);const l=new Array(60);t(l);const o=new Array(512);t(o);const c=new Array(256);t(c);const u=new Array(29);t(u);const h=new Array(30);function p(e,t,s,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let A,d,f;function I(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(h);const y=e=>e<256?o[e]:o[256+(e>>>7)],m=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,s)=>{e.bi_valid>16-s?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=s-16):(e.bi_buf|=t<{v(e,s[2*t],s[2*t+1])},g=(e,t)=>{let s=0;do{s|=1&e,e>>>=1,s<<=1}while(--t>0);return s>>>1},E=(e,t,s)=>{const n=new Array(16);let i,a,r=0;for(i=1;i<=15;i++)r=r+s[i-1]<<1,n[i]=r;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=g(n[t]++,t))}},T=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},b=e=>{e.bi_valid>8?m(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},D=(e,t,s,n)=>{const i=2*t,a=2*s;return e[i]{const n=e.heap[s];let i=s<<1;for(;i<=e.heap_len&&(i{let a,r,l,o,p=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+p++],a+=(255&e.pending_buf[e.sym_buf+p++])<<8,r=e.pending_buf[e.sym_buf+p++],0===a?w(e,r,t):(l=c[r],w(e,l+256+1,t),o=s[l],0!==o&&(r-=u[l],v(e,r,o)),a--,l=y(a),w(e,l,i),o=n[l],0!==o&&(a-=h[l],v(e,a,o)))}while(p{const s=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let r,l,o,c=-1;for(e.heap_len=0,e.heap_max=573,r=0;r>1;r>=1;r--)P(e,s,r);o=a;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],P(e,s,1),l=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=l,s[2*o]=s[2*r]+s[2*l],e.depth[o]=(e.depth[r]>=e.depth[l]?e.depth[r]:e.depth[l])+1,s[2*r+1]=s[2*l+1]=o,e.heap[1]=o++,P(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const s=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,r=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,o=t.stat_desc.max_length;let c,u,h,p,A,d,f=0;for(p=0;p<=15;p++)e.bl_count[p]=0;for(s[2*e.heap[e.heap_max]+1]=0,c=e.heap_max+1;c<573;c++)u=e.heap[c],p=s[2*s[2*u+1]+1]+1,p>o&&(p=o,f++),s[2*u+1]=p,u>n||(e.bl_count[p]++,A=0,u>=l&&(A=r[u-l]),d=s[2*u],e.opt_len+=d*(p+A),a&&(e.static_len+=d*(i[2*u+1]+A)));if(0!==f){do{for(p=o-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[o]--,f-=2}while(f>0);for(p=o;0!==p;p--)for(u=e.bl_count[p];0!==u;)h=e.heap[--c],h>n||(s[2*h+1]!==p&&(e.opt_len+=(p-s[2*h+1])*s[2*h],s[2*h+1]=p),u--)}})(e,t),E(s,c,e.bl_count)},_=(e,t,s)=>{let n,i,a=-1,r=t[1],l=0,o=7,c=4;for(0===r&&(o=138,c=3),t[2*(s+1)+1]=65535,n=0;n<=s;n++)i=r,r=t[2*(n+1)+1],++l{let n,i,a=-1,r=t[1],l=0,o=7,c=4;for(0===r&&(o=138,c=3),n=0;n<=s;n++)if(i=r,r=t[2*(n+1)+1],!(++l{v(e,0+(n?1:0),3),b(e),m(e,s),m(e,~s),s&&e.pending_buf.set(e.window.subarray(t,t+s),e.pending),e.pending+=s};var N={_tr_init:e=>{O||((()=>{let e,t,a,I,y;const m=new Array(16);for(a=0,I=0;I<28;I++)for(u[I]=a,e=0;e<1<>=7;I<30;I++)for(h[I]=y<<7,e=0;e<1<{let i,o,c=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,s=4093624447;for(t=0;t<=31;t++,s>>>=1)if(1&s&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),C(e,e.l_desc),C(e,e.d_desc),c=(e=>{let t;for(_(e,e.dyn_ltree,e.l_desc.max_code),_(e,e.dyn_dtree,e.d_desc.max_code),C(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*a[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=s+5,s+4<=i&&-1!==t?S(e,t,s,n):4===e.strategy||o===i?(v(e,2+(n?1:0),3),R(e,r,l)):(v(e,4+(n?1:0),3),((e,t,s,n)=>{let i;for(v(e,t-257,5),v(e,s-1,5),v(e,n-4,4),i=0;i(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=s,0===t?e.dyn_ltree[2*s]++:(e.matches++,t--,e.dyn_ltree[2*(c[s]+256+1)]++,e.dyn_dtree[2*y(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),w(e,256,r),(e=>{16===e.bi_valid?(m(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},x=(e,t,s,n)=>{let i=65535&e|0,a=e>>>16&65535|0,r=0;for(;0!==s;){r=s>2e3?2e3:s,s-=r;do{i=i+t[n++]|0,a=a+i|0}while(--r);i%=65521,a%=65521}return i|a<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var s=0;s<256;s++){e=s;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t})());var M=(e,t,s,n)=>{const i=L,a=n+s;e^=-1;for(let s=n;s>>8^i[255&(e^t[s])];return-1^e},F={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:U,_tr_stored_block:G,_tr_flush_block:j,_tr_tally:V,_tr_align:k}=N,{Z_NO_FLUSH:Q,Z_PARTIAL_FLUSH:W,Z_FULL_FLUSH:z,Z_FINISH:K,Z_BLOCK:Y,Z_OK:X,Z_STREAM_END:q,Z_STREAM_ERROR:J,Z_DATA_ERROR:Z,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:se,Z_RLE:ne,Z_FIXED:ie,Z_DEFAULT_STRATEGY:ae,Z_UNKNOWN:re,Z_DEFLATED:le}=H,oe=258,ce=262,ue=42,he=113,pe=666,Ae=(e,t)=>(e.msg=F[t],t),de=e=>2*e-(e>4?9:0),fe=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ie=e=>{let t,s,n,i=e.w_size;t=e.hash_size,n=t;do{s=e.head[--n],e.head[n]=s>=i?s-i:0}while(--t);t=i,n=t;do{s=e.prev[--n],e.prev[n]=s>=i?s-i:0}while(--t)};let ye=(e,t,s)=>(t<{const t=e.state;let s=t.pending;s>e.avail_out&&(s=e.avail_out),0!==s&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+s),e.next_out),e.next_out+=s,t.pending_out+=s,e.total_out+=s,e.avail_out-=s,t.pending-=s,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{j(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,me(e.strm)},we=(e,t)=>{e.pending_buf[e.pending++]=t},ge=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ee=(e,t,s,n)=>{let i=e.avail_in;return i>n&&(i=n),0===i?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),s),1===e.state.wrap?e.adler=x(e.adler,t,i,s):2===e.state.wrap&&(e.adler=M(e.adler,t,i,s)),e.next_in+=i,e.total_in+=i,i)},Te=(e,t)=>{let s,n,i=e.max_chain_length,a=e.strstart,r=e.prev_length,l=e.nice_match;const o=e.strstart>e.w_size-ce?e.strstart-(e.w_size-ce):0,c=e.window,u=e.w_mask,h=e.prev,p=e.strstart+oe;let A=c[a+r-1],d=c[a+r];e.prev_length>=e.good_match&&(i>>=2),l>e.lookahead&&(l=e.lookahead);do{if(s=t,c[s+r]===d&&c[s+r-1]===A&&c[s]===c[a]&&c[++s]===c[a+1]){a+=2,s++;do{}while(c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&ar){if(e.match_start=t,r=n,n>=l)break;A=c[a+r-1],d=c[a+r]}}}while((t=h[t&u])>o&&0!=--i);return r<=e.lookahead?r:e.lookahead},be=e=>{const t=e.w_size;let s,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ce)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ie(e),n+=t),0===e.strm.avail_in)break;if(s=Ee(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=s,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ye(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ye(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let s,n,i,a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r=0,l=e.strm.avail_in;do{if(s=65535,i=e.bi_valid+42>>3,e.strm.avail_outn+e.strm.avail_in&&(s=n+e.strm.avail_in),s>i&&(s=i),s>8,e.pending_buf[e.pending-2]=~s,e.pending_buf[e.pending-1]=~s>>8,me(e.strm),n&&(n>s&&(n=s),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,s-=n),s&&(Ee(e.strm,e.strm.output,e.strm.next_out,s),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s)}while(0===r);return l-=e.strm.avail_in,l&&(l>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=l&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-l,e.strm.next_in),e.strstart),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.block_start=e.strstart),e.high_wateri&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,i+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),i>e.strm.avail_in&&(i=e.strm.avail_in),i&&(Ee(e.strm,e.window,e.strstart,i),e.strstart+=i,e.insert+=i>e.w_size-e.insert?e.w_size-e.insert:i),e.high_water>3,i=e.pending_buf_size-i>65535?65535:e.pending_buf_size-i,a=i>e.w_size?e.w_size:i,n=e.strstart-e.block_start,(n>=a||(n||t===K)&&t!==Q&&0===e.strm.avail_in&&n<=i)&&(s=n>i?i:n,r=t===K&&0===e.strm.avail_in&&s===n?1:0,G(e,e.block_start,s,r),e.block_start+=s,me(e.strm)),r?3:1)},Pe=(e,t)=>{let s,n;for(;;){if(e.lookahead=3&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==s&&e.strstart-s<=e.w_size-ce&&(e.match_length=Te(e,s)),e.match_length>=3)if(n=V(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ye(e,e.ins_h,e.window[e.strstart+1]);else n=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Re=(e,t)=>{let s,n,i;for(;;){if(e.lookahead=3&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==s&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=V(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=V(e,0,e.window[e.strstart-1]),n&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=V(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ce(e,t,s,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=n,this.func=i}const _e=[new Ce(0,0,0,0,De),new Ce(4,4,8,4,Pe),new Ce(4,5,16,8,Pe),new Ce(4,6,32,32,Pe),new Ce(4,4,16,16,Re),new Ce(8,16,32,32,Re),new Ce(8,16,128,128,Re),new Ce(8,32,128,256,Re),new Ce(32,128,258,1024,Re),new Ce(32,258,258,4096,Re)];function Be(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=le,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),fe(this.dyn_ltree),fe(this.dyn_dtree),fe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),fe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),fe(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Oe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ue&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==he&&t.status!==pe?1:0},Se=e=>{if(Oe(e))return Ae(e,J);e.total_in=e.total_out=0,e.data_type=re;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?ue:he,e.adler=2===t.wrap?0:1,t.last_flush=-2,U(t),X},Ne=e=>{const t=Se(e);var s;return t===X&&((s=e.state).window_size=2*s.w_size,fe(s.head),s.max_lazy_match=_e[s.level].max_lazy,s.good_match=_e[s.level].good_length,s.nice_match=_e[s.level].nice_length,s.max_chain_length=_e[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=2,s.match_available=0,s.ins_h=0),t},xe=(e,t,s,n,i,a)=>{if(!e)return J;let r=1;if(t===ee&&(t=6),n<0?(r=0,n=-n):n>15&&(r=2,n-=16),i<1||i>9||s!==le||n<8||n>15||t<0||t>9||a<0||a>ie||8===n&&1!==r)return Ae(e,J);8===n&&(n=9);const l=new Be;return e.state=l,l.strm=e,l.status=ue,l.wrap=r,l.gzhead=null,l.w_bits=n,l.w_size=1<Oe(e)||2!==e.state.wrap?J:(e.state.gzhead=t,X),Fe=(e,t)=>{if(Oe(e)||t>Y||t<0)return e?Ae(e,J):J;const s=e.state;if(!e.output||0!==e.avail_in&&!e.input||s.status===pe&&t!==K)return Ae(e,0===e.avail_out?$:J);const n=s.last_flush;if(s.last_flush=t,0!==s.pending){if(me(e),0===e.avail_out)return s.last_flush=-1,X}else if(0===e.avail_in&&de(t)<=de(n)&&t!==K)return Ae(e,$);if(s.status===pe&&0!==e.avail_in)return Ae(e,$);if(s.status===ue&&0===s.wrap&&(s.status=he),s.status===ue){let t=le+(s.w_bits-8<<4)<<8,n=-1;if(n=s.strategy>=se||s.level<2?0:s.level<6?1:6===s.level?2:3,t|=n<<6,0!==s.strstart&&(t|=32),t+=31-t%31,ge(s,t),0!==s.strstart&&(ge(s,e.adler>>>16),ge(s,65535&e.adler)),e.adler=1,s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X}if(57===s.status)if(e.adler=0,we(s,31),we(s,139),we(s,8),s.gzhead)we(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),we(s,255&s.gzhead.time),we(s,s.gzhead.time>>8&255),we(s,s.gzhead.time>>16&255),we(s,s.gzhead.time>>24&255),we(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),we(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(we(s,255&s.gzhead.extra.length),we(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=M(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69;else if(we(s,0),we(s,0),we(s,0),we(s,0),we(s,0),we(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),we(s,3),s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X;if(69===s.status){if(s.gzhead.extra){let t=s.pending,n=(65535&s.gzhead.extra.length)-s.gzindex;for(;s.pending+n>s.pending_buf_size;){let i=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+i),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>t&&(e.adler=M(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex+=i,me(e),0!==s.pending)return s.last_flush=-1,X;t=0,n-=i}let i=new Uint8Array(s.gzhead.extra);s.pending_buf.set(i.subarray(s.gzindex,s.gzindex+n),s.pending),s.pending+=n,s.gzhead.hcrc&&s.pending>t&&(e.adler=M(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex=0}s.status=73}if(73===s.status){if(s.gzhead.name){let t,n=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),me(e),0!==s.pending)return s.last_flush=-1,X;n=0}t=s.gzindexn&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),s.gzindex=0}s.status=91}if(91===s.status){if(s.gzhead.comment){let t,n=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),me(e),0!==s.pending)return s.last_flush=-1,X;n=0}t=s.gzindexn&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n))}s.status=103}if(103===s.status){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(me(e),0!==s.pending))return s.last_flush=-1,X;we(s,255&e.adler),we(s,e.adler>>8&255),e.adler=0}if(s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X}if(0!==e.avail_in||0!==s.lookahead||t!==Q&&s.status!==pe){let n=0===s.level?De(s,t):s.strategy===se?((e,t)=>{let s;for(;;){if(0===e.lookahead&&(be(e),0===e.lookahead)){if(t===Q)return 1;break}if(e.match_length=0,s=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(s,t):s.strategy===ne?((e,t)=>{let s,n,i,a;const r=e.window;for(;;){if(e.lookahead<=oe){if(be(e),e.lookahead<=oe&&t===Q)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,n=r[i],n===r[++i]&&n===r[++i]&&n===r[++i])){a=e.strstart+oe;do{}while(n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(s=V(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(s=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(s,t):_e[s.level].func(s,t);if(3!==n&&4!==n||(s.status=pe),1===n||3===n)return 0===e.avail_out&&(s.last_flush=-1),X;if(2===n&&(t===W?k(s):t!==Y&&(G(s,0,0,!1),t===z&&(fe(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),me(e),0===e.avail_out))return s.last_flush=-1,X}return t!==K?X:s.wrap<=0?q:(2===s.wrap?(we(s,255&e.adler),we(s,e.adler>>8&255),we(s,e.adler>>16&255),we(s,e.adler>>24&255),we(s,255&e.total_in),we(s,e.total_in>>8&255),we(s,e.total_in>>16&255),we(s,e.total_in>>24&255)):(ge(s,e.adler>>>16),ge(s,65535&e.adler)),me(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?X:q)},He=e=>{if(Oe(e))return J;const t=e.state.status;return e.state=null,t===he?Ae(e,Z):X},Ue=(e,t)=>{let s=t.length;if(Oe(e))return J;const n=e.state,i=n.wrap;if(2===i||1===i&&n.status!==ue||n.lookahead)return J;if(1===i&&(e.adler=x(e.adler,t,s,0)),n.wrap=0,s>=n.w_size){0===i&&(fe(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(s-n.w_size,s),0),t=e,s=n.w_size}const a=e.avail_in,r=e.next_in,l=e.input;for(e.avail_in=s,e.next_in=0,e.input=t,be(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=ye(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,be(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=r,e.input=l,e.avail_in=a,n.wrap=i,X};const Ge=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var je=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const s=t.shift();if(s){if("object"!=typeof s)throw new TypeError(s+"must be non-object");for(const t in s)Ge(s,t)&&(e[t]=s[t])}}return e},Ve=e=>{let t=0;for(let s=0,n=e.length;s=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Qe[254]=Qe[254]=1;var We=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,s,n,i,a,r=e.length,l=0;for(i=0;i>>6,t[a++]=128|63&s):s<65536?(t[a++]=224|s>>>12,t[a++]=128|s>>>6&63,t[a++]=128|63&s):(t[a++]=240|s>>>18,t[a++]=128|s>>>12&63,t[a++]=128|s>>>6&63,t[a++]=128|63&s);return t},ze=(e,t)=>{const s=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,i;const a=new Array(2*s);for(i=0,n=0;n4)a[i++]=65533,n+=r-1;else{for(t&=2===r?31:3===r?15:7;r>1&&n1?a[i++]=65533:t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&ke)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let s="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let s=t-1;for(;s>=0&&128==(192&e[s]);)s--;return s<0||0===s?t:s+Qe[e[s]]>t?s:t},Ye=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Xe=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Je,Z_FULL_FLUSH:Ze,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:st,Z_DEFAULT_STRATEGY:nt,Z_DEFLATED:it}=H;function at(e){this.options=je({level:st,method:it,chunkSize:16384,windowBits:15,memLevel:8,strategy:nt},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ye,this.strm.avail_out=0;let s=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==et)throw new Error(F[s]);if(t.header&&Me(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?We(t.dictionary):"[object ArrayBuffer]"===Xe.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,s=Ue(this.strm,e),s!==et)throw new Error(F[s]);this._dict_set=!0}}function rt(e,t){const s=new at(t);if(s.push(e,!0),s.err)throw s.msg||F[s.err];return s.result}at.prototype.push=function(e,t){const s=this.strm,n=this.options.chunkSize;let i,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?$e:qe,"string"==typeof e?s.input=We(e):"[object ArrayBuffer]"===Xe.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;)if(0===s.avail_out&&(s.output=new Uint8Array(n),s.next_out=0,s.avail_out=n),(a===Je||a===Ze)&&s.avail_out<=6)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else{if(i=Fe(s,a),i===tt)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),i=He(this.strm),this.onEnd(i),this.ended=!0,i===et;if(0!==s.avail_out){if(a>0&&s.next_out>0)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else if(0===s.avail_in)break}else this.onData(s.output)}return!0},at.prototype.onData=function(e){this.chunks.push(e)},at.prototype.onEnd=function(e){e===et&&(this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var lt={Deflate:at,deflate:rt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,rt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,rt(e,t)},constants:H};const ot=16209;var ct=function(e,t){let s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b,D;const P=e.state;s=e.next_in,b=e.input,n=s+(e.avail_in-5),i=e.next_out,D=e.output,a=i-(t-e.avail_out),r=i+(e.avail_out-257),l=P.dmax,o=P.wsize,c=P.whave,u=P.wnext,h=P.window,p=P.hold,A=P.bits,d=P.lencode,f=P.distcode,I=(1<>>24,p>>>=v,A-=v,v=m>>>16&255,0===v)D[i++]=65535&m;else{if(!(16&v)){if(0==(64&v)){m=d[(65535&m)+(p&(1<>>=v,A-=v),A<15&&(p+=b[s++]<>>24,p>>>=v,A-=v,v=m>>>16&255,!(16&v)){if(0==(64&v)){m=f[(65535&m)+(p&(1<l){e.msg="invalid distance too far back",P.mode=ot;break e}if(p>>>=v,A-=v,v=i-a,g>v){if(v=g-v,v>c&&P.sane){e.msg="invalid distance too far back",P.mode=ot;break e}if(E=0,T=h,0===u){if(E+=o-v,v2;)D[i++]=T[E++],D[i++]=T[E++],D[i++]=T[E++],w-=3;w&&(D[i++]=T[E++],w>1&&(D[i++]=T[E++]))}else{E=i-g;do{D[i++]=D[E++],D[i++]=D[E++],D[i++]=D[E++],w-=3}while(w>2);w&&(D[i++]=D[E++],w>1&&(D[i++]=D[E++]))}break}}break}}while(s>3,s-=w,A-=w<<3,p&=(1<{const o=l.bits;let c,u,h,p,A,d,f=0,I=0,y=0,m=0,v=0,w=0,g=0,E=0,T=0,b=0,D=null;const P=new Uint16Array(16),R=new Uint16Array(16);let C,_,B,O=null;for(f=0;f<=15;f++)P[f]=0;for(I=0;I=1&&0===P[m];m--);if(v>m&&(v=m),0===m)return i[a++]=20971520,i[a++]=20971520,l.bits=1,0;for(y=1;y0&&(0===e||1!==m))return-1;for(R[1]=0,f=1;f<15;f++)R[f+1]=R[f]+P[f];for(I=0;I852||2===e&&T>592)return 1;for(;;){C=f-g,r[I]+1=d?(_=O[r[I]-d],B=D[r[I]-d]):(_=96,B=0),c=1<>g)+u]=C<<24|_<<16|B|0}while(0!==u);for(c=1<>=1;if(0!==c?(b&=c-1,b+=c):b=0,I++,0==--P[f]){if(f===m)break;f=t[s+r[I]]}if(f>v&&(b&p)!==h){for(0===g&&(g=v),A+=y,w=f-g,E=1<852||2===e&&T>592)return 1;h=b&p,i[h]=v<<24|w<<16|A-a|0}}return 0!==b&&(i[A+b]=f-g<<24|64<<16|0),l.bits=v,0};const{Z_FINISH:ft,Z_BLOCK:It,Z_TREES:yt,Z_OK:mt,Z_STREAM_END:vt,Z_NEED_DICT:wt,Z_STREAM_ERROR:gt,Z_DATA_ERROR:Et,Z_MEM_ERROR:Tt,Z_BUF_ERROR:bt,Z_DEFLATED:Dt}=H,Pt=16180,Rt=16190,Ct=16191,_t=16192,Bt=16194,Ot=16199,St=16200,Nt=16206,xt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Mt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ft=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ht=e=>{if(Ft(e))return gt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Pt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,mt},Ut=e=>{if(Ft(e))return gt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ht(e)},Gt=(e,t)=>{let s;if(Ft(e))return gt;const n=e.state;return t<0?(s=0,t=-t):(s=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?gt:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=s,n.wbits=t,Ut(e))},jt=(e,t)=>{if(!e)return gt;const s=new Mt;e.state=s,s.strm=e,s.window=null,s.mode=Pt;const n=Gt(e,t);return n!==mt&&(e.state=null),n};let Vt,kt,Qt=!0;const Wt=e=>{if(Qt){Vt=new Int32Array(512),kt=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(dt(1,e.lens,0,288,Vt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dt(2,e.lens,0,32,kt,0,e.work,{bits:5}),Qt=!1}e.lencode=Vt,e.lenbits=9,e.distcode=kt,e.distbits=5},zt=(e,t,s,n)=>{let i;const a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(s-a.wsize,s),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),a.window.set(t.subarray(s-n,s-n+i),a.wnext),(n-=i)?(a.window.set(t.subarray(s-n,s),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave{let s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b=0;const D=new Uint8Array(4);let P,R;const C=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ft(e)||!e.output||!e.input&&0!==e.avail_in)return gt;s=e.state,s.mode===Ct&&(s.mode=_t),r=e.next_out,i=e.output,o=e.avail_out,a=e.next_in,n=e.input,l=e.avail_in,c=s.hold,u=s.bits,h=l,p=o,T=mt;e:for(;;)switch(s.mode){case Pt:if(0===s.wrap){s.mode=_t;break}for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>>8&255,s.check=M(s.check,D,2,0),c=0,u=0,s.mode=16181;break}if(s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",s.mode=xt;break}if((15&c)!==Dt){e.msg="unknown compression method",s.mode=xt;break}if(c>>>=4,u-=4,E=8+(15&c),0===s.wbits&&(s.wbits=E),E>15||E>s.wbits){e.msg="invalid window size",s.mode=xt;break}s.dmax=1<>8&1),512&s.flags&&4&s.wrap&&(D[0]=255&c,D[1]=c>>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0,s.mode=16182;case 16182:for(;u<32;){if(0===l)break e;l--,c+=n[a++]<>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,s.check=M(s.check,D,4,0)),c=0,u=0,s.mode=16183;case 16183:for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>8),512&s.flags&&4&s.wrap&&(D[0]=255&c,D[1]=c>>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0,s.mode=16184;case 16184:if(1024&s.flags){for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0}else s.head&&(s.head.extra=null);s.mode=16185;case 16185:if(1024&s.flags&&(A=s.length,A>l&&(A=l),A&&(s.head&&(E=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(n.subarray(a,a+A),E)),512&s.flags&&4&s.wrap&&(s.check=M(s.check,n,A,a)),l-=A,a+=A,s.length-=A),s.length))break e;s.length=0,s.mode=16186;case 16186:if(2048&s.flags){if(0===l)break e;A=0;do{E=n[a+A++],s.head&&E&&s.length<65536&&(s.head.name+=String.fromCharCode(E))}while(E&&A>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=Ct;break;case 16189:for(;u<32;){if(0===l)break e;l--,c+=n[a++]<>>=7&u,u-=7&u,s.mode=Nt;break}for(;u<3;){if(0===l)break e;l--,c+=n[a++]<>>=1,u-=1,3&c){case 0:s.mode=16193;break;case 1:if(Wt(s),s.mode=Ot,t===yt){c>>>=2,u-=2;break e}break;case 2:s.mode=16196;break;case 3:e.msg="invalid block type",s.mode=xt}c>>>=2,u-=2;break;case 16193:for(c>>>=7&u,u-=7&u;u<32;){if(0===l)break e;l--,c+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",s.mode=xt;break}if(s.length=65535&c,c=0,u=0,s.mode=Bt,t===yt)break e;case Bt:s.mode=16195;case 16195:if(A=s.length,A){if(A>l&&(A=l),A>o&&(A=o),0===A)break e;i.set(n.subarray(a,a+A),r),l-=A,a+=A,o-=A,r+=A,s.length-=A;break}s.mode=Ct;break;case 16196:for(;u<14;){if(0===l)break e;l--,c+=n[a++]<>>=5,u-=5,s.ndist=1+(31&c),c>>>=5,u-=5,s.ncode=4+(15&c),c>>>=4,u-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=xt;break}s.have=0,s.mode=16197;case 16197:for(;s.have>>=3,u-=3}for(;s.have<19;)s.lens[C[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,P={bits:s.lenbits},T=dt(0,s.lens,0,19,s.lencode,0,s.work,P),s.lenbits=P.bits,T){e.msg="invalid code lengths set",s.mode=xt;break}s.have=0,s.mode=16198;case 16198:for(;s.have>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=I,u-=I,s.lens[s.have++]=m;else{if(16===m){for(R=I+2;u>>=I,u-=I,0===s.have){e.msg="invalid bit length repeat",s.mode=xt;break}E=s.lens[s.have-1],A=3+(3&c),c>>>=2,u-=2}else if(17===m){for(R=I+3;u>>=I,u-=I,E=0,A=3+(7&c),c>>>=3,u-=3}else{for(R=I+7;u>>=I,u-=I,E=0,A=11+(127&c),c>>>=7,u-=7}if(s.have+A>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=xt;break}for(;A--;)s.lens[s.have++]=E}}if(s.mode===xt)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=xt;break}if(s.lenbits=9,P={bits:s.lenbits},T=dt(1,s.lens,0,s.nlen,s.lencode,0,s.work,P),s.lenbits=P.bits,T){e.msg="invalid literal/lengths set",s.mode=xt;break}if(s.distbits=6,s.distcode=s.distdyn,P={bits:s.distbits},T=dt(2,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,P),s.distbits=P.bits,T){e.msg="invalid distances set",s.mode=xt;break}if(s.mode=Ot,t===yt)break e;case Ot:s.mode=St;case St:if(l>=6&&o>=258){e.next_out=r,e.avail_out=o,e.next_in=a,e.avail_in=l,s.hold=c,s.bits=u,ct(e,p),r=e.next_out,i=e.output,o=e.avail_out,a=e.next_in,n=e.input,l=e.avail_in,c=s.hold,u=s.bits,s.mode===Ct&&(s.back=-1);break}for(s.back=0;b=s.lencode[c&(1<>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>v)],I=b>>>24,y=b>>>16&255,m=65535&b,!(v+I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=v,u-=v,s.back+=v}if(c>>>=I,u-=I,s.back+=I,s.length=m,0===y){s.mode=16205;break}if(32&y){s.back=-1,s.mode=Ct;break}if(64&y){e.msg="invalid literal/length code",s.mode=xt;break}s.extra=15&y,s.mode=16201;case 16201:if(s.extra){for(R=s.extra;u>>=s.extra,u-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=16202;case 16202:for(;b=s.distcode[c&(1<>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>v)],I=b>>>24,y=b>>>16&255,m=65535&b,!(v+I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=v,u-=v,s.back+=v}if(c>>>=I,u-=I,s.back+=I,64&y){e.msg="invalid distance code",s.mode=xt;break}s.offset=m,s.extra=15&y,s.mode=16203;case 16203:if(s.extra){for(R=s.extra;u>>=s.extra,u-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=xt;break}s.mode=16204;case 16204:if(0===o)break e;if(A=p-o,s.offset>A){if(A=s.offset-A,A>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=xt;break}A>s.wnext?(A-=s.wnext,d=s.wsize-A):d=s.wnext-A,A>s.length&&(A=s.length),f=s.window}else f=i,d=r-s.offset,A=s.length;A>o&&(A=o),o-=A,s.length-=A;do{i[r++]=f[d++]}while(--A);0===s.length&&(s.mode=St);break;case 16205:if(0===o)break e;i[r++]=s.length,o--,s.mode=St;break;case Nt:if(s.wrap){for(;u<32;){if(0===l)break e;l--,c|=n[a++]<{if(Ft(e))return gt;let t=e.state;return t.window&&(t.window=null),e.state=null,mt},Jt=(e,t)=>{if(Ft(e))return gt;const s=e.state;return 0==(2&s.wrap)?gt:(s.head=t,t.done=!1,mt)},Zt=(e,t)=>{const s=t.length;let n,i,a;return Ft(e)?gt:(n=e.state,0!==n.wrap&&n.mode!==Rt?gt:n.mode===Rt&&(i=1,i=x(i,t,s,0),i!==n.check)?Et:(a=zt(e,t,s,s),a?(n.mode=16210,Tt):(n.havedict=1,mt)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const es=Object.prototype.toString,{Z_NO_FLUSH:ts,Z_FINISH:ss,Z_OK:ns,Z_STREAM_END:is,Z_NEED_DICT:as,Z_STREAM_ERROR:rs,Z_DATA_ERROR:ls,Z_MEM_ERROR:os}=H;function cs(e){this.options=je({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ye,this.strm.avail_out=0;let s=Yt(this.strm,t.windowBits);if(s!==ns)throw new Error(F[s]);if(this.header=new $t,Jt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=We(t.dictionary):"[object ArrayBuffer]"===es.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(s=Zt(this.strm,t.dictionary),s!==ns)))throw new Error(F[s])}function us(e,t){const s=new cs(t);if(s.push(e),s.err)throw s.msg||F[s.err];return s.result}cs.prototype.push=function(e,t){const s=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let a,r,l;if(this.ended)return!1;for(r=t===~~t?t:!0===t?ss:ts,"[object ArrayBuffer]"===es.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;){for(0===s.avail_out&&(s.output=new Uint8Array(n),s.next_out=0,s.avail_out=n),a=Xt(s,r),a===as&&i&&(a=Zt(s,i),a===ns?a=Xt(s,r):a===ls&&(a=as));s.avail_in>0&&a===is&&s.state.wrap>0&&0!==e[s.next_in];)Kt(s),a=Xt(s,r);switch(a){case rs:case ls:case as:case os:return this.onEnd(a),this.ended=!0,!1}if(l=s.avail_out,s.next_out&&(0===s.avail_out||a===is))if("string"===this.options.to){let e=Ke(s.output,s.next_out),t=s.next_out-e,i=ze(s.output,e);s.next_out=t,s.avail_out=n-t,t&&s.output.set(s.output.subarray(e,e+t),0),this.onData(i)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(a!==ns||0!==l){if(a===is)return a=qt(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===s.avail_in)break}}return!0},cs.prototype.onData=function(e){this.chunks.push(e)},cs.prototype.onEnd=function(e){e===ns&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var hs={Inflate:cs,inflate:us,inflateRaw:function(e,t){return(t=t||{}).raw=!0,us(e,t)},ungzip:us,constants:H};const{Deflate:ps,deflate:As,deflateRaw:ds,gzip:fs}=lt,{Inflate:Is,inflate:ys,inflateRaw:ms,ungzip:vs}=hs;var ws=ps,gs=As,Es=ds,Ts=fs,bs=Is,Ds=ys,Ps=ms,Rs=vs,Cs=H,_s={Deflate:ws,deflate:gs,deflateRaw:Es,gzip:Ts,Inflate:bs,inflate:Ds,inflateRaw:Ps,ungzip:Rs,constants:Cs};e.Deflate=ws,e.Inflate=bs,e.constants=Cs,e.default=_s,e.deflate=gs,e.deflateRaw=Es,e.gzip=Ts,e.inflate=Ds,e.inflateRaw=Ps,e.ungzip=Rs,Object.defineProperty(e,"__esModule",{value:!0})}));var rT=Object.freeze({__proto__:null});let lT=window.pako||rT;lT.inflate||(lT=lT.default);const oT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const cT={version:1,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(s),l=function(e){return{positions:new Uint16Array(lT.inflate(e.positions).buffer),normals:new Int8Array(lT.inflate(e.normals).buffer),indices:new Uint32Array(lT.inflate(e.indices).buffer),edgeIndices:new Uint32Array(lT.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(lT.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(lT.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(lT.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(lT.inflate(e.meshColors).buffer),entityIDs:lT.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(lT.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(lT.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(lT.inflate(e.positionsDecodeMatrix).buffer)}}(r);!function(e,t,s,n,i,a){a.getNextId(),n.positionsCompression="precompressed",n.normalsCompression="precompressed";const r=s.positions,l=s.normals,o=s.indices,c=s.edgeIndices,u=s.meshPositions,p=s.meshIndices,A=s.meshEdgesIndices,d=s.meshColors,f=JSON.parse(s.entityIDs),I=s.entityMeshes,y=s.entityIsObjects,v=u.length,w=I.length;for(let i=0;iI[e]I[t]?1:0));for(let e=0;e1||(C[s]=e)}}for(let e=0;e1,a=yT(y.subarray(4*t,4*t+3)),p=y[4*t+3]/255,v=l.subarray(A[t],s?l.length:A[t+1]),g=o.subarray(A[t],s?o.length:A[t+1]),E=c.subarray(d[t],s?c.length:d[t+1]),b=u.subarray(f[t],s?u.length:f[t+1]),R=h.subarray(I[t],I[t]+16);if(i){const e=`${r}-geometry.${t}`;n.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:g,indices:E,edgeIndices:b,positionsDecodeMatrix:R})}else{const e=`${r}-${t}`;w[C[t]];const s={};n.createMesh(m.apply(s,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:g,indices:E,edgeIndices:b,positionsDecodeMatrix:R,color:a,opacity:p}))}}let _=0;for(let e=0;e1){const t={},i=`${r}-instance.${_++}`,a=`${r}-geometry.${s}`,l=16*E[e],c=p.subarray(l,l+16);n.createMesh(m.apply(t,{id:i,geometryId:a,matrix:c})),o.push(i)}else o.push(s)}if(o.length>0){const e={};n.createEntity(m.apply(e,{id:i,isObject:!0,meshIds:o}))}}}(0,0,l,n,0,a)}};let vT=window.pako||rT;vT.inflate||(vT=vT.default);const wT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const gT={version:5,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(s),l=function(e){return{positions:new Float32Array(vT.inflate(e.positions).buffer),normals:new Int8Array(vT.inflate(e.normals).buffer),indices:new Uint32Array(vT.inflate(e.indices).buffer),edgeIndices:new Uint32Array(vT.inflate(e.edgeIndices).buffer),matrices:new Float32Array(vT.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(vT.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(vT.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(vT.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(vT.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(vT.inflate(e.primitiveInstances).buffer),eachEntityId:vT.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(vT.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(vT.inflate(e.eachEntityMatricesPortion).buffer)}}(r);!function(e,t,s,n,i,a){const r=a.getNextId();n.positionsCompression="disabled",n.normalsCompression="precompressed";const l=s.positions,o=s.normals,c=s.indices,u=s.edgeIndices,h=s.matrices,p=s.eachPrimitivePositionsAndNormalsPortion,A=s.eachPrimitiveIndicesPortion,d=s.eachPrimitiveEdgeIndicesPortion,f=s.eachPrimitiveColor,I=s.primitiveInstances,y=JSON.parse(s.eachEntityId),v=s.eachEntityPrimitiveInstancesPortion,w=s.eachEntityMatricesPortion,g=p.length,E=I.length,T=new Uint8Array(g),b=y.length;for(let e=0;e1||(D[s]=e)}}for(let e=0;e1,i=wT(f.subarray(4*e,4*e+3)),a=f[4*e+3]/255,h=l.subarray(p[e],t?l.length:p[e+1]),I=o.subarray(p[e],t?o.length:p[e+1]),v=c.subarray(A[e],t?c.length:A[e+1]),w=u.subarray(d[e],t?u.length:d[e+1]);if(s){const t=`${r}-geometry.${e}`;n.createGeometry({id:t,primitive:"triangles",positionsCompressed:h,normalsCompressed:I,indices:v,edgeIndices:w})}else{const t=e;y[D[e]];const s={};n.createMesh(m.apply(s,{id:t,primitive:"triangles",positionsCompressed:h,normalsCompressed:I,indices:v,edgeIndices:w,color:i,opacity:a}))}}let P=0;for(let e=0;e1){const t={},i="instance."+P++,a="geometry"+s,r=16*w[e],o=h.subarray(r,r+16);n.createMesh(m.apply(t,{id:i,geometryId:a,matrix:o})),l.push(i)}else l.push(s)}if(l.length>0){const e={};n.createEntity(m.apply(e,{id:i,isObject:!0,meshIds:l}))}}}(0,0,l,n,0,a)}};let ET=window.pako||rT;ET.inflate||(ET=ET.default);const TT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const bT={version:6,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(s),l=function(e){function t(e,t){return 0===e.length?[]:ET.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:ET.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(r);!function(e,t,s,n,i,a){const r=a.getNextId(),l=s.positions,o=s.normals,c=s.indices,u=s.edgeIndices,p=s.matrices,A=s.reusedPrimitivesDecodeMatrix,d=s.eachPrimitivePositionsAndNormalsPortion,f=s.eachPrimitiveIndicesPortion,I=s.eachPrimitiveEdgeIndicesPortion,y=s.eachPrimitiveColorAndOpacity,v=s.primitiveInstances,w=JSON.parse(s.eachEntityId),g=s.eachEntityPrimitiveInstancesPortion,E=s.eachEntityMatricesPortion,T=s.eachTileAABB,b=s.eachTileEntitiesPortion,D=d.length,P=v.length,R=w.length,C=b.length,_=new Uint32Array(D);for(let e=0;e1,h=t===D-1,p=l.subarray(d[t],h?l.length:d[t+1]),w=o.subarray(d[t],h?o.length:d[t+1]),g=c.subarray(f[t],h?c.length:f[t+1]),E=u.subarray(I[t],h?u.length:I[t+1]),T=TT(y.subarray(4*t,4*t+3)),b=y[4*t+3]/255,P=a.getNextId();if(i){const e=`${r}-geometry.${s}.${t}`;M[e]||(n.createGeometry({id:e,primitive:"triangles",positionsCompressed:p,indices:g,edgeIndices:E,positionsDecodeMatrix:A}),M[e]=!0),n.createMesh(m.apply(U,{id:P,geometryId:e,origin:B,matrix:C,color:T,opacity:b})),x.push(P)}else n.createMesh(m.apply(U,{id:P,origin:B,primitive:"triangles",positionsCompressed:p,normalsCompressed:w,indices:g,edgeIndices:E,positionsDecodeMatrix:L,color:T,opacity:b})),x.push(P)}x.length>0&&n.createEntity(m.apply(H,{id:b,isObject:!0,meshIds:x}))}}}(e,t,l,n,0,a)}};let DT=window.pako||rT;DT.inflate||(DT=DT.default);const PT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function RT(e){const t=[];for(let s=0,n=e.length;s1,h=t===_-1,D=PT(b.subarray(6*e,6*e+3)),P=b[6*e+3]/255,R=b[6*e+4]/255,C=b[6*e+5]/255,B=a.getNextId();if(i){const i=T[e],a=A.slice(i,i+16),E=`${r}-geometry.${s}.${t}`;if(!G[E]){let e,s,i,a,r,A;switch(f[t]){case 0:e="solid",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 1:e="surface",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 2:e="points",s=l.subarray(I[t],h?l.length:I[t+1]),a=RT(c.subarray(v[t],h?c.length:v[t+1]));break;case 3:e="lines",s=l.subarray(I[t],h?l.length:I[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]);break;default:continue}n.createGeometry({id:E,primitive:e,positionsCompressed:s,normalsCompressed:i,colors:a,indices:r,edgeIndices:A,positionsDecodeMatrix:d}),G[E]=!0}n.createMesh(m.apply(j,{id:B,geometryId:E,origin:x,matrix:a,color:D,metallic:R,roughness:C,opacity:P})),M.push(B)}else{let e,s,i,a,r,A;switch(f[t]){case 0:e="solid",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 1:e="surface",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 2:e="points",s=l.subarray(I[t],h?l.length:I[t+1]),a=RT(c.subarray(v[t],h?c.length:v[t+1]));break;case 3:e="lines",s=l.subarray(I[t],h?l.length:I[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]);break;default:continue}n.createMesh(m.apply(j,{id:B,origin:x,primitive:e,positionsCompressed:s,normalsCompressed:i,colors:a,indices:r,edgeIndices:A,positionsDecodeMatrix:U,color:D,metallic:R,roughness:C,opacity:P})),M.push(B)}}M.length>0&&n.createEntity(m.apply(H,{id:C,isObject:!0,meshIds:M}))}}}(e,t,l,n,0,a)}};let _T=window.pako||rT;_T.inflate||(_T=_T.default);const BT=h.vec4(),OT=h.vec4();const ST=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function NT(e){const t=[];for(let s=0,n=e.length;s1,o=i===L-1,c=ST(_.subarray(6*e,6*e+3)),u=_[6*e+3]/255,p=_[6*e+4]/255,B=_[6*e+5]/255,O=a.getNextId();if(l){const a=C[e],l=v.slice(a,a+16),R=`${r}-geometry.${s}.${i}`;let _=V[R];if(!_){_={batchThisMesh:!t.reuseGeometries};let e=!1;switch(g[i]){case 0:_.primitiveName="solid",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryNormals=d.subarray(T[i],o?d.length:T[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),_.geometryEdgeIndices=y.subarray(P[i],o?y.length:P[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 1:_.primitiveName="surface",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryNormals=d.subarray(T[i],o?d.length:T[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),_.geometryEdgeIndices=y.subarray(P[i],o?y.length:P[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 2:_.primitiveName="points",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryColors=NT(f.subarray(b[i],o?f.length:b[i+1])),e=_.geometryPositions.length>0;break;case 3:_.primitiveName="lines",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;default:continue}if(e||(_=null),_&&(_.geometryPositions.length,_.batchThisMesh)){_.decompressedPositions=new Float32Array(_.geometryPositions.length);const e=_.geometryPositions,t=_.decompressedPositions;for(let s=0,n=e.length;s0&&r.length>0;break;case 1:e="surface",t=A.subarray(E[i],o?A.length:E[i+1]),s=d.subarray(T[i],o?d.length:T[i+1]),r=I.subarray(D[i],o?I.length:D[i+1]),l=y.subarray(P[i],o?y.length:P[i+1]),h=t.length>0&&r.length>0;break;case 2:e="points",t=A.subarray(E[i],o?A.length:E[i+1]),a=NT(f.subarray(b[i],o?f.length:b[i+1])),h=t.length>0;break;case 3:e="lines",t=A.subarray(E[i],o?A.length:E[i+1]),r=I.subarray(D[i],o?I.length:D[i+1]),h=t.length>0&&r.length>0;break;default:continue}h&&(n.createMesh(m.apply(Q,{id:O,origin:G,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:a,indices:r,edgeIndices:l,positionsDecodeMatrix:x,color:c,metallic:p,roughness:B,opacity:u})),N.push(O))}}N.length>0&&n.createEntity(m.apply(k,{id:c,isObject:!0,meshIds:N}))}}}(e,t,l,n,i,a)}};let LT=window.pako||rT;LT.inflate||(LT=LT.default);const MT=h.vec4(),FT=h.vec4();const HT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const UT={version:9,parse:function(e,t,s,n,i,a){const r=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(s),l=function(e){function t(e,t){return 0===e.length?[]:LT.inflate(e,t).buffer}return{metadata:JSON.parse(LT.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(LT.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(r);!function(e,t,s,n,i,a){const r=a.getNextId(),l=s.metadata,o=s.positions,c=s.normals,u=s.colors,p=s.indices,A=s.edgeIndices,d=s.matrices,f=s.reusedGeometriesDecodeMatrix,I=s.eachGeometryPrimitiveType,y=s.eachGeometryPositionsPortion,v=s.eachGeometryNormalsPortion,w=s.eachGeometryColorsPortion,g=s.eachGeometryIndicesPortion,E=s.eachGeometryEdgeIndicesPortion,T=s.eachMeshGeometriesPortion,b=s.eachMeshMatricesPortion,D=s.eachMeshMaterial,P=s.eachEntityId,R=s.eachEntityMeshesPortion,C=s.eachTileAABB,_=s.eachTileEntitiesPortion,B=y.length,O=T.length,S=R.length,N=_.length;i&&i.loadData(l,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const x=new Uint32Array(B);for(let e=0;e1,P=i===B-1,R=HT(D.subarray(6*e,6*e+3)),C=D[6*e+3]/255,_=D[6*e+4]/255,O=D[6*e+5]/255,S=a.getNextId();if(l){const a=b[e],l=d.slice(a,a+16),T=`${r}-geometry.${s}.${i}`;let D=F[T];if(!D){D={batchThisMesh:!t.reuseGeometries};let e=!1;switch(I[i]){case 0:D.primitiveName="solid",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryNormals=c.subarray(v[i],P?c.length:v[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),D.geometryEdgeIndices=A.subarray(E[i],P?A.length:E[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;case 1:D.primitiveName="surface",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryNormals=c.subarray(v[i],P?c.length:v[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),D.geometryEdgeIndices=A.subarray(E[i],P?A.length:E[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;case 2:D.primitiveName="points",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryColors=u.subarray(w[i],P?u.length:w[i+1]),e=D.geometryPositions.length>0;break;case 3:D.primitiveName="lines",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;default:continue}if(e||(D=null),D&&(D.geometryPositions.length,D.batchThisMesh)){D.decompressedPositions=new Float32Array(D.geometryPositions.length),D.transformedAndRecompressedPositions=new Uint16Array(D.geometryPositions.length);const e=D.geometryPositions,t=D.decompressedPositions;for(let s=0,n=e.length;s0&&r.length>0;break;case 1:e="surface",t=o.subarray(y[i],P?o.length:y[i+1]),s=c.subarray(v[i],P?c.length:v[i+1]),r=p.subarray(g[i],P?p.length:g[i+1]),l=A.subarray(E[i],P?A.length:E[i+1]),h=t.length>0&&r.length>0;break;case 2:e="points",t=o.subarray(y[i],P?o.length:y[i+1]),a=u.subarray(w[i],P?u.length:w[i+1]),h=t.length>0;break;case 3:e="lines",t=o.subarray(y[i],P?o.length:y[i+1]),r=p.subarray(g[i],P?p.length:g[i+1]),h=t.length>0&&r.length>0;break;default:continue}h&&(n.createMesh(m.apply(k,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:a,indices:r,edgeIndices:l,positionsDecodeMatrix:G,color:R,metallic:_,roughness:O,opacity:C})),H.push(S))}}H.length>0&&n.createEntity(m.apply(V,{id:C,isObject:!0,meshIds:H}))}}}(e,t,l,n,i,a)}};let GT=window.pako||rT;GT.inflate||(GT=GT.default);const jT=h.vec4(),VT=h.vec4();const kT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function QT(e,t){const s=[];if(t.length>1)for(let e=0,n=t.length-1;e1)for(let t=0,n=e.length/3-1;t0,l=9*e,h=1===u[l+0],p=u[l+1];u[l+2],u[l+3];const A=u[l+4],d=u[l+5],f=u[l+6],I=u[l+7],y=u[l+8];if(a){const t=new Uint8Array(o.subarray(s,i)).buffer,a=`${r}-texture-${e}`;if(h)n.createTexture({id:a,buffers:[t],minFilter:A,magFilter:d,wrapS:f,wrapT:I,wrapR:y});else{const e=new Blob([t],{type:10001===p?"image/jpeg":10002===p?"image/png":"image/gif"}),s=(window.URL||window.webkitURL).createObjectURL(e),i=document.createElement("img");i.src=s,n.createTexture({id:a,image:i,minFilter:A,magFilter:d,wrapS:f,wrapT:I,wrapR:y})}}}for(let e=0;e=0?`${r}-texture-${i}`:null,normalsTextureId:l>=0?`${r}-texture-${l}`:null,metallicRoughnessTextureId:a>=0?`${r}-texture-${a}`:null,emissiveTextureId:o>=0?`${r}-texture-${o}`:null,occlusionTextureId:c>=0?`${r}-texture-${c}`:null})}const k=new Uint32Array(U);for(let e=0;e1,o=i===U-1,c=O[e],u=c>=0?`${r}-textureSet-${c}`:null,N=kT(S.subarray(6*e,6*e+3)),x=S[6*e+3]/255,L=S[6*e+4]/255,H=S[6*e+5]/255,G=a.getNextId();if(l){const a=B[e],l=w.slice(a,a+16),c=`${r}-geometry.${s}.${i}`;let _=z[c];if(!_){_={batchThisMesh:!t.reuseGeometries};let e=!1;switch(E[i]){case 0:_.primitiveName="solid",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryNormals=A.subarray(b[i],o?A.length:b[i+1]),_.geometryUVs=f.subarray(P[i],o?f.length:P[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),_.geometryEdgeIndices=y.subarray(C[i],o?y.length:C[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 1:_.primitiveName="surface",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryNormals=A.subarray(b[i],o?A.length:b[i+1]),_.geometryUVs=f.subarray(P[i],o?f.length:P[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),_.geometryEdgeIndices=y.subarray(C[i],o?y.length:C[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 2:_.primitiveName="points",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryColors=d.subarray(D[i],o?d.length:D[i+1]),e=_.geometryPositions.length>0;break;case 3:_.primitiveName="lines",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 4:_.primitiveName="lines",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryIndices=QT(_.geometryPositions,I.subarray(R[i],o?I.length:R[i+1])),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;default:continue}if(e||(_=null),_&&(_.geometryPositions.length,_.batchThisMesh)){_.decompressedPositions=new Float32Array(_.geometryPositions.length),_.transformedAndRecompressedPositions=new Uint16Array(_.geometryPositions.length);const e=_.geometryPositions,t=_.decompressedPositions;for(let s=0,n=e.length;s0&&l.length>0;break;case 1:e="surface",t=p.subarray(T[i],o?p.length:T[i+1]),s=A.subarray(b[i],o?A.length:b[i+1]),a=f.subarray(P[i],o?f.length:P[i+1]),l=I.subarray(R[i],o?I.length:R[i+1]),c=y.subarray(C[i],o?y.length:C[i+1]),h=t.length>0&&l.length>0;break;case 2:e="points",t=p.subarray(T[i],o?p.length:T[i+1]),r=d.subarray(D[i],o?d.length:D[i+1]),h=t.length>0;break;case 3:e="lines",t=p.subarray(T[i],o?p.length:T[i+1]),l=I.subarray(R[i],o?I.length:R[i+1]),h=t.length>0&&l.length>0;break;case 4:e="lines",t=p.subarray(T[i],o?p.length:T[i+1]),l=QT(t,I.subarray(R[i],o?I.length:R[i+1])),h=t.length>0&&l.length>0;break;default:continue}h&&(n.createMesh(m.apply(V,{id:G,textureSetId:u,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:s,uv:a&&a.length>0?a:null,colorsCompressed:r,indices:l,edgeIndices:c,positionsDecodeMatrix:v,color:N,metallic:L,roughness:H,opacity:x})),M.push(G))}}M.length>0&&n.createEntity(m.apply(G,{id:o,isObject:!0,meshIds:M}))}}}(e,t,l,n,i,a)}},zT={};zT[cT.version]=cT,zT[pT.version]=pT,zT[fT.version]=fT,zT[mT.version]=mT,zT[gT.version]=gT,zT[bT.version]=bT,zT[CT.version]=CT,zT[xT.version]=xT,zT[UT.version]=UT,zT[WT.version]=WT;var KT={};!function(e){var t,s="File format is not recognized.",n="Error while reading zip file.",i="Error while reading file data.",a=524288,r="text/plain";try{t=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function l(){this.crc=-1}function o(){}function c(e,t){var s,n;return s=new ArrayBuffer(e),n=new Uint8Array(s),t&&n.set(t,0),{buffer:s,array:n,view:new DataView(s)}}function u(){}function h(e){var t,s=this;s.size=0,s.init=function(n,i){var a=new Blob([e],{type:r});(t=new A(a)).init((function(){s.size=t.size,n()}),i)},s.readUint8Array=function(e,s,n,i){t.readUint8Array(e,s,n,i)}}function p(t){var s,n=this;n.size=0,n.init=function(e){for(var i=t.length;"="==t.charAt(i-1);)i--;s=t.indexOf(",")+1,n.size=Math.floor(.75*(i-s)),e()},n.readUint8Array=function(n,i,a){var r,l=c(i),o=4*Math.floor(n/3),u=4*Math.ceil((n+i)/3),h=e.atob(t.substring(o+s,u+s)),p=n-3*Math.floor(o/4);for(r=p;re.size)throw new RangeError("offset:"+t+", length:"+s+", size:"+e.size);return e.slice?e.slice(t,t+s):e.webkitSlice?e.webkitSlice(t,t+s):e.mozSlice?e.mozSlice(t,t+s):e.msSlice?e.msSlice(t,t+s):void 0}(e,t,s))}catch(e){i(e)}}}function d(){}function f(e){var s,n=this;n.init=function(e){s=new Blob([],{type:r}),e()},n.writeUint8Array=function(e,n){s=new Blob([s,t?e:e.buffer],{type:r}),n()},n.getData=function(t,n){var i=new FileReader;i.onload=function(e){t(e.target.result)},i.onerror=n,i.readAsText(s,e)}}function I(t){var s=this,n="",i="";s.init=function(e){n+="data:"+(t||"")+";base64,",e()},s.writeUint8Array=function(t,s){var a,r=i.length,l=i;for(i="",a=0;a<3*Math.floor((r+t.length)/3)-r;a++)l+=String.fromCharCode(t[a]);for(;a2?n+=e.btoa(l):i=l,s()},s.getData=function(t){t(n+e.btoa(i))}}function y(e){var s,n=this;n.init=function(t){s=new Blob([],{type:e}),t()},n.writeUint8Array=function(n,i){s=new Blob([s,t?n:n.buffer],{type:e}),i()},n.getData=function(e){e(s)}}function m(e,t,s,n,i,r,l,o,c,u){var h,p,A,d=0,f=t.sn;function I(){e.removeEventListener("message",y,!1),o(p,A)}function y(t){var s=t.data,i=s.data,a=s.error;if(a)return a.toString=function(){return"Error: "+this.message},void c(a);if(s.sn===f)switch("number"==typeof s.codecTime&&(e.codecTime+=s.codecTime),"number"==typeof s.crcTime&&(e.crcTime+=s.crcTime),s.type){case"append":i?(p+=i.length,n.writeUint8Array(i,(function(){m()}),u)):m();break;case"flush":A=s.crc,i?(p+=i.length,n.writeUint8Array(i,(function(){I()}),u)):I();break;case"progress":l&&l(h+s.loaded,r);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",s)}}function m(){(h=d*a)<=r?s.readUint8Array(i+h,Math.min(a,r-h),(function(s){l&&l(h,r);var n=0===h?t:{sn:f};n.type="append",n.data=s;try{e.postMessage(n,[s.buffer])}catch(t){e.postMessage(n)}d++}),c):e.postMessage({sn:f,type:"flush"})}p=0,e.addEventListener("message",y,!1),m()}function v(e,t,s,n,i,r,o,c,u,h){var p,A=0,d=0,f="input"===r,I="output"===r,y=new l;!function r(){var l;if((p=A*a)127?i[s-128]:String.fromCharCode(s);return n}function E(e){return decodeURIComponent(escape(e))}function T(e){var t,s="";for(t=0;t>16,s=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&s)>>11,(2016&s)>>5,2*(31&s),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((n||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(s+10,!0),e.compressedSize=t.view.getUint32(s+14,!0),e.uncompressedSize=t.view.getUint32(s+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(s+22,!0),e.extraFieldLength=t.view.getUint16(s+24,!0)):i("File is using Zip64 (4gb+ file size).")):i("File contains encrypted entry.")}function D(t,a,r){var l=0;function o(){}o.prototype.getData=function(n,a,o,u){var h=this;function p(e,t){u&&!function(e){var t=c(4);return t.view.setUint32(0,e),h.crc32==t.view.getUint32(0)}(t)?r("CRC failed."):n.getData((function(e){a(e)}))}function A(e){r(e||i)}function d(e){r(e||"Error while writing file data.")}t.readUint8Array(h.offset,30,(function(i){var a,f=c(i.length,i);1347093252==f.view.getUint32(0)?(b(h,f,4,!1,r),a=h.offset+30+h.filenameLength+h.extraFieldLength,n.init((function(){0===h.compressionMethod?w(h._worker,l++,t,n,a,h.compressedSize,u,p,o,A,d):function(t,s,n,i,a,r,l,o,c,u,h){var p=l?"output":"none";e.zip.useWebWorkers?m(t,{sn:s,codecClass:"Inflater",crcType:p},n,i,a,r,c,o,u,h):v(new e.zip.Inflater,n,i,a,r,p,c,o,u,h)}(h._worker,l++,t,n,a,h.compressedSize,u,p,o,A,d)}),d)):r(s)}),A)};var u={getEntries:function(e){var i=this._worker;!function(e){t.size<22?r(s):i(22,(function(){i(Math.min(65558,t.size),(function(){r(s)}))}));function i(s,i){t.readUint8Array(t.size-s,s,(function(t){for(var s=t.length-22;s>=0;s--)if(80===t[s]&&75===t[s+1]&&5===t[s+2]&&6===t[s+3])return void e(new DataView(t.buffer,s,22));i()}),(function(){r(n)}))}}((function(a){var l,u;l=a.getUint32(16,!0),u=a.getUint16(8,!0),l<0||l>=t.size?r(s):t.readUint8Array(l,t.size-l,(function(t){var n,a,l,h,p=0,A=[],d=c(t.length,t);for(n=0;n>>8^s[255&(t^e[n])];this.crc=t},l.prototype.get=function(){return~this.crc},l.prototype.table=function(){var e,t,s,n=[];for(e=0;e<256;e++){for(s=e,t=0;t<8;t++)1&s?s=s>>>1^3988292384:s>>>=1;n[e]=s}return n}(),o.prototype.append=function(e,t){return e},o.prototype.flush=function(){},h.prototype=new u,h.prototype.constructor=h,p.prototype=new u,p.prototype.constructor=p,A.prototype=new u,A.prototype.constructor=A,d.prototype.getData=function(e){e(this.data)},f.prototype=new d,f.prototype.constructor=f,I.prototype=new d,I.prototype.constructor=I,y.prototype=new d,y.prototype.constructor=y;var _={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function B(t,s,n){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var i;if(e.zip.workerScripts){if(i=e.zip.workerScripts[t],!Array.isArray(i))return void n(new Error("zip.workerScripts."+t+" is not an array!"));i=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(i)}else(i=_[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+i[0];var a=new Worker(i[0]);a.codecTime=a.crcTime=0,a.postMessage({type:"importScripts",scripts:i.slice(1)}),a.addEventListener("message",(function e(t){var i=t.data;if(i.error)return a.terminate(),void n(i.error);"importScripts"===i.type&&(a.removeEventListener("message",e),a.removeEventListener("error",r),s(a))})),a.addEventListener("error",r)}else n(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function r(e){a.terminate(),n(e)}}function O(e){console.error(e)}e.zip={Reader:u,Writer:d,BlobReader:A,Data64URIReader:p,TextReader:h,BlobWriter:y,Data64URIWriter:I,TextWriter:f,createReader:function(e,t,s){s=s||O,e.init((function(){D(e,t,s)}),s)},createWriter:function(e,t,s,n){s=s||O,n=!!n,e.init((function(){C(e,t,s,n)}),s)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(KT);const YT=KT.zip;!function(e){var t,s,n=e.Reader,i=e.Writer;try{s=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function a(e){var t=this;function s(s,n){var i;t.data?s():((i=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(i.getResponseHeader("Content-Length"))||Number(i.response.byteLength)),t.data=new Uint8Array(i.response),s()}),!1),i.addEventListener("error",n,!1),i.open("GET",e),i.responseType="arraybuffer",i.send())}t.size=0,t.init=function(n,i){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var a=new XMLHttpRequest;a.addEventListener("load",(function(){t.size=Number(a.getResponseHeader("Content-Length")),t.size?n():s(n,i)}),!1),a.addEventListener("error",i,!1),a.open("HEAD",e),a.send()}else s(n,i)},t.readUint8Array=function(e,n,i,a){s((function(){i(new Uint8Array(t.data.subarray(e,e+n)))}),a)}}function r(e){var t=this;t.size=0,t.init=function(s,n){var i=new XMLHttpRequest;i.addEventListener("load",(function(){t.size=Number(i.getResponseHeader("Content-Length")),"bytes"==i.getResponseHeader("Accept-Ranges")?s():n("HTTP Range not supported.")}),!1),i.addEventListener("error",n,!1),i.open("HEAD",e),i.send()},t.readUint8Array=function(t,s,n,i){!function(t,s,n,i){var a=new XMLHttpRequest;a.open("GET",e),a.responseType="arraybuffer",a.setRequestHeader("Range","bytes="+t+"-"+(t+s-1)),a.addEventListener("load",(function(){n(a.response)}),!1),a.addEventListener("error",i,!1),a.send()}(t,s,(function(e){n(new Uint8Array(e))}),i)}}function l(e){var t=this;t.size=0,t.init=function(s,n){t.size=e.byteLength,s()},t.readUint8Array=function(t,s,n,i){n(new Uint8Array(e.slice(t,t+s)))}}function o(){var e,t=this;t.init=function(t,s){e=new Uint8Array,t()},t.writeUint8Array=function(t,s,n){var i=new Uint8Array(e.length+t.length);i.set(e),i.set(t,e.length),e=i,s()},t.getData=function(t){t(e.buffer)}}function c(e,t){var n,i=this;i.init=function(t,s){e.createWriter((function(e){n=e,t()}),s)},i.writeUint8Array=function(e,i,a){var r=new Blob([s?e:e.buffer],{type:t});n.onwrite=function(){n.onwrite=null,i()},n.onerror=a,n.write(r)},i.getData=function(t){e.file(t)}}a.prototype=new n,a.prototype.constructor=a,r.prototype=new n,r.prototype.constructor=r,l.prototype=new n,l.prototype.constructor=l,o.prototype=new i,o.prototype.constructor=o,c.prototype=new i,c.prototype.constructor=c,e.FileWriter=c,e.HttpReader=a,e.HttpRangeReader=r,e.ArrayBufferReader=l,e.ArrayBufferWriter=o,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(s,n,i){return function(s,n,i,a){if(s.directory)return a?new t(s.fs,n,i,s):new e.fs.ZipFileEntry(s.fs,n,i,s);throw"Parent entry is not a directory."}(this,s,{data:n,Reader:i?r:a})},t.prototype.importHttpContent=function(e,t,s,n){this.importZip(t?new r(e):new a(e),s,n)},e.fs.FS.prototype.importHttpContent=function(e,s,n,i){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,s,n,i)})}(YT);const XT=["4.2"];class qT{constructor(e,t={}){this.supportedSchemas=XT,this._xrayOpacity=.7,this._src=null,this._options=t,this.viewpoint=null,t.workerScriptsPath?(YT.workerScriptsPath=t.workerScriptsPath,this.src=t.src,this.xrayOpacity=.7,this.displayEffect=t.displayEffect,this.createMetaModel=t.createMetaModel):e.error("Config expected: workerScriptsPath")}load(e,t,s,n,i,a){switch(n.materialType){case"MetallicMaterial":t._defaultMaterial=new cn(t,{baseColor:[1,1,1],metallic:.6,roughness:.6});break;case"SpecularMaterial":t._defaultMaterial=new pn(t,{diffuse:[1,1,1],specular:h.vec3([1,1,1]),glossiness:.5});break;default:t._defaultMaterial=new Ht(t,{reflectivity:.75,shiness:100,diffuse:[1,1,1]})}t._wireframeMaterial=new rn(t,{color:[0,0,0],lineWidth:2});var r=t.scene.canvas.spinner;r.processes++,JT(e,t,s,n,(function(){r.processes--,i&&i(),t.fire("loaded",!0,!1)}),(function(e){r.processes--,t.error(e),a&&a(e),t.fire("error",e)}),(function(e){console.log("Error, Will Robinson: "+e)}))}}var JT=function(e,t,s,n,i,a){!function(e,t,s){var n=new ab;n.load(e,(function(){t(n)}),(function(e){s("Error loading ZIP archive: "+e)}))}(s,(function(s){ZT(e,s,n,t,i,a)}),a)},ZT=function(){return function(t,s,n,i,a){var r={plugin:t,zip:s,edgeThreshold:30,materialType:n.materialType,scene:i.scene,modelNode:i,info:{references:{}},materials:{}};n.createMetaModel&&(r.metaModelData={modelId:i.id,metaObjects:[{name:i.id,type:"Default",id:i.id}]}),i.scene.loading++,function(t,s){t.zip.getFile("Manifest.xml",(function(n,i){for(var a=i.children,r=0,l=a.length;r0){for(var r=a.trim().split(" "),l=new Int16Array(r.length),o=0,c=0,u=r.length;c0){s.primitive="triangles";for(var a=[],r=0,l=i.length;r=t.length)s();else{var l=t[a].id,o=l.lastIndexOf(":");o>0&&(l=l.substring(o+1));var c=l.lastIndexOf("#");c>0&&(l=l.substring(0,c)),n[l]?i(a+1):function(e,t,s){e.zip.getFile(t,(function(t,n){!function(e,t,s){for(var n,i=t.children,a=0,r=i.length;a0)for(var n=0,i=t.length;nt in e?pb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,vb=(e,t)=>{for(var s in t||(t={}))Ib.call(t,s)&&mb(e,s,t[s]);if(fb)for(var s of fb(t))yb.call(t,s)&&mb(e,s,t[s]);return e},wb=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},gb=(e,t,s)=>new Promise(((n,i)=>{var a=e=>{try{l(s.next(e))}catch(e){i(e)}},r=e=>{try{l(s.throw(e))}catch(e){i(e)}},l=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,r);l((s=s.apply(e,t)).next())})),Eb=wb({"dist/web-ifc-mt.js"(e,t){var s,n=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){function t(){return R.buffer!=N.buffer&&z(),N}function n(){return R.buffer!=N.buffer&&z(),x}function i(){return R.buffer!=N.buffer&&z(),L}function a(){return R.buffer!=N.buffer&&z(),M}function r(){return R.buffer!=N.buffer&&z(),F}function l(){return R.buffer!=N.buffer&&z(),H}function o(){return R.buffer!=N.buffer&&z(),G}var c,u,h=void 0!==e?e:{};h.ready=new Promise((function(e,t){c=e,u=t}));var p,A,d,f=Object.assign({},h),I="./this.program",y=(e,t)=>{throw t},m="object"==typeof window,v="function"==typeof importScripts,w="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=h.ENVIRONMENT_IS_PTHREAD||!1,E="";function T(e){return h.locateFile?h.locateFile(e,E):E+e}(m||v)&&(v?E=self.location.href:"undefined"!=typeof document&&document.currentScript&&(E=document.currentScript.src),s&&(E=s),E=0!==E.indexOf("blob:")?E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):"",p=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},v&&(d=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),A=(e,t,s)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):s()},n.onerror=s,n.send(null)});var b,D=h.print||console.log.bind(console),P=h.printErr||console.warn.bind(console);Object.assign(h,f),f=null,h.arguments,h.thisProgram&&(I=h.thisProgram),h.quit&&(y=h.quit),h.wasmBinary&&(b=h.wasmBinary);var R,C,_=h.noExitRuntime||!0;"object"!=typeof WebAssembly&&le("no native wasm support detected");var B,O=!1;function S(e,t){e||le(t)}var N,x,L,M,F,H,U,G,j="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function V(e,t,s){for(var n=(t>>>=0)+s,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&j)return j.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,i):e.subarray(t,i));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&r)<<6|l)}else a+=String.fromCharCode(r)}return a}function k(e,t){return(e>>>=0)?V(n(),e,t):""}function Q(e,t,s,n){if(!(n>0))return 0;for(var i=s>>>=0,a=s+n-1,r=0;r=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++r)),l<=127){if(s>=a)break;t[s++>>>0]=l}else if(l<=2047){if(s+1>=a)break;t[s++>>>0]=192|l>>6,t[s++>>>0]=128|63&l}else if(l<=65535){if(s+2>=a)break;t[s++>>>0]=224|l>>12,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}else{if(s+3>=a)break;t[s++>>>0]=240|l>>18,t[s++>>>0]=128|l>>12&63,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}}return t[s>>>0]=0,s-i}function W(e){for(var t=0,s=0;s=55296&&n<=57343?(t+=4,++s):t+=3}return t}function z(){var e=R.buffer;h.HEAP8=N=new Int8Array(e),h.HEAP16=L=new Int16Array(e),h.HEAP32=F=new Int32Array(e),h.HEAPU8=x=new Uint8Array(e),h.HEAPU16=M=new Uint16Array(e),h.HEAPU32=H=new Uint32Array(e),h.HEAPF32=U=new Float32Array(e),h.HEAPF64=G=new Float64Array(e)}var K,Y=h.INITIAL_MEMORY||16777216;if(S(Y>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+Y+"! (STACK_SIZE=5242880)"),g)R=h.wasmMemory;else if(h.wasmMemory)R=h.wasmMemory;else if(!((R=new WebAssembly.Memory({initial:Y/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw P("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&P("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");z(),Y=R.buffer.byteLength;var X=[],q=[],J=[];function Z(){return _}function $(){g||(h.noFSInit||me.init.initialized||me.init(),me.ignorePermissions=!1,Te(q))}var ee,te,se,ne=0,ie=null;function ae(e){ne++,h.monitorRunDependencies&&h.monitorRunDependencies(ne)}function re(e){if(ne--,h.monitorRunDependencies&&h.monitorRunDependencies(ne),0==ne&&ie){var t=ie;ie=null,t()}}function le(e){h.onAbort&&h.onAbort(e),P(e="Aborted("+e+")"),O=!0,B=1,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw u(t),t}function oe(e){return e.startsWith("data:application/octet-stream;base64,")}function ce(e){try{if(e==ee&&b)return new Uint8Array(b);if(d)return d(e);throw"both async and sync fetching of the wasm failed"}catch(e){le(e)}}function ue(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function he(e){var t=Ee.pthreads[e];S(t),Ee.returnWorkerToPool(t)}oe(ee="web-ifc-mt.wasm")||(ee=T(ee));var pe={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),s++):s&&(e.splice(n,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=pe.isAbs(e),s="/"===e.substr(-1);return e=pe.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=pe.splitPath(e),s=t[0],n=t[1];return s||n?(n&&(n=n.substr(0,n.length-1)),s+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=pe.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return pe.normalize(e.join("/"))},join2:(e,t)=>pe.normalize(e+"/"+t)},Ae={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var n=s>=0?arguments[s]:me.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=pe.isAbs(n)}return e=pe.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),(t?"/":"")+e||"."},relative:(e,t)=>{function s(e){for(var t=0;t=0&&""===e[s];s--);return t>s?[]:e.slice(t,s-t+1)}e=Ae.resolve(e).substr(1),t=Ae.resolve(t).substr(1);for(var n=s(e.split("/")),i=s(t.split("/")),a=Math.min(n.length,i.length),r=a,l=0;l0?s:W(e)+1,i=new Array(n),a=Q(e,i,0,i.length);return t&&(i.length=a),i}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){fe.ttys[e]={input:[],output:[],ops:t},me.registerDevice(e,fe.stream_ops)},stream_ops:{open:function(e){var t=fe.ttys[e.node.rdev];if(!t)throw new me.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,s,n,i){if(!e.tty||!e.tty.ops.get_char)throw new me.ErrnoError(60);for(var a=0,r=0;r0&&(D(V(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(P(V(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(P(V(e.output,0)),e.output=[])}}};function Ie(e){le()}var ye={ops_table:null,mount:function(e){return ye.createNode(null,"/",16895,0)},createNode:function(e,t,s,n){if(me.isBlkdev(s)||me.isFIFO(s))throw new me.ErrnoError(63);ye.ops_table||(ye.ops_table={dir:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,lookup:ye.node_ops.lookup,mknod:ye.node_ops.mknod,rename:ye.node_ops.rename,unlink:ye.node_ops.unlink,rmdir:ye.node_ops.rmdir,readdir:ye.node_ops.readdir,symlink:ye.node_ops.symlink},stream:{llseek:ye.stream_ops.llseek}},file:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:{llseek:ye.stream_ops.llseek,read:ye.stream_ops.read,write:ye.stream_ops.write,allocate:ye.stream_ops.allocate,mmap:ye.stream_ops.mmap,msync:ye.stream_ops.msync}},link:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,readlink:ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:me.chrdev_stream_ops}});var i=me.createNode(e,t,s,n);return me.isDir(i.mode)?(i.node_ops=ye.ops_table.dir.node,i.stream_ops=ye.ops_table.dir.stream,i.contents={}):me.isFile(i.mode)?(i.node_ops=ye.ops_table.file.node,i.stream_ops=ye.ops_table.file.stream,i.usedBytes=0,i.contents=null):me.isLink(i.mode)?(i.node_ops=ye.ops_table.link.node,i.stream_ops=ye.ops_table.link.stream):me.isChrdev(i.mode)&&(i.node_ops=ye.ops_table.chrdev.node,i.stream_ops=ye.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){t>>>=0;var s=e.contents?e.contents.length:0;if(!(s>=t)){t=Math.max(t,s*(s<1048576?2:1.125)>>>0),0!=s&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(t>>>=0,e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var s=e.contents;e.contents=new Uint8Array(t),s&&e.contents.set(s.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=me.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,me.isDir(e.mode)?t.size=4096:me.isFile(e.mode)?t.size=e.usedBytes:me.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ye.resizeFileStorage(e,t.size)},lookup:function(e,t){throw me.genericErrors[44]},mknod:function(e,t,s,n){return ye.createNode(e,t,s,n)},rename:function(e,t,s){if(me.isDir(e.mode)){var n;try{n=me.lookupNode(t,s)}catch(e){}if(n)for(var i in n.contents)throw new me.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=s,t.contents[s]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var s=me.lookupNode(e,t);for(var n in s.contents)throw new me.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var s in e.contents)e.contents.hasOwnProperty(s)&&t.push(s);return t},symlink:function(e,t,s){var n=ye.createNode(e,t,41471,0);return n.link=s,n},readlink:function(e){if(!me.isLink(e.mode))throw new me.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var r=Math.min(e.node.usedBytes-i,n);if(r>8&&a.subarray)t.set(a.subarray(i,i+r),s);else for(var l=0;l0||n+s>>=0,t().set(o,r>>>0)}else l=!1,r=o.byteOffset;return{ptr:r,allocated:l}},msync:function(e,t,s,n,i){return ye.stream_ops.write(e,t,0,n,s,!1),0}}},me={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=Ae.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new me.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),n=me.root,i="/",a=0;a40)throw new me.ErrnoError(32)}}return{path:i,node:n}},getPath:e=>{for(var t;;){if(me.isRoot(e)){var s=e.mount.mountpoint;return t?"/"!==s[s.length-1]?s+"/"+t:s+t:s}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var s=0,n=0;n>>0)%me.nameTable.length},hashAddNode:e=>{var t=me.hashName(e.parent.id,e.name);e.name_next=me.nameTable[t],me.nameTable[t]=e},hashRemoveNode:e=>{var t=me.hashName(e.parent.id,e.name);if(me.nameTable[t]===e)me.nameTable[t]=e.name_next;else for(var s=me.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=me.mayLookup(e);if(s)throw new me.ErrnoError(s,e);for(var n=me.hashName(e.id,t),i=me.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return me.lookup(e,t)},createNode:(e,t,s,n)=>{var i=new me.FSNode(e,t,s,n);return me.hashAddNode(i),i},destroyNode:e=>{me.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=me.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>me.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=me.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return me.lookupNode(e,t),20}catch(e){}return me.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var n;try{n=me.lookupNode(e,t)}catch(e){return e.errno}var i=me.nodePermissions(e,"wx");if(i)return i;if(s){if(!me.isDir(n.mode))return 54;if(me.isRoot(n)||me.getPath(n)===me.cwd())return 10}else if(me.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?me.isLink(e.mode)?32:me.isDir(e.mode)&&("r"!==me.flagsToPermissionString(t)||512&t)?31:me.nodePermissions(e,me.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=me.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!me.streams[s])return s;throw new me.ErrnoError(33)},getStream:e=>me.streams[e],createStream:(e,t,s)=>{me.FSStream||(me.FSStream=function(){this.shared={}},me.FSStream.prototype={},Object.defineProperties(me.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new me.FSStream,e);var n=me.nextfd(t,s);return e.fd=n,me.streams[n]=e,e},closeStream:e=>{me.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=me.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new me.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{me.devices[e]={stream_ops:t}},getDevice:e=>me.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var n=s.pop();t.push(n),s.push.apply(s,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),me.syncFSRequests++,me.syncFSRequests>1&&P("warning: "+me.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=me.getMounts(me.root.mount),n=0;function i(e){return me.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++n>=s.length&&i(null)}s.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:(e,t,s)=>{var n,i="/"===s,a=!s;if(i&&me.root)throw new me.ErrnoError(10);if(!i&&!a){var r=me.lookupPath(s,{follow_mount:!1});if(s=r.path,n=r.node,me.isMountpoint(n))throw new me.ErrnoError(10);if(!me.isDir(n.mode))throw new me.ErrnoError(54)}var l={type:e,opts:t,mountpoint:s,mounts:[]},o=e.mount(l);return o.mount=l,l.root=o,i?me.root=o:n&&(n.mounted=l,n.mount&&n.mount.mounts.push(l)),o},unmount:e=>{var t=me.lookupPath(e,{follow_mount:!1});if(!me.isMountpoint(t.node))throw new me.ErrnoError(28);var s=t.node,n=s.mounted,i=me.getMounts(n);Object.keys(me.nameTable).forEach((e=>{for(var t=me.nameTable[e];t;){var s=t.name_next;i.includes(t.mount)&&me.destroyNode(t),t=s}})),s.mounted=null;var a=s.mount.mounts.indexOf(n);s.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var n=me.lookupPath(e,{parent:!0}).node,i=pe.basename(e);if(!i||"."===i||".."===i)throw new me.ErrnoError(28);var a=me.mayCreate(n,i);if(a)throw new me.ErrnoError(a);if(!n.node_ops.mknod)throw new me.ErrnoError(63);return n.node_ops.mknod(n,i,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,me.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,me.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),n="",i=0;i(void 0===s&&(s=t,t=438),t|=8192,me.mknod(e,t,s)),symlink:(e,t)=>{if(!Ae.resolve(e))throw new me.ErrnoError(44);var s=me.lookupPath(t,{parent:!0}).node;if(!s)throw new me.ErrnoError(44);var n=pe.basename(t),i=me.mayCreate(s,n);if(i)throw new me.ErrnoError(i);if(!s.node_ops.symlink)throw new me.ErrnoError(63);return s.node_ops.symlink(s,n,e)},rename:(e,t)=>{var s,n,i=pe.dirname(e),a=pe.dirname(t),r=pe.basename(e),l=pe.basename(t);if(s=me.lookupPath(e,{parent:!0}).node,n=me.lookupPath(t,{parent:!0}).node,!s||!n)throw new me.ErrnoError(44);if(s.mount!==n.mount)throw new me.ErrnoError(75);var o,c=me.lookupNode(s,r),u=Ae.relative(e,a);if("."!==u.charAt(0))throw new me.ErrnoError(28);if("."!==(u=Ae.relative(t,i)).charAt(0))throw new me.ErrnoError(55);try{o=me.lookupNode(n,l)}catch(e){}if(c!==o){var h=me.isDir(c.mode),p=me.mayDelete(s,r,h);if(p)throw new me.ErrnoError(p);if(p=o?me.mayDelete(n,l,h):me.mayCreate(n,l))throw new me.ErrnoError(p);if(!s.node_ops.rename)throw new me.ErrnoError(63);if(me.isMountpoint(c)||o&&me.isMountpoint(o))throw new me.ErrnoError(10);if(n!==s&&(p=me.nodePermissions(s,"w")))throw new me.ErrnoError(p);me.hashRemoveNode(c);try{s.node_ops.rename(c,n,l)}catch(e){throw e}finally{me.hashAddNode(c)}}},rmdir:e=>{var t=me.lookupPath(e,{parent:!0}).node,s=pe.basename(e),n=me.lookupNode(t,s),i=me.mayDelete(t,s,!0);if(i)throw new me.ErrnoError(i);if(!t.node_ops.rmdir)throw new me.ErrnoError(63);if(me.isMountpoint(n))throw new me.ErrnoError(10);t.node_ops.rmdir(t,s),me.destroyNode(n)},readdir:e=>{var t=me.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new me.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=me.lookupPath(e,{parent:!0}).node;if(!t)throw new me.ErrnoError(44);var s=pe.basename(e),n=me.lookupNode(t,s),i=me.mayDelete(t,s,!1);if(i)throw new me.ErrnoError(i);if(!t.node_ops.unlink)throw new me.ErrnoError(63);if(me.isMountpoint(n))throw new me.ErrnoError(10);t.node_ops.unlink(t,s),me.destroyNode(n)},readlink:e=>{var t=me.lookupPath(e).node;if(!t)throw new me.ErrnoError(44);if(!t.node_ops.readlink)throw new me.ErrnoError(28);return Ae.resolve(me.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=me.lookupPath(e,{follow:!t}).node;if(!s)throw new me.ErrnoError(44);if(!s.node_ops.getattr)throw new me.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>me.stat(e,!0),chmod:(e,t,s)=>{var n;if(!(n="string"==typeof e?me.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new me.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{me.chmod(e,t,!0)},fchmod:(e,t)=>{var s=me.getStream(e);if(!s)throw new me.ErrnoError(8);me.chmod(s.node,t)},chown:(e,t,s,n)=>{var i;if(!(i="string"==typeof e?me.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new me.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,s)=>{me.chown(e,t,s,!0)},fchown:(e,t,s)=>{var n=me.getStream(e);if(!n)throw new me.ErrnoError(8);me.chown(n.node,t,s)},truncate:(e,t)=>{if(t<0)throw new me.ErrnoError(28);var s;if(!(s="string"==typeof e?me.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new me.ErrnoError(63);if(me.isDir(s.mode))throw new me.ErrnoError(31);if(!me.isFile(s.mode))throw new me.ErrnoError(28);var n=me.nodePermissions(s,"w");if(n)throw new me.ErrnoError(n);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=me.getStream(e);if(!s)throw new me.ErrnoError(8);if(0==(2097155&s.flags))throw new me.ErrnoError(28);me.truncate(s.node,t)},utime:(e,t,s)=>{var n=me.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new me.ErrnoError(44);var n;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?me.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)n=e;else{e=pe.normalize(e);try{n=me.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var i=!1;if(64&t)if(n){if(128&t)throw new me.ErrnoError(20)}else n=me.mknod(e,s,0),i=!0;if(!n)throw new me.ErrnoError(44);if(me.isChrdev(n.mode)&&(t&=-513),65536&t&&!me.isDir(n.mode))throw new me.ErrnoError(54);if(!i){var a=me.mayOpen(n,t);if(a)throw new me.ErrnoError(a)}512&t&&!i&&me.truncate(n,0),t&=-131713;var r=me.createStream({node:n,path:me.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!h.logReadFiles||1&t||(me.readFiles||(me.readFiles={}),e in me.readFiles||(me.readFiles[e]=1)),r},close:e=>{if(me.isClosed(e))throw new me.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{me.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(me.isClosed(e))throw new me.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new me.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new me.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,n,i)=>{if(s>>>=0,n<0||i<0)throw new me.ErrnoError(28);if(me.isClosed(e))throw new me.ErrnoError(8);if(1==(2097155&e.flags))throw new me.ErrnoError(8);if(me.isDir(e.node.mode))throw new me.ErrnoError(31);if(!e.stream_ops.read)throw new me.ErrnoError(28);var a=void 0!==i;if(a){if(!e.seekable)throw new me.ErrnoError(70)}else i=e.position;var r=e.stream_ops.read(e,t,s,n,i);return a||(e.position+=r),r},write:(e,t,s,n,i,a)=>{if(s>>>=0,n<0||i<0)throw new me.ErrnoError(28);if(me.isClosed(e))throw new me.ErrnoError(8);if(0==(2097155&e.flags))throw new me.ErrnoError(8);if(me.isDir(e.node.mode))throw new me.ErrnoError(31);if(!e.stream_ops.write)throw new me.ErrnoError(28);e.seekable&&1024&e.flags&&me.llseek(e,0,2);var r=void 0!==i;if(r){if(!e.seekable)throw new me.ErrnoError(70)}else i=e.position;var l=e.stream_ops.write(e,t,s,n,i,a);return r||(e.position+=l),l},allocate:(e,t,s)=>{if(me.isClosed(e))throw new me.ErrnoError(8);if(t<0||s<=0)throw new me.ErrnoError(28);if(0==(2097155&e.flags))throw new me.ErrnoError(8);if(!me.isFile(e.node.mode)&&!me.isDir(e.node.mode))throw new me.ErrnoError(43);if(!e.stream_ops.allocate)throw new me.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,n,i)=>{if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new me.ErrnoError(2);if(1==(2097155&e.flags))throw new me.ErrnoError(2);if(!e.stream_ops.mmap)throw new me.ErrnoError(43);return e.stream_ops.mmap(e,t,s,n,i)},msync:(e,t,s,n,i)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,n,i):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new me.ErrnoError(59);return e.stream_ops.ioctl(e,t,s)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var s,n=me.open(e,t.flags),i=me.stat(e).size,a=new Uint8Array(i);return me.read(n,a,0,i,0),"utf8"===t.encoding?s=V(a,0):"binary"===t.encoding&&(s=a),me.close(n),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var n=me.open(e,s.flags,s.mode);if("string"==typeof t){var i=new Uint8Array(W(t)+1),a=Q(t,i,0,i.length);me.write(n,i,0,a,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");me.write(n,t,0,t.byteLength,void 0,s.canOwn)}me.close(n)},cwd:()=>me.currentPath,chdir:e=>{var t=me.lookupPath(e,{follow:!0});if(null===t.node)throw new me.ErrnoError(44);if(!me.isDir(t.node.mode))throw new me.ErrnoError(54);var s=me.nodePermissions(t.node,"x");if(s)throw new me.ErrnoError(s);me.currentPath=t.path},createDefaultDirectories:()=>{me.mkdir("/tmp"),me.mkdir("/home"),me.mkdir("/home/web_user")},createDefaultDevices:()=>{me.mkdir("/dev"),me.registerDevice(me.makedev(1,3),{read:()=>0,write:(e,t,s,n,i)=>n}),me.mkdev("/dev/null",me.makedev(1,3)),fe.register(me.makedev(5,0),fe.default_tty_ops),fe.register(me.makedev(6,0),fe.default_tty1_ops),me.mkdev("/dev/tty",me.makedev(5,0)),me.mkdev("/dev/tty1",me.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}return()=>le("randomDevice")}();me.createDevice("/dev","random",e),me.createDevice("/dev","urandom",e),me.mkdir("/dev/shm"),me.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{me.mkdir("/proc");var e=me.mkdir("/proc/self");me.mkdir("/proc/self/fd"),me.mount({mount:()=>{var t=me.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,n=me.getStream(s);if(!n)throw new me.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{h.stdin?me.createDevice("/dev","stdin",h.stdin):me.symlink("/dev/tty","/dev/stdin"),h.stdout?me.createDevice("/dev","stdout",null,h.stdout):me.symlink("/dev/tty","/dev/stdout"),h.stderr?me.createDevice("/dev","stderr",null,h.stderr):me.symlink("/dev/tty1","/dev/stderr"),me.open("/dev/stdin",0),me.open("/dev/stdout",1),me.open("/dev/stderr",1)},ensureErrnoError:()=>{me.ErrnoError||(me.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},me.ErrnoError.prototype=new Error,me.ErrnoError.prototype.constructor=me.ErrnoError,[44].forEach((e=>{me.genericErrors[e]=new me.ErrnoError(e),me.genericErrors[e].stack=""})))},staticInit:()=>{me.ensureErrnoError(),me.nameTable=new Array(4096),me.mount(ye,{},"/"),me.createDefaultDirectories(),me.createDefaultDevices(),me.createSpecialDirectories(),me.filesystems={MEMFS:ye}},init:(e,t,s)=>{me.init.initialized=!0,me.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=t||h.stdout,h.stderr=s||h.stderr,me.createStandardStreams()},quit:()=>{me.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=me.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(n=me.lookupPath(e,{follow:!t})).path}catch(e){}var s={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=me.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=n.path,s.parentObject=n.node,s.name=pe.basename(e),n=me.lookupPath(e,{follow:!t}),s.exists=!0,s.path=n.path,s.object=n.node,s.name=n.node.name,s.isRoot="/"===n.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,n)=>{e="string"==typeof e?e:me.getPath(e);for(var i=t.split("/").reverse();i.length;){var a=i.pop();if(a){var r=pe.join2(e,a);try{me.mkdir(r)}catch(e){}e=r}}return r},createFile:(e,t,s,n,i)=>{var a=pe.join2("string"==typeof e?e:me.getPath(e),t),r=me.getMode(n,i);return me.create(a,r)},createDataFile:(e,t,s,n,i,a)=>{var r=t;e&&(e="string"==typeof e?e:me.getPath(e),r=t?pe.join2(e,t):e);var l=me.getMode(n,i),o=me.create(r,l);if(s){if("string"==typeof s){for(var c=new Array(s.length),u=0,h=s.length;u{var i=pe.join2("string"==typeof e?e:me.getPath(e),t),a=me.getMode(!!s,!!n);me.createDevice.major||(me.createDevice.major=64);var r=me.makedev(me.createDevice.major++,0);return me.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,i,a)=>{for(var r=0,l=0;l{for(var r=0;r{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!p)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=de(p(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new me.ErrnoError(29)}},createLazyFile:(e,s,n,i,a)=>{function r(){this.lengthKnown=!1,this.chunks=[]}if(r.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,s=e/this.chunkSize|0;return this.getter(s)[t]}},r.prototype.setDataGetter=function(e){this.getter=e},r.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var t,s=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,r=1048576;i||(r=s);var l=this;l.setDataGetter((e=>{var t=e*r,i=(e+1)*r-1;if(i=Math.min(i,s-1),void 0===l.chunks[e]&&(l.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>s-1)throw new Error("only "+s+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",n,!1),s!==r&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+n+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):de(i.responseText||"",!0)})(t,i)),void 0===l.chunks[e])throw new Error("doXHR failed!");return l.chunks[e]})),!a&&s||(r=s=1,s=this.getter(0).length,r=s,D("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=s,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!v)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var l=new r;Object.defineProperties(l,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var o={isDevice:!1,contents:l}}else o={isDevice:!1,url:n};var c=me.createFile(e,s,o,i,a);o.contents?c.contents=o.contents:o.url&&(c.contents=null,c.url=o.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={};function h(e,t,s,n,i){var a=e.node.contents;if(i>=a.length)return 0;var r=Math.min(a.length-i,n);if(a.slice)for(var l=0;l{var t=c.stream_ops[e];u[e]=function(){return me.forceLoadFile(c),t.apply(null,arguments)}})),u.read=(e,t,s,n,i)=>(me.forceLoadFile(c),h(e,t,s,n,i)),u.mmap=(e,s,n,i,a)=>{me.forceLoadFile(c);var r=Ie();if(!r)throw new me.ErrnoError(48);return h(e,t(),r,s,n),{ptr:r,allocated:!0}},c.stream_ops=u,c},createPreloadedFile:(e,t,s,n,i,a,r,l,o,c)=>{var u=t?Ae.resolve(pe.join2(e,t)):e;function h(s){function h(s){c&&c(),l||me.createDataFile(e,t,s,n,i,o),a&&a(),re()}Browser.handledByPreloadPlugin(s,u,h,(()=>{r&&r(),re()}))||h(s)}ae(),"string"==typeof s?function(e,t,s,n){var i=n?"":"al "+e;A(e,(s=>{S(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),i&&re()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),i&&ae()}(s,(e=>h(e)),r):h(s)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=me.indexedDB();try{var i=n.open(me.DB_NAME(),me.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=()=>{D("creating db"),i.result.createObjectStore(me.DB_STORE_NAME)},i.onsuccess=()=>{var n=i.result.transaction([me.DB_STORE_NAME],"readwrite"),a=n.objectStore(me.DB_STORE_NAME),r=0,l=0,o=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=a.put(me.analyzePath(e).object.contents,e);t.onsuccess=()=>{++r+l==o&&c()},t.onerror=()=>{l++,r+l==o&&c()}})),n.onerror=s},i.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=me.indexedDB();try{var i=n.open(me.DB_NAME(),me.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=s,i.onsuccess=()=>{var n=i.result;try{var a=n.transaction([me.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var r=a.objectStore(me.DB_STORE_NAME),l=0,o=0,c=e.length;function u(){0==o?t():s()}e.forEach((e=>{var t=r.get(e);t.onsuccess=()=>{me.analyzePath(e).exists&&me.unlink(e),me.createDataFile(pe.dirname(e),pe.basename(e),t.result,!0,!0,!0),++l+o==c&&u()},t.onerror=()=>{o++,l+o==c&&u()}})),a.onerror=s},i.onerror=s}},ve={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(pe.isAbs(t))return t;var n;if(n=-100===e?me.cwd():ve.getStreamFromFD(e).path,0==t.length){if(!s)throw new me.ErrnoError(44);return n}return pe.join2(n,t)},doStat:function(e,t,s){try{var n=e(t)}catch(e){if(e&&e.node&&pe.normalize(t)!==pe.normalize(me.getPath(e.node)))return-54;throw e}r()[s>>>2]=n.dev,r()[s+8>>>2]=n.ino,r()[s+12>>>2]=n.mode,l()[s+16>>>2]=n.nlink,r()[s+20>>>2]=n.uid,r()[s+24>>>2]=n.gid,r()[s+28>>>2]=n.rdev,se=[n.size>>>0,(te=n.size,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+40>>>2]=se[0],r()[s+44>>>2]=se[1],r()[s+48>>>2]=4096,r()[s+52>>>2]=n.blocks;var i=n.atime.getTime(),a=n.mtime.getTime(),o=n.ctime.getTime();return se=[Math.floor(i/1e3)>>>0,(te=Math.floor(i/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+56>>>2]=se[0],r()[s+60>>>2]=se[1],l()[s+64>>>2]=i%1e3*1e3,se=[Math.floor(a/1e3)>>>0,(te=Math.floor(a/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+72>>>2]=se[0],r()[s+76>>>2]=se[1],l()[s+80>>>2]=a%1e3*1e3,se=[Math.floor(o/1e3)>>>0,(te=Math.floor(o/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+88>>>2]=se[0],r()[s+92>>>2]=se[1],l()[s+96>>>2]=o%1e3*1e3,se=[n.ino>>>0,(te=n.ino,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+104>>>2]=se[0],r()[s+108>>>2]=se[1],0},doMsync:function(e,t,s,i,a){if(!me.isFile(t.node.mode))throw new me.ErrnoError(43);if(2&i)return 0;e>>>=0;var r=n().slice(e,e+s);me.msync(t,r,a,s,i)},varargs:void 0,get:function(){return ve.varargs+=4,r()[ve.varargs-4>>>2]},getStr:function(e){return k(e)},getStreamFromFD:function(e){var t=me.getStream(e);if(!t)throw new me.ErrnoError(8);return t}};function we(e){if(g)return os(1,1,e);B=e,Z()||(Ee.terminateAllThreads(),h.onExit&&h.onExit(e),O=!0),y(e,new ue(e))}var ge=function(e,t){if(B=e,!t&&g)throw be(e),"unwind";we(e)},Ee={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){g?Ee.initWorker():Ee.initMainThread()},initMainThread:function(){for(var e=navigator.hardwareConcurrency;e--;)Ee.allocateUnusedWorker()},initWorker:function(){_=!1},setExitStatus:function(e){B=e},terminateAllThreads:function(){for(var e of Object.values(Ee.pthreads))Ee.returnWorkerToPool(e);for(var e of Ee.unusedWorkers)e.terminate();Ee.unusedWorkers=[]},returnWorkerToPool:function(e){var t=e.pthread_ptr;delete Ee.pthreads[t],Ee.unusedWorkers.push(e),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Ls(t)},receiveObjectTransfer:function(e){},threadInitTLS:function(){Ee.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:e=>new Promise((t=>{e.onmessage=s=>{var n,i=s.data,a=i.cmd;if(e.pthread_ptr&&(Ee.currentProxiedOperationCallerThread=e.pthread_ptr),i.targetThread&&i.targetThread!=_s()){var r=Ee.pthreads[i.targetThread];return r?r.postMessage(i,i.transferList):P('Internal error! Worker sent a message "'+a+'" to target pthread '+i.targetThread+", but that thread no longer exists!"),void(Ee.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===a?ts(i.queue):"spawnThread"===a?function(e){var t=Ee.getNewWorker();if(!t)return 6;Ee.runningWorkers.push(t),Ee.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var s={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};t.postMessage(s,e.transferList)}(i):"cleanupThread"===a?he(i.thread):"killThread"===a?function(e){var t=Ee.pthreads[e];delete Ee.pthreads[e],t.terminate(),Ls(e),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(t),1),t.pthread_ptr=0}(i.thread):"cancelThread"===a?(n=i.thread,Ee.pthreads[n].postMessage({cmd:"cancel"})):"loaded"===a?(e.loaded=!0,t(e)):"print"===a?D("Thread "+i.threadId+": "+i.text):"printErr"===a?P("Thread "+i.threadId+": "+i.text):"alert"===a?alert("Thread "+i.threadId+": "+i.text):"setimmediate"===i.target?e.postMessage(i):"callHandler"===a?h[i.handler](...i.args):a&&P("worker sent an unknown command "+a),Ee.currentProxiedOperationCallerThread=void 0},e.onerror=e=>{throw P("worker sent an error! "+e.filename+":"+e.lineno+": "+e.message),e};var n=[];for(var i of["onExit","onAbort","print","printErr"])h.hasOwnProperty(i)&&n.push(i);e.postMessage({cmd:"load",handlers:n,urlOrBlob:h.mainScriptUrlOrBlob||s,wasmMemory:R,wasmModule:C})})),loadWasmModuleToAllWorkers:function(e){if(g)return e();Promise.all(Ee.unusedWorkers.map(Ee.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker:function(){var e,t=T("web-ifc-mt.worker.js");e=new Worker(t),Ee.unusedWorkers.push(e)},getNewWorker:function(){return 0==Ee.unusedWorkers.length&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.pop()}};function Te(e){for(;e.length>0;)e.shift()(h)}function be(e){if(g)return os(2,0,e);try{ge(e)}catch(e){!function(e){if(e instanceof ue||"unwind"==e)return B;y(1,e)}(e)}}h.PThread=Ee,h.establishStackSpace=function(){var e=_s(),t=r()[e+52>>>2],s=r()[e+56>>>2];Hs(t,t-s),Gs(t)};var De=[];function Pe(e){var t=De[e];return t||(e>=De.length&&(De.length=e+1),De[e]=t=K.get(e)),t}function Re(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){l()[this.ptr+4>>>2]=e},this.get_type=function(){return l()[this.ptr+4>>>2]},this.set_destructor=function(e){l()[this.ptr+8>>>2]=e},this.get_destructor=function(){return l()[this.ptr+8>>>2]},this.set_refcount=function(e){r()[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,t()[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=t()[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,t()[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=t()[this.ptr+13>>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){Atomics.add(r(),this.ptr+0>>2,1)},this.release_ref=function(){return 1===Atomics.sub(r(),this.ptr+0>>2,1)},this.set_adjusted_ptr=function(e){l()[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return l()[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Vs(this.get_type()))return l()[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}h.invokeEntryPoint=function(e,t){var s=Pe(e)(t);Z()?Ee.setExitStatus(s):Ms(s)};var Ce="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking",_e={};function Be(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Oe(e){return this.fromWireType(r()[e>>>2])}var Se={},Ne={},xe={};function Le(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function Me(e,t){return e=Le(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Fe(e,t){var s=Me(t,(function(e){this.name=t,this.message=e;var s=new Error(e).stack;void 0!==s&&(this.stack=this.toString()+"\n"+s.replace(/^Error(:[^\n]*)?\n/,""))}));return s.prototype=Object.create(e.prototype),s.prototype.constructor=s,s.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},s}var He=void 0;function Ue(e){throw new He(e)}function Ge(e,t,s){function n(t){var n=s(t);n.length!==e.length&&Ue("Mismatched type converter count");for(var i=0;i{Ne.hasOwnProperty(e)?i[t]=Ne[e]:(a.push(e),Se.hasOwnProperty(e)||(Se[e]=[]),Se[e].push((()=>{i[t]=Ne[e],++r===a.length&&n(i)})))})),0===a.length&&n(i)}var je={};function Ve(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var ke=void 0;function Qe(e){for(var t="",s=e;n()[s>>>0];)t+=ke[n()[s++>>>0]];return t}var We=void 0;function ze(e){throw new We(e)}function Ke(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||ze('type "'+n+'" must have a positive integer typeid pointer'),Ne.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ze("Cannot register type '"+n+"' twice")}if(Ne[e]=t,delete xe[e],Se.hasOwnProperty(e)){var i=Se[e];delete Se[e],i.forEach((e=>e()))}}function Ye(e){if(!(this instanceof yt))return!1;if(!(e instanceof yt))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&s===i}function Xe(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function qe(e){ze(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Je=!1;function Ze(e){}function $e(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function et(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var n=et(e,t,s.baseClass);return null===n?null:s.downcast(n)}var tt={};function st(){return Object.keys(ot).length}function nt(){var e=[];for(var t in ot)ot.hasOwnProperty(t)&&e.push(ot[t]);return e}var it=[];function at(){for(;it.length;){var e=it.pop();e.$$.deleteScheduled=!1,e.delete()}}var rt=void 0;function lt(e){rt=e,it.length&&rt&&rt(at)}var ot={};function ct(e,t){return t=function(e,t){for(void 0===t&&ze("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),ot[t]}function ut(e,t){return t.ptrType&&t.ptr||Ue("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Ue("Both smartPtrType and smartPtr must be specified"),t.count={value:1},pt(Object.create(e,{$$:{value:t}}))}function ht(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=ct(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var n=s.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?ut(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ut(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,r=this.registeredClass.getActualType(t),l=tt[r];if(!l)return i.call(this);a=this.isConst?l.constPointerType:l.pointerType;var o=et(t,this.registeredClass,a.registeredClass);return null===o?i.call(this):this.isSmartPointer?ut(a.registeredClass.instancePrototype,{ptrType:a,ptr:o,smartPtrType:this,smartPtr:e}):ut(a.registeredClass.instancePrototype,{ptrType:a,ptr:o})}function pt(e){return"undefined"==typeof FinalizationRegistry?(pt=e=>e,e):(Je=new FinalizationRegistry((e=>{$e(e.$$)})),Ze=e=>Je.unregister(e),(pt=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};Je.register(e,s,e)}return e})(e))}function At(){if(this.$$.ptr||qe(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=pt(Object.create(Object.getPrototypeOf(this),{$$:{value:Xe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function dt(){this.$$.ptr||qe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),Ze(this),$e(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ft(){return!this.$$.ptr}function It(){return this.$$.ptr||qe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),it.push(this),1===it.length&&rt&&rt(at),this.$$.deleteScheduled=!0,this}function yt(){}function mt(e,t,s){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ze("Function '"+s+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function vt(e,t,s){h.hasOwnProperty(e)?((void 0===s||void 0!==h[e].overloadTable&&void 0!==h[e].overloadTable[s])&&ze("Cannot register public name '"+e+"' twice"),mt(h,e,e),h.hasOwnProperty(s)&&ze("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),h[e].overloadTable[s]=t):(h[e]=t,void 0!==s&&(h[e].numArguments=s))}function wt(e,t,s,n,i,a,r,l){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=r,this.downcast=l,this.pureVirtualFunctions=[]}function gt(e,t,s){for(;t!==s;)t.upcast||ze("Expected null or instance of "+s.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Et(e,t){if(null===t)return this.isReference&&ze("null is not a valid "+this.name),0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return gt(t.$$.ptr,s,this.registeredClass)}function Tt(e,t){var s;if(null===t)return this.isReference&&ze("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ze("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(s=gt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ze("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ze("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:s=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)s=t.$$.smartPtr;else{var i=t.clone();s=this.rawShare(s,Vt.toHandle((function(){i.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ze("Unsupporting sharing policy")}return s}function bt(e,t){if(null===t)return this.isReference&&ze("null is not a valid "+this.name),0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ze("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return gt(t.$$.ptr,s,this.registeredClass)}function Dt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Pt(e){this.rawDestructor&&this.rawDestructor(e)}function Rt(e){null!==e&&e.delete()}function Ct(e,t,s,n,i,a,r,l,o,c,u){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=r,this.rawGetPointee=l,this.rawConstructor=o,this.rawShare=c,this.rawDestructor=u,i||void 0!==t.baseClass?this.toWireType=Tt:n?(this.toWireType=Et,this.destructorFunction=null):(this.toWireType=bt,this.destructorFunction=null)}function _t(e,t,s){h.hasOwnProperty(e)||Ue("Replacing nonexistant public symbol"),void 0!==h[e].overloadTable&&void 0!==s?h[e].overloadTable[s]=t:(h[e]=t,h[e].argCount=s)}function Bt(e,t,s){return e.includes("j")?function(e,t,s){var n=h["dynCall_"+e];return s&&s.length?n.apply(null,[t].concat(s)):n.call(null,t)}(e,t,s):Pe(t).apply(null,s)}function Ot(e,t){var s,n,i,a=(e=Qe(e)).includes("j")?(s=e,n=t,i=[],function(){return i.length=0,Object.assign(i,arguments),Bt(s,n,i)}):Pe(t);return"function"!=typeof a&&ze("unknown function pointer with signature "+e+": "+t),a}var St=void 0;function Nt(e){var t=Bs(e),s=Qe(t);return Fs(t),s}function xt(e,t){var s=[],n={};throw t.forEach((function e(t){n[t]||Ne[t]||(xe[t]?xe[t].forEach(e):(s.push(t),n[t]=!0))})),new St(e+": "+s.map(Nt).join([", "]))}function Lt(e,t){for(var s=[],n=0;n>>2]);return s}function Mt(e,t,s,n,i){var a=t.length;a<2&&ze("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==s,l=!1,o=1;o0?", ":"")+h),p+=(c?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",l)p+="runDestructors(destructors);\n";else for(o=r?1:2;o4&&0==--Ht[e].refcount&&(Ht[e]=void 0,Ft.push(e))}function Gt(){for(var e=0,t=5;t(e||ze("Cannot use deleted val. handle = "+e),Ht[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ft.length?Ft.pop():Ht.length;return Ht[t]={refcount:1,value:e},t}}};function kt(e,s,o){switch(s){case 0:return function(e){var s=o?t():n();return this.fromWireType(s[e>>>0])};case 1:return function(e){var t=o?i():a();return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=o?r():l();return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Qt(e,t){var s=Ne[e];return void 0===s&&ze(t+" has unknown type "+Nt(e)),s}function Wt(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function zt(e,t){switch(t){case 2:return function(e){return this.fromWireType((R.buffer!=N.buffer&&z(),U)[e>>>2])};case 3:return function(e){return this.fromWireType(o()[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Kt(e,s,o){switch(s){case 0:return o?function(e){return t()[e>>>0]}:function(e){return n()[e>>>0]};case 1:return o?function(e){return i()[e>>>1]}:function(e){return a()[e>>>1]};case 2:return o?function(e){return r()[e>>>2]}:function(e){return l()[e>>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Yt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Xt(e,t){for(var s=e,r=s>>1,l=r+t/2;!(r>=l)&&a()[r>>>0];)++r;if((s=r<<1)-e>32&&Yt)return Yt.decode(n().slice(e,s));for(var o="",c=0;!(c>=t/2);++c){var u=i()[e+2*c>>>1];if(0==u)break;o+=String.fromCharCode(u)}return o}function qt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var n=t,a=(s-=2)<2*e.length?s/2:e.length,r=0;r>>1]=l,t+=2}return i()[t>>>1]=0,t-n}function Jt(e){return 2*e.length}function Zt(e,t){for(var s=0,n="";!(s>=t/4);){var i=r()[e+4*s>>>2];if(0==i)break;if(++s,i>=65536){var a=i-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(i)}return n}function $t(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var n=t>>>=0,i=n+s-4,a=0;a=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++a)),r()[t>>>2]=l,(t+=4)+4>i)break}return r()[t>>>2]=0,t-n}function es(e){for(var t=0,s=0;s=55296&&n<=57343&&++s,t+=4}return t}function ts(e){Atomics.store(r(),e>>2,1),_s()&&xs(e),Atomics.compareExchange(r(),e>>2,1,0)}h.executeNotifiedProxyingQueue=ts;var ss,ns={};function is(e){var t=ns[e];return void 0===t?Qe(e):t}function as(){return"object"==typeof globalThis?globalThis:Function("return this")()}function rs(e){rs.shown||(rs.shown={}),rs.shown[e]||(rs.shown[e]=1,P(e))}function ls(e){var t=Us(),s=e();return Gs(t),s}function os(e,t){var s=arguments.length-2,n=arguments;return ls((()=>{for(var i=s,a=js(8*i),r=a>>3,l=0;l>>0]=c}return Ns(e,i,a,t)}))}ss=()=>performance.timeOrigin+performance.now();var cs=[];function us(e){var t=R.buffer;try{return R.grow(e-t.byteLength+65535>>>16),z(),1}catch(e){}}var hs={};function ps(){if(!ps.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:I||"./this.program"};for(var t in hs)void 0===hs[t]?delete e[t]:e[t]=hs[t];var s=[];for(var t in e)s.push(t+"="+e[t]);ps.strings=s}return ps.strings}function As(e,s){if(g)return os(3,1,e,s);var n=0;return ps().forEach((function(i,a){var r=s+n;l()[e+4*a>>>2]=r,function(e,s,n){for(var i=0;i>>0]=e.charCodeAt(i);n||(t()[s>>>0]=0)}(i,r),n+=i.length+1})),0}function ds(e,t){if(g)return os(4,1,e,t);var s=ps();l()[e>>>2]=s.length;var n=0;return s.forEach((function(e){n+=e.length+1})),l()[t>>>2]=n,0}function fs(e){if(g)return os(5,1,e);try{var t=ve.getStreamFromFD(e);return me.close(t),0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function Is(e,s,n,i){if(g)return os(6,1,e,s,n,i);try{var a=function(e,s,n,i){for(var a=0,r=0;r>>2],c=l()[s+4>>>2];s+=8;var u=me.read(e,t(),o,c,i);if(u<0)return-1;if(a+=u,u>>2]=a,0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function ys(e,t,s,n,i){if(g)return os(7,1,e,t,s,n,i);try{var a=(c=s)+2097152>>>0<4194305-!!(o=t)?(o>>>0)+4294967296*c:NaN;if(isNaN(a))return 61;var l=ve.getStreamFromFD(e);return me.llseek(l,a,n),se=[l.position>>>0,(te=l.position,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[i>>>2]=se[0],r()[i+4>>>2]=se[1],l.getdents&&0===a&&0===n&&(l.getdents=null),0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}var o,c}function ms(e,s,n,i){if(g)return os(8,1,e,s,n,i);try{var a=function(e,s,n,i){for(var a=0,r=0;r>>2],c=l()[s+4>>>2];s+=8;var u=me.write(e,t(),o,c,i);if(u<0)return-1;a+=u,void 0!==i&&(i+=u)}return a}(ve.getStreamFromFD(e),s,n);return l()[i>>>2]=a,0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function vs(e){return e%4==0&&(e%100!=0||e%400==0)}var ws=[31,29,31,30,31,30,31,31,30,31,30,31],gs=[31,28,31,30,31,30,31,31,30,31,30,31];function Es(e,s,n,i){var a=r()[i+40>>>2],l={tm_sec:r()[i>>>2],tm_min:r()[i+4>>>2],tm_hour:r()[i+8>>>2],tm_mday:r()[i+12>>>2],tm_mon:r()[i+16>>>2],tm_year:r()[i+20>>>2],tm_wday:r()[i+24>>>2],tm_yday:r()[i+28>>>2],tm_isdst:r()[i+32>>>2],tm_gmtoff:r()[i+36>>>2],tm_zone:a?k(a):""},o=k(n),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in c)o=o.replace(new RegExp(u,"g"),c[u]);var h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p=["January","February","March","April","May","June","July","August","September","October","November","December"];function A(e,t,s){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=s(e.getFullYear()-t.getFullYear()))&&0===(n=s(e.getMonth()-t.getMonth()))&&(n=s(e.getDate()-t.getDate())),n}function I(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function y(e){var t=function(e,t){for(var s=new Date(e.getTime());t>0;){var n=vs(s.getFullYear()),i=s.getMonth(),a=(n?ws:gs)[i];if(!(t>a-s.getDate()))return s.setDate(s.getDate()+t),s;t-=a-s.getDate()+1,s.setDate(1),i<11?s.setMonth(i+1):(s.setMonth(0),s.setFullYear(s.getFullYear()+1))}return s}(new Date(e.tm_year+1900,0,1),e.tm_yday),s=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=I(s),a=I(n);return f(i,t)<=0?f(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var m={"%a":function(e){return h[e.tm_wday].substring(0,3)},"%A":function(e){return h[e.tm_wday]},"%b":function(e){return p[e.tm_mon].substring(0,3)},"%B":function(e){return p[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return A(e.tm_mday,2," ")},"%g":function(e){return y(e).toString().substring(2)},"%G":function(e){return y(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(e){return d(e.tm_mday+function(e,t){for(var s=0,n=0;n<=t;s+=e[n++]);return s}(vs(e.tm_year+1900)?ws:gs,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return d(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var s=(e.tm_wday+371-e.tm_yday)%7;4==s||3==s&&vs(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&vs(e.tm_year%400-1))&&t++}return d(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,s=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(s?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var u in o=o.replace(/%%/g,"\0\0"),m)o.includes(u)&&(o=o.replace(new RegExp(u,"g"),m[u](l)));var v,w,g=de(o=o.replace(/\0\0/g,"%"),!1);return g.length>s?0:(v=g,w=e,t().set(v,w>>>0),g.length-1)}Ee.init();var Ts=function(e,t,s,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=me.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=n},bs=365,Ds=146;Object.defineProperties(Ts.prototype,{read:{get:function(){return(this.mode&bs)===bs},set:function(e){e?this.mode|=bs:this.mode&=-366}},write:{get:function(){return(this.mode&Ds)===Ds},set:function(e){e?this.mode|=Ds:this.mode&=-147}},isFolder:{get:function(){return me.isDir(this.mode)}},isDevice:{get:function(){return me.isChrdev(this.mode)}}}),me.FSNode=Ts,me.staticInit(),He=h.InternalError=Fe(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ke=e}(),We=h.BindingError=Fe(Error,"BindingError"),yt.prototype.isAliasOf=Ye,yt.prototype.clone=At,yt.prototype.delete=dt,yt.prototype.isDeleted=ft,yt.prototype.deleteLater=It,h.getInheritedInstanceCount=st,h.getLiveInheritedInstances=nt,h.flushPendingDeletes=at,h.setDelayFunction=lt,Ct.prototype.getPointee=Dt,Ct.prototype.destructor=Pt,Ct.prototype.argPackAdvance=8,Ct.prototype.readValueFromPointer=Oe,Ct.prototype.deleteObject=Rt,Ct.prototype.fromWireType=ht,St=h.UnboundTypeError=Fe(Error,"UnboundTypeError"),h.count_emval_handles=Gt,h.get_first_emval=jt;var Ps=[null,we,be,As,ds,fs,Is,ys,ms],Rs={g:function(e,t,s){throw new Re(e).init(t,s),e},T:function(e){Os(e,!v,1,!m),Ee.threadInitTLS()},J:function(e){g?postMessage({cmd:"cleanupThread",thread:e}):he(e)},X:function(e){},_:function(e){le(Ce)},Z:function(e,t){le(Ce)},da:function(e){var t=_e[e];delete _e[e];var s=t.elements,n=s.length,i=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),a=t.rawConstructor,r=t.rawDestructor;Ge([e],i,(function(e){return s.forEach(((t,s)=>{var i=e[s],a=t.getter,r=t.getterContext,l=e[s+n],o=t.setter,c=t.setterContext;t.read=e=>i.fromWireType(a(r,e)),t.write=(e,t)=>{var s=[];o(c,e,l.toWireType(s,t)),Be(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),i=0;i>>o])},destructorFunction:null})},p:function(e,t,s,n,i,a,r,l,o,c,u,h,p){u=Qe(u),a=Ot(i,a),l&&(l=Ot(r,l)),c&&(c=Ot(o,c)),p=Ot(h,p);var A=Le(u);vt(A,(function(){xt("Cannot construct "+u+" due to unbound types",[n])})),Ge([e,t,s],n?[n]:[],(function(t){var s,i;t=t[0],i=n?(s=t.registeredClass).instancePrototype:yt.prototype;var r=Me(A,(function(){if(Object.getPrototypeOf(this)!==o)throw new We("Use 'new' to construct "+u);if(void 0===h.constructor_body)throw new We(u+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new We("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(h.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),o=Object.create(i,{constructor:{value:r}});r.prototype=o;var h=new wt(u,r,o,p,s,a,l,c),d=new Ct(u,h,!0,!1,!1),f=new Ct(u+"*",h,!1,!1,!1),I=new Ct(u+" const*",h,!1,!0,!1);return tt[e]={pointerType:f,constPointerType:I},_t(A,r),[d,f,I]}))},o:function(e,t,s,n,i,a){S(t>0);var r=Lt(t,s);i=Ot(n,i),Ge([],[e],(function(e){var s="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new We("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=()=>{xt("Cannot construct "+e.name+" due to unbound types",r)},Ge([],r,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Mt(s,n,null,i,a),[]})),[]}))},c:function(e,t,s,n,i,a,r,l){var o=Lt(s,n);t=Qe(t),a=Ot(i,a),Ge([],[e],(function(e){var n=(e=e[0]).name+"."+t;function i(){xt("Cannot call "+n+" due to unbound types",o)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),l&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===s-2?(i.argCount=s-2,i.className=e.name,c[t]=i):(mt(c,t,n),c[t].overloadTable[s-2]=i),Ge([],o,(function(i){var l=Mt(n,i,e,a,r);return void 0===c[t].overloadTable?(l.argCount=s-2,c[t]=l):c[t].overloadTable[s-2]=l,[]})),[]}))},aa:function(e,t){Ke(e,{name:t=Qe(t),fromWireType:function(e){var t=Vt.toValue(e);return Ut(e),t},toWireType:function(e,t){return Vt.toHandle(t)},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:null})},D:function(e,t,s,n){var i=Ve(s);function a(){}t=Qe(t),a.values={},Ke(e,{name:t,constructor:a,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:kt(t,i,n),destructorFunction:null}),vt(t,a)},t:function(e,t,s){var n=Qt(e,"enum");t=Qe(t);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:s},constructor:{value:Me(n.name+"_"+t,(function(){}))}});i.values[s]=a,i[t]=a},B:function(e,t,s){var n=Ve(s);Ke(e,{name:t=Qe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:zt(t,n),destructorFunction:null})},d:function(e,t,s,n,i,a){var r=Lt(t,s);e=Qe(e),i=Ot(n,i),vt(e,(function(){xt("Cannot call "+e+" due to unbound types",r)}),t-1),Ge([],r,(function(s){var n=[s[0],null].concat(s.slice(1));return _t(e,Mt(e,n,null,i,a),t-1),[]}))},s:function(e,t,s,n,i){t=Qe(t);var a=Ve(s),r=e=>e;if(0===n){var l=32-8*s;r=e=>e<>>l}var o=t.includes("unsigned");Ke(e,{name:t,fromWireType:r,toWireType:o?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:Kt(t,a,0!==n),destructorFunction:null})},i:function(e,t,s){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){e>>=2;var t=l(),s=t[e>>>0],i=t[e+1>>>0];return new n(t.buffer,i,s)}Ke(e,{name:s=Qe(s),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},C:function(e,t){var s="std::string"===(t=Qe(t));Ke(e,{name:t,fromWireType:function(e){var t,i=l()[e>>>2],a=e+4;if(s)for(var r=a,o=0;o<=i;++o){var c=a+o;if(o==i||0==n()[c>>>0]){var u=k(r,c-r);void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),r=c+1}}else{var h=new Array(i);for(o=0;o>>0]);t=h.join("")}return Fs(e),t},toWireType:function(e,t){var i;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var a="string"==typeof t;a||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ze("Cannot pass non-string to std::string"),i=s&&a?W(t):t.length;var r,o,c=Cs(4+i+1),u=c+4;if(u>>>=0,l()[c>>>2]=i,s&&a)r=u,o=i+1,Q(t,n(),r,o);else if(a)for(var h=0;h255&&(Fs(u),ze("String has UTF-16 code units that do not fit in 8 bits")),n()[u+h>>>0]=p}else for(h=0;h>>0]=t[h];return null!==e&&e.push(Fs,c),c},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:function(e){Fs(e)}})},x:function(e,t,s){var n,i,r,o,c;s=Qe(s),2===t?(n=Xt,i=qt,o=Jt,r=()=>a(),c=1):4===t&&(n=Zt,i=$t,o=es,r=()=>l(),c=2),Ke(e,{name:s,fromWireType:function(e){for(var s,i=l()[e>>>2],a=r(),o=e+4,u=0;u<=i;++u){var h=e+4+u*t;if(u==i||0==a[h>>>c]){var p=n(o,h-o);void 0===s?s=p:(s+=String.fromCharCode(0),s+=p),o=h+t}}return Fs(e),s},toWireType:function(e,n){"string"!=typeof n&&ze("Cannot pass non-string to C++ string type "+s);var a=o(n),r=Cs(4+a+t);return r>>>=0,l()[r>>>2]=a>>c,i(n,r+4,a+t),null!==e&&e.push(Fs,r),r},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:function(e){Fs(e)}})},ea:function(e,t,s,n,i,a){_e[e]={name:Qe(t),rawConstructor:Ot(s,n),rawDestructor:Ot(i,a),elements:[]}},j:function(e,t,s,n,i,a,r,l,o){_e[e].elements.push({getterReturnType:t,getter:Ot(s,n),getterContext:i,setterArgumentType:a,setter:Ot(r,l),setterContext:o})},r:function(e,t,s,n,i,a){je[e]={name:Qe(t),rawConstructor:Ot(s,n),rawDestructor:Ot(i,a),fields:[]}},f:function(e,t,s,n,i,a,r,l,o,c){je[e].fields.push({fieldName:Qe(t),getterReturnType:s,getter:Ot(n,i),getterContext:a,setterArgumentType:r,setter:Ot(l,o),setterContext:c})},ca:function(e,t){Ke(e,{isVoid:!0,name:t=Qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},Y:function(e){P(k(e))},V:function(e,t,s,n){if(e==t)setTimeout((()=>ts(n)));else if(g)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:n});else{var i=Ee.pthreads[e];if(!i)return;i.postMessage({cmd:"processProxyingQueue",queue:n})}return 1},S:function(e,t,s){return-1},n:function(e,t,s){e=Vt.toValue(e),t=Qt(t,"emval::as");var n=[],i=Vt.toHandle(n);return l()[s>>>2]=i,t.toWireType(n,e)},z:function(e,t,s,n){e=Vt.toValue(e);for(var i=function(e,t){for(var s=new Array(e),n=0;n>>2],"parameter "+n);return s}(t,s),a=new Array(t),r=0;r4&&(Ht[e].refcount+=1)},ga:function(e,t){return(e=Vt.toValue(e))instanceof(t=Vt.toValue(t))},y:function(e){return"number"==typeof(e=Vt.toValue(e))},E:function(e){return"string"==typeof(e=Vt.toValue(e))},fa:function(){return Vt.toHandle([])},h:function(e){return Vt.toHandle(is(e))},w:function(){return Vt.toHandle({})},m:function(e){Be(Vt.toValue(e)),Ut(e)},k:function(e,t,s){e=Vt.toValue(e),t=Vt.toValue(t),s=Vt.toValue(s),e[t]=s},e:function(e,t){var s=(e=Qt(e,"_emval_take_value")).readValueFromPointer(t);return Vt.toHandle(s)},A:function(){le("")},U:function(){v||rs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},v:ss,W:function(e,t,s){n().copyWithin(e>>>0,t>>>0,t+s>>>0)},R:function(e,t,s){cs.length=t;for(var n=s>>3,i=0;i>>0];return Ps[e].apply(null,cs)},P:function(e){var t=n().length;if((e>>>=0)<=t)return!1;var s,i,a=4294901760;if(e>a)return!1;for(var r=1;r<=4;r*=2){var l=t*(1+.2/r);if(l=Math.min(l,e+100663296),us(Math.min(a,(s=Math.max(e,l))+((i=65536)-s%i)%i)))return!0}return!1},$:function(){throw"unwind"},L:As,M:ds,I:ge,N:fs,O:Is,G:ys,Q:ms,a:R||h.wasmMemory,K:function(e,t,s,n,i){return Es(e,t,s,n)}};!function(){var e={a:Rs};function t(e,t){var s,n,i=e.exports;h.asm=i,s=h.asm.ka,Ee.tlsInitFunctions.push(s),K=h.asm.ia,n=h.asm.ha,q.unshift(n),C=t,Ee.loadWasmModuleToAllWorkers((()=>re()))}function s(e){t(e.instance,e.module)}function n(t){return(b||!m&&!v||"function"!=typeof fetch?Promise.resolve().then((function(){return ce(ee)})):fetch(ee,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ee+"'";return e.arrayBuffer()})).catch((function(){return ce(ee)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){P("failed to asynchronously prepare wasm: "+e),le(e)}))}if(ae(),h.instantiateWasm)try{return h.instantiateWasm(e,t)}catch(e){P("Module.instantiateWasm callback failed with error: "+e),u(e)}(b||"function"!=typeof WebAssembly.instantiateStreaming||oe(ee)||"function"!=typeof fetch?n(s):fetch(ee,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return P("wasm streaming compile failed: "+e),P("falling back to ArrayBuffer instantiation"),n(s)}))}))).catch(u)}();var Cs=function(){return(Cs=h.asm.ja).apply(null,arguments)};h.__emscripten_tls_init=function(){return(h.__emscripten_tls_init=h.asm.ka).apply(null,arguments)};var _s=h._pthread_self=function(){return(_s=h._pthread_self=h.asm.la).apply(null,arguments)},Bs=h.___getTypeName=function(){return(Bs=h.___getTypeName=h.asm.ma).apply(null,arguments)};h.__embind_initialize_bindings=function(){return(h.__embind_initialize_bindings=h.asm.na).apply(null,arguments)};var Os=h.__emscripten_thread_init=function(){return(Os=h.__emscripten_thread_init=h.asm.oa).apply(null,arguments)};h.__emscripten_thread_crashed=function(){return(h.__emscripten_thread_crashed=h.asm.pa).apply(null,arguments)};var Ss,Ns=function(){return(Ns=h.asm.qa).apply(null,arguments)},xs=h.__emscripten_proxy_execute_task_queue=function(){return(xs=h.__emscripten_proxy_execute_task_queue=h.asm.ra).apply(null,arguments)},Ls=function(){return(Ls=h.asm.sa).apply(null,arguments)},Ms=h.__emscripten_thread_exit=function(){return(Ms=h.__emscripten_thread_exit=h.asm.ta).apply(null,arguments)},Fs=function(){return(Fs=h.asm.ua).apply(null,arguments)},Hs=function(){return(Hs=h.asm.va).apply(null,arguments)},Us=function(){return(Us=h.asm.wa).apply(null,arguments)},Gs=function(){return(Gs=h.asm.xa).apply(null,arguments)},js=function(){return(js=h.asm.ya).apply(null,arguments)},Vs=function(){return(Vs=h.asm.za).apply(null,arguments)};function ks(){if(!(ne>0)){if(g)return c(h),$(),void startWorker(h);!function(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)e=h.preRun.shift(),X.unshift(e);var e;Te(X)}(),ne>0||(h.setStatus?(h.setStatus("Running..."),setTimeout((function(){setTimeout((function(){h.setStatus("")}),1),e()}),1)):e())}function e(){Ss||(Ss=!0,h.calledRun=!0,O||($(),c(h),h.onRuntimeInitialized&&h.onRuntimeInitialized(),function(){if(!g){if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)e=h.postRun.shift(),J.unshift(e);var e;Te(J)}}()))}}if(h.dynCall_jiji=function(){return(h.dynCall_jiji=h.asm.Aa).apply(null,arguments)},h.dynCall_viijii=function(){return(h.dynCall_viijii=h.asm.Ba).apply(null,arguments)},h.dynCall_iiiiij=function(){return(h.dynCall_iiiiij=h.asm.Ca).apply(null,arguments)},h.dynCall_iiiiijj=function(){return(h.dynCall_iiiiijj=h.asm.Da).apply(null,arguments)},h.dynCall_iiiiiijj=function(){return(h.dynCall_iiiiiijj=h.asm.Ea).apply(null,arguments)},h.keepRuntimeAlive=Z,h.wasmMemory=R,h.ExitStatus=ue,h.PThread=Ee,ie=function e(){Ss||ks(),Ss||(ie=e)},h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.pop()();return ks(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=n:"function"==typeof define&&define.amd?define([],(function(){return n})):"object"==typeof e&&(e.WebIFCWasm=n)}}),Tb=wb({"dist/web-ifc.js"(e,t){var s,n=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){var t,n,i=void 0!==e?e:{};i.ready=new Promise((function(e,s){t=e,n=s}));var a,r,l=Object.assign({},i),o="./this.program",c="";"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),s&&(c=s),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},r=(e,t,s)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):s()},n.onerror=s,n.send(null)};var u,h,p=i.print||console.log.bind(console),A=i.printErr||console.warn.bind(console);Object.assign(i,l),l=null,i.arguments,i.thisProgram&&(o=i.thisProgram),i.quit,i.wasmBinary&&(u=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&V("no native wasm support detected");var d=!1;function f(e,t){e||V(t)}var I,y,m,v,w,g,E,T,b,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,t,s){for(var n=(t>>>=0)+s,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&D)return D.decode(e.subarray(t,i));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&r)<<6|l)}else a+=String.fromCharCode(r)}return a}function R(e,t){return(e>>>=0)?P(y,e,t):""}function C(e,t,s,n){if(!(n>0))return 0;for(var i=s>>>=0,a=s+n-1,r=0;r=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++r)),l<=127){if(s>=a)break;t[s++>>>0]=l}else if(l<=2047){if(s+1>=a)break;t[s++>>>0]=192|l>>6,t[s++>>>0]=128|63&l}else if(l<=65535){if(s+2>=a)break;t[s++>>>0]=224|l>>12,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}else{if(s+3>=a)break;t[s++>>>0]=240|l>>18,t[s++>>>0]=128|l>>12&63,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}}return t[s>>>0]=0,s-i}function _(e){for(var t=0,s=0;s=55296&&n<=57343?(t+=4,++s):t+=3}return t}function B(){var e=h.buffer;i.HEAP8=I=new Int8Array(e),i.HEAP16=m=new Int16Array(e),i.HEAP32=w=new Int32Array(e),i.HEAPU8=y=new Uint8Array(e),i.HEAPU16=v=new Uint16Array(e),i.HEAPU32=g=new Uint32Array(e),i.HEAPF32=E=new Float32Array(e),i.HEAPF64=T=new Float64Array(e)}var O,S,N,x,L=[],M=[],F=[],H=0,U=null;function G(e){H++,i.monitorRunDependencies&&i.monitorRunDependencies(H)}function j(e){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&U){var t=U;U=null,t()}}function V(e){i.onAbort&&i.onAbort(e),A(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw n(t),t}function k(e){return e.startsWith("data:application/octet-stream;base64,")}function Q(e){try{if(e==O&&u)return new Uint8Array(u);throw"both async and sync fetching of the wasm failed"}catch(e){V(e)}}function W(e){for(;e.length>0;)e.shift()(i)}function z(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){g[this.ptr+4>>>2]=e},this.get_type=function(){return g[this.ptr+4>>>2]},this.set_destructor=function(e){g[this.ptr+8>>>2]=e},this.get_destructor=function(){return g[this.ptr+8>>>2]},this.set_refcount=function(e){w[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,I[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=I[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,I[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=I[this.ptr+13>>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=w[this.ptr>>>2];w[this.ptr>>>2]=e+1},this.release_ref=function(){var e=w[this.ptr>>>2];return w[this.ptr>>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){g[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return g[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Kt(this.get_type()))return g[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}k(O="web-ifc.wasm")||(S=O,O=i.locateFile?i.locateFile(S,c):c+S);var K={};function Y(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function X(e){return this.fromWireType(w[e>>>2])}var q={},J={},Z={};function $(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function ee(e,t){return e=$(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function te(e,t){var s=ee(t,(function(e){this.name=t,this.message=e;var s=new Error(e).stack;void 0!==s&&(this.stack=this.toString()+"\n"+s.replace(/^Error(:[^\n]*)?\n/,""))}));return s.prototype=Object.create(e.prototype),s.prototype.constructor=s,s.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},s}var se=void 0;function ne(e){throw new se(e)}function ie(e,t,s){function n(t){var n=s(t);n.length!==e.length&&ne("Mismatched type converter count");for(var i=0;i{J.hasOwnProperty(e)?i[t]=J[e]:(a.push(e),q.hasOwnProperty(e)||(q[e]=[]),q[e].push((()=>{i[t]=J[e],++r===a.length&&n(i)})))})),0===a.length&&n(i)}var ae={};function re(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var le=void 0;function oe(e){for(var t="",s=e;y[s>>>0];)t+=le[y[s++>>>0]];return t}var ce=void 0;function ue(e){throw new ce(e)}function he(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||ue('type "'+n+'" must have a positive integer typeid pointer'),J.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ue("Cannot register type '"+n+"' twice")}if(J[e]=t,delete Z[e],q.hasOwnProperty(e)){var i=q[e];delete q[e],i.forEach((e=>e()))}}function pe(e){if(!(this instanceof Le))return!1;if(!(e instanceof Le))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&s===i}function Ae(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function de(e){ue(e.$$.ptrType.registeredClass.name+" instance already deleted")}var fe=!1;function Ie(e){}function ye(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function me(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var n=me(e,t,s.baseClass);return null===n?null:s.downcast(n)}var ve={};function we(){return Object.keys(Pe).length}function ge(){var e=[];for(var t in Pe)Pe.hasOwnProperty(t)&&e.push(Pe[t]);return e}var Ee=[];function Te(){for(;Ee.length;){var e=Ee.pop();e.$$.deleteScheduled=!1,e.delete()}}var be=void 0;function De(e){be=e,Ee.length&&be&&be(Te)}var Pe={};function Re(e,t){return t=function(e,t){for(void 0===t&&ue("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),Pe[t]}function Ce(e,t){return t.ptrType&&t.ptr||ne("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&ne("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Be(Object.create(e,{$$:{value:t}}))}function _e(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=Re(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var n=s.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?Ce(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Ce(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,r=this.registeredClass.getActualType(t),l=ve[r];if(!l)return i.call(this);a=this.isConst?l.constPointerType:l.pointerType;var o=me(t,this.registeredClass,a.registeredClass);return null===o?i.call(this):this.isSmartPointer?Ce(a.registeredClass.instancePrototype,{ptrType:a,ptr:o,smartPtrType:this,smartPtr:e}):Ce(a.registeredClass.instancePrototype,{ptrType:a,ptr:o})}function Be(e){return"undefined"==typeof FinalizationRegistry?(Be=e=>e,e):(fe=new FinalizationRegistry((e=>{ye(e.$$)})),Ie=e=>fe.unregister(e),(Be=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};fe.register(e,s,e)}return e})(e))}function Oe(){if(this.$$.ptr||de(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Be(Object.create(Object.getPrototypeOf(this),{$$:{value:Ae(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Se(){this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ue("Object already scheduled for deletion"),Ie(this),ye(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ne(){return!this.$$.ptr}function xe(){return this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ue("Object already scheduled for deletion"),Ee.push(this),1===Ee.length&&be&&be(Te),this.$$.deleteScheduled=!0,this}function Le(){}function Me(e,t,s){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ue("Function '"+s+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Fe(e,t,s){i.hasOwnProperty(e)?((void 0===s||void 0!==i[e].overloadTable&&void 0!==i[e].overloadTable[s])&&ue("Cannot register public name '"+e+"' twice"),Me(i,e,e),i.hasOwnProperty(s)&&ue("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),i[e].overloadTable[s]=t):(i[e]=t,void 0!==s&&(i[e].numArguments=s))}function He(e,t,s,n,i,a,r,l){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=r,this.downcast=l,this.pureVirtualFunctions=[]}function Ue(e,t,s){for(;t!==s;)t.upcast||ue("Expected null or instance of "+s.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Ge(e,t){if(null===t)return this.isReference&&ue("null is not a valid "+this.name),0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return Ue(t.$$.ptr,s,this.registeredClass)}function je(e,t){var s;if(null===t)return this.isReference&&ue("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ue("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(s=Ue(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ue("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:s=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)s=t.$$.smartPtr;else{var i=t.clone();s=this.rawShare(s,ot.toHandle((function(){i.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ue("Unsupporting sharing policy")}return s}function Ve(e,t){if(null===t)return this.isReference&&ue("null is not a valid "+this.name),0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ue("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return Ue(t.$$.ptr,s,this.registeredClass)}function ke(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Qe(e){this.rawDestructor&&this.rawDestructor(e)}function We(e){null!==e&&e.delete()}function ze(e,t,s,n,i,a,r,l,o,c,u){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=r,this.rawGetPointee=l,this.rawConstructor=o,this.rawShare=c,this.rawDestructor=u,i||void 0!==t.baseClass?this.toWireType=je:n?(this.toWireType=Ge,this.destructorFunction=null):(this.toWireType=Ve,this.destructorFunction=null)}function Ke(e,t,s){i.hasOwnProperty(e)||ne("Replacing nonexistant public symbol"),void 0!==i[e].overloadTable&&void 0!==s?i[e].overloadTable[s]=t:(i[e]=t,i[e].argCount=s)}var Ye=[];function Xe(e){var t=Ye[e];return t||(e>=Ye.length&&(Ye.length=e+1),Ye[e]=t=b.get(e)),t}function qe(e,t,s){return e.includes("j")?function(e,t,s){var n=i["dynCall_"+e];return s&&s.length?n.apply(null,[t].concat(s)):n.call(null,t)}(e,t,s):Xe(t).apply(null,s)}function Je(e,t){var s,n,i,a=(e=oe(e)).includes("j")?(s=e,n=t,i=[],function(){return i.length=0,Object.assign(i,arguments),qe(s,n,i)}):Xe(t);return"function"!=typeof a&&ue("unknown function pointer with signature "+e+": "+t),a}var Ze=void 0;function $e(e){var t=Qt(e),s=oe(t);return zt(t),s}function et(e,t){var s=[],n={};throw t.forEach((function e(t){n[t]||J[t]||(Z[t]?Z[t].forEach(e):(s.push(t),n[t]=!0))})),new Ze(e+": "+s.map($e).join([", "]))}function tt(e,t){for(var s=[],n=0;n>>2]);return s}function st(e,t,s,n,i){var a=t.length;a<2&&ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==s,l=!1,o=1;o0?", ":"")+h),p+=(c?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",l)p+="runDestructors(destructors);\n";else for(o=r?1:2;o4&&0==--it[e].refcount&&(it[e]=void 0,nt.push(e))}function rt(){for(var e=0,t=5;t(e||ue("Cannot use deleted val. handle = "+e),it[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=nt.length?nt.pop():it.length;return it[t]={refcount:1,value:e},t}}};function ct(e,t,s){switch(t){case 0:return function(e){var t=s?I:y;return this.fromWireType(t[e>>>0])};case 1:return function(e){var t=s?m:v;return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=s?w:g;return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function ut(e,t){var s=J[e];return void 0===s&&ue(t+" has unknown type "+$e(e)),s}function ht(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function pt(e,t){switch(t){case 2:return function(e){return this.fromWireType(E[e>>>2])};case 3:return function(e){return this.fromWireType(T[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function At(e,t,s){switch(t){case 0:return s?function(e){return I[e>>>0]}:function(e){return y[e>>>0]};case 1:return s?function(e){return m[e>>>1]}:function(e){return v[e>>>1]};case 2:return s?function(e){return w[e>>>2]}:function(e){return g[e>>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var dt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function ft(e,t){for(var s=e,n=s>>1,i=n+t/2;!(n>=i)&&v[n>>>0];)++n;if((s=n<<1)-e>32&&dt)return dt.decode(y.subarray(e>>>0,s>>>0));for(var a="",r=0;!(r>=t/2);++r){var l=m[e+2*r>>>1];if(0==l)break;a+=String.fromCharCode(l)}return a}function It(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var n=t,i=(s-=2)<2*e.length?s/2:e.length,a=0;a>>1]=r,t+=2}return m[t>>>1]=0,t-n}function yt(e){return 2*e.length}function mt(e,t){for(var s=0,n="";!(s>=t/4);){var i=w[e+4*s>>>2];if(0==i)break;if(++s,i>=65536){var a=i-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(i)}return n}function vt(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var n=t>>>=0,i=n+s-4,a=0;a=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++a)),w[t>>>2]=r,(t+=4)+4>i)break}return w[t>>>2]=0,t-n}function wt(e){for(var t=0,s=0;s=55296&&n<=57343&&++s,t+=4}return t}var gt={};function Et(e){var t=gt[e];return void 0===t?oe(e):t}function Tt(){return"object"==typeof globalThis?globalThis:Function("return this")()}function bt(e){var t=h.buffer;try{return h.grow(e-t.byteLength+65535>>>16),B(),1}catch(e){}}var Dt={};function Pt(){if(!Pt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"};for(var t in Dt)void 0===Dt[t]?delete e[t]:e[t]=Dt[t];var s=[];for(var t in e)s.push(t+"="+e[t]);Pt.strings=s}return Pt.strings}var Rt={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),s++):s&&(e.splice(n,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Rt.isAbs(e),s="/"===e.substr(-1);return e=Rt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Rt.splitPath(e),s=t[0],n=t[1];return s||n?(n&&(n=n.substr(0,n.length-1)),s+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Rt.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Rt.normalize(e.join("/"))},join2:(e,t)=>Rt.normalize(e+"/"+t)},Ct={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var n=s>=0?arguments[s]:Nt.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=Rt.isAbs(n)}return e=Rt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),(t?"/":"")+e||"."},relative:(e,t)=>{function s(e){for(var t=0;t=0&&""===e[s];s--);return t>s?[]:e.slice(t,s-t+1)}e=Ct.resolve(e).substr(1),t=Ct.resolve(t).substr(1);for(var n=s(e.split("/")),i=s(t.split("/")),a=Math.min(n.length,i.length),r=a,l=0;l0?s:_(e)+1,i=new Array(n),a=C(e,i,0,i.length);return t&&(i.length=a),i}var Bt={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Bt.ttys[e]={input:[],output:[],ops:t},Nt.registerDevice(e,Bt.stream_ops)},stream_ops:{open:function(e){var t=Bt.ttys[e.node.rdev];if(!t)throw new Nt.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,s,n,i){if(!e.tty||!e.tty.ops.get_char)throw new Nt.ErrnoError(60);for(var a=0,r=0;r0&&(p(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(A(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(A(P(e.output,0)),e.output=[])}}};function Ot(e){V()}var St={ops_table:null,mount:function(e){return St.createNode(null,"/",16895,0)},createNode:function(e,t,s,n){if(Nt.isBlkdev(s)||Nt.isFIFO(s))throw new Nt.ErrnoError(63);St.ops_table||(St.ops_table={dir:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,lookup:St.node_ops.lookup,mknod:St.node_ops.mknod,rename:St.node_ops.rename,unlink:St.node_ops.unlink,rmdir:St.node_ops.rmdir,readdir:St.node_ops.readdir,symlink:St.node_ops.symlink},stream:{llseek:St.stream_ops.llseek}},file:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:{llseek:St.stream_ops.llseek,read:St.stream_ops.read,write:St.stream_ops.write,allocate:St.stream_ops.allocate,mmap:St.stream_ops.mmap,msync:St.stream_ops.msync}},link:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,readlink:St.node_ops.readlink},stream:{}},chrdev:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:Nt.chrdev_stream_ops}});var i=Nt.createNode(e,t,s,n);return Nt.isDir(i.mode)?(i.node_ops=St.ops_table.dir.node,i.stream_ops=St.ops_table.dir.stream,i.contents={}):Nt.isFile(i.mode)?(i.node_ops=St.ops_table.file.node,i.stream_ops=St.ops_table.file.stream,i.usedBytes=0,i.contents=null):Nt.isLink(i.mode)?(i.node_ops=St.ops_table.link.node,i.stream_ops=St.ops_table.link.stream):Nt.isChrdev(i.mode)&&(i.node_ops=St.ops_table.chrdev.node,i.stream_ops=St.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){t>>>=0;var s=e.contents?e.contents.length:0;if(!(s>=t)){t=Math.max(t,s*(s<1048576?2:1.125)>>>0),0!=s&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(t>>>=0,e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var s=e.contents;e.contents=new Uint8Array(t),s&&e.contents.set(s.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=Nt.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,Nt.isDir(e.mode)?t.size=4096:Nt.isFile(e.mode)?t.size=e.usedBytes:Nt.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&St.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Nt.genericErrors[44]},mknod:function(e,t,s,n){return St.createNode(e,t,s,n)},rename:function(e,t,s){if(Nt.isDir(e.mode)){var n;try{n=Nt.lookupNode(t,s)}catch(e){}if(n)for(var i in n.contents)throw new Nt.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=s,t.contents[s]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var s=Nt.lookupNode(e,t);for(var n in s.contents)throw new Nt.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var s in e.contents)e.contents.hasOwnProperty(s)&&t.push(s);return t},symlink:function(e,t,s){var n=St.createNode(e,t,41471,0);return n.link=s,n},readlink:function(e){if(!Nt.isLink(e.mode))throw new Nt.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var r=Math.min(e.node.usedBytes-i,n);if(r>8&&a.subarray)t.set(a.subarray(i,i+r),s);else for(var l=0;l0||s+t>>=0,I.set(l,a>>>0)}else r=!1,a=l.byteOffset;return{ptr:a,allocated:r}},msync:function(e,t,s,n,i){return St.stream_ops.write(e,t,0,n,s,!1),0}}},Nt={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=Ct.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new Nt.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),n=Nt.root,i="/",a=0;a40)throw new Nt.ErrnoError(32)}}return{path:i,node:n}},getPath:e=>{for(var t;;){if(Nt.isRoot(e)){var s=e.mount.mountpoint;return t?"/"!==s[s.length-1]?s+"/"+t:s+t:s}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var s=0,n=0;n>>0)%Nt.nameTable.length},hashAddNode:e=>{var t=Nt.hashName(e.parent.id,e.name);e.name_next=Nt.nameTable[t],Nt.nameTable[t]=e},hashRemoveNode:e=>{var t=Nt.hashName(e.parent.id,e.name);if(Nt.nameTable[t]===e)Nt.nameTable[t]=e.name_next;else for(var s=Nt.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=Nt.mayLookup(e);if(s)throw new Nt.ErrnoError(s,e);for(var n=Nt.hashName(e.id,t),i=Nt.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return Nt.lookup(e,t)},createNode:(e,t,s,n)=>{var i=new Nt.FSNode(e,t,s,n);return Nt.hashAddNode(i),i},destroyNode:e=>{Nt.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=Nt.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Nt.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=Nt.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Nt.lookupNode(e,t),20}catch(e){}return Nt.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var n;try{n=Nt.lookupNode(e,t)}catch(e){return e.errno}var i=Nt.nodePermissions(e,"wx");if(i)return i;if(s){if(!Nt.isDir(n.mode))return 54;if(Nt.isRoot(n)||Nt.getPath(n)===Nt.cwd())return 10}else if(Nt.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Nt.isLink(e.mode)?32:Nt.isDir(e.mode)&&("r"!==Nt.flagsToPermissionString(t)||512&t)?31:Nt.nodePermissions(e,Nt.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Nt.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!Nt.streams[s])return s;throw new Nt.ErrnoError(33)},getStream:e=>Nt.streams[e],createStream:(e,t,s)=>{Nt.FSStream||(Nt.FSStream=function(){this.shared={}},Nt.FSStream.prototype={},Object.defineProperties(Nt.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new Nt.FSStream,e);var n=Nt.nextfd(t,s);return e.fd=n,Nt.streams[n]=e,e},closeStream:e=>{Nt.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Nt.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Nt.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Nt.devices[e]={stream_ops:t}},getDevice:e=>Nt.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var n=s.pop();t.push(n),s.push.apply(s,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Nt.syncFSRequests++,Nt.syncFSRequests>1&&A("warning: "+Nt.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=Nt.getMounts(Nt.root.mount),n=0;function i(e){return Nt.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++n>=s.length&&i(null)}s.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:(e,t,s)=>{var n,i="/"===s,a=!s;if(i&&Nt.root)throw new Nt.ErrnoError(10);if(!i&&!a){var r=Nt.lookupPath(s,{follow_mount:!1});if(s=r.path,n=r.node,Nt.isMountpoint(n))throw new Nt.ErrnoError(10);if(!Nt.isDir(n.mode))throw new Nt.ErrnoError(54)}var l={type:e,opts:t,mountpoint:s,mounts:[]},o=e.mount(l);return o.mount=l,l.root=o,i?Nt.root=o:n&&(n.mounted=l,n.mount&&n.mount.mounts.push(l)),o},unmount:e=>{var t=Nt.lookupPath(e,{follow_mount:!1});if(!Nt.isMountpoint(t.node))throw new Nt.ErrnoError(28);var s=t.node,n=s.mounted,i=Nt.getMounts(n);Object.keys(Nt.nameTable).forEach((e=>{for(var t=Nt.nameTable[e];t;){var s=t.name_next;i.includes(t.mount)&&Nt.destroyNode(t),t=s}})),s.mounted=null;var a=s.mount.mounts.indexOf(n);s.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var n=Nt.lookupPath(e,{parent:!0}).node,i=Rt.basename(e);if(!i||"."===i||".."===i)throw new Nt.ErrnoError(28);var a=Nt.mayCreate(n,i);if(a)throw new Nt.ErrnoError(a);if(!n.node_ops.mknod)throw new Nt.ErrnoError(63);return n.node_ops.mknod(n,i,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Nt.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Nt.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),n="",i=0;i(void 0===s&&(s=t,t=438),t|=8192,Nt.mknod(e,t,s)),symlink:(e,t)=>{if(!Ct.resolve(e))throw new Nt.ErrnoError(44);var s=Nt.lookupPath(t,{parent:!0}).node;if(!s)throw new Nt.ErrnoError(44);var n=Rt.basename(t),i=Nt.mayCreate(s,n);if(i)throw new Nt.ErrnoError(i);if(!s.node_ops.symlink)throw new Nt.ErrnoError(63);return s.node_ops.symlink(s,n,e)},rename:(e,t)=>{var s,n,i=Rt.dirname(e),a=Rt.dirname(t),r=Rt.basename(e),l=Rt.basename(t);if(s=Nt.lookupPath(e,{parent:!0}).node,n=Nt.lookupPath(t,{parent:!0}).node,!s||!n)throw new Nt.ErrnoError(44);if(s.mount!==n.mount)throw new Nt.ErrnoError(75);var o,c=Nt.lookupNode(s,r),u=Ct.relative(e,a);if("."!==u.charAt(0))throw new Nt.ErrnoError(28);if("."!==(u=Ct.relative(t,i)).charAt(0))throw new Nt.ErrnoError(55);try{o=Nt.lookupNode(n,l)}catch(e){}if(c!==o){var h=Nt.isDir(c.mode),p=Nt.mayDelete(s,r,h);if(p)throw new Nt.ErrnoError(p);if(p=o?Nt.mayDelete(n,l,h):Nt.mayCreate(n,l))throw new Nt.ErrnoError(p);if(!s.node_ops.rename)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(c)||o&&Nt.isMountpoint(o))throw new Nt.ErrnoError(10);if(n!==s&&(p=Nt.nodePermissions(s,"w")))throw new Nt.ErrnoError(p);Nt.hashRemoveNode(c);try{s.node_ops.rename(c,n,l)}catch(e){throw e}finally{Nt.hashAddNode(c)}}},rmdir:e=>{var t=Nt.lookupPath(e,{parent:!0}).node,s=Rt.basename(e),n=Nt.lookupNode(t,s),i=Nt.mayDelete(t,s,!0);if(i)throw new Nt.ErrnoError(i);if(!t.node_ops.rmdir)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(n))throw new Nt.ErrnoError(10);t.node_ops.rmdir(t,s),Nt.destroyNode(n)},readdir:e=>{var t=Nt.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Nt.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Nt.lookupPath(e,{parent:!0}).node;if(!t)throw new Nt.ErrnoError(44);var s=Rt.basename(e),n=Nt.lookupNode(t,s),i=Nt.mayDelete(t,s,!1);if(i)throw new Nt.ErrnoError(i);if(!t.node_ops.unlink)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(n))throw new Nt.ErrnoError(10);t.node_ops.unlink(t,s),Nt.destroyNode(n)},readlink:e=>{var t=Nt.lookupPath(e).node;if(!t)throw new Nt.ErrnoError(44);if(!t.node_ops.readlink)throw new Nt.ErrnoError(28);return Ct.resolve(Nt.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=Nt.lookupPath(e,{follow:!t}).node;if(!s)throw new Nt.ErrnoError(44);if(!s.node_ops.getattr)throw new Nt.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>Nt.stat(e,!0),chmod:(e,t,s)=>{var n;if(!(n="string"==typeof e?Nt.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Nt.chmod(e,t,!0)},fchmod:(e,t)=>{var s=Nt.getStream(e);if(!s)throw new Nt.ErrnoError(8);Nt.chmod(s.node,t)},chown:(e,t,s,n)=>{var i;if(!(i="string"==typeof e?Nt.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,s)=>{Nt.chown(e,t,s,!0)},fchown:(e,t,s)=>{var n=Nt.getStream(e);if(!n)throw new Nt.ErrnoError(8);Nt.chown(n.node,t,s)},truncate:(e,t)=>{if(t<0)throw new Nt.ErrnoError(28);var s;if(!(s="string"==typeof e?Nt.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);if(Nt.isDir(s.mode))throw new Nt.ErrnoError(31);if(!Nt.isFile(s.mode))throw new Nt.ErrnoError(28);var n=Nt.nodePermissions(s,"w");if(n)throw new Nt.ErrnoError(n);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=Nt.getStream(e);if(!s)throw new Nt.ErrnoError(8);if(0==(2097155&s.flags))throw new Nt.ErrnoError(28);Nt.truncate(s.node,t)},utime:(e,t,s)=>{var n=Nt.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new Nt.ErrnoError(44);var n;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?Nt.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)n=e;else{e=Rt.normalize(e);try{n=Nt.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var a=!1;if(64&t)if(n){if(128&t)throw new Nt.ErrnoError(20)}else n=Nt.mknod(e,s,0),a=!0;if(!n)throw new Nt.ErrnoError(44);if(Nt.isChrdev(n.mode)&&(t&=-513),65536&t&&!Nt.isDir(n.mode))throw new Nt.ErrnoError(54);if(!a){var r=Nt.mayOpen(n,t);if(r)throw new Nt.ErrnoError(r)}512&t&&!a&&Nt.truncate(n,0),t&=-131713;var l=Nt.createStream({node:n,path:Nt.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),!i.logReadFiles||1&t||(Nt.readFiles||(Nt.readFiles={}),e in Nt.readFiles||(Nt.readFiles[e]=1)),l},close:e=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Nt.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Nt.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new Nt.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,n,i)=>{if(s>>>=0,n<0||i<0)throw new Nt.ErrnoError(28);if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(1==(2097155&e.flags))throw new Nt.ErrnoError(8);if(Nt.isDir(e.node.mode))throw new Nt.ErrnoError(31);if(!e.stream_ops.read)throw new Nt.ErrnoError(28);var a=void 0!==i;if(a){if(!e.seekable)throw new Nt.ErrnoError(70)}else i=e.position;var r=e.stream_ops.read(e,t,s,n,i);return a||(e.position+=r),r},write:(e,t,s,n,i,a)=>{if(s>>>=0,n<0||i<0)throw new Nt.ErrnoError(28);if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(0==(2097155&e.flags))throw new Nt.ErrnoError(8);if(Nt.isDir(e.node.mode))throw new Nt.ErrnoError(31);if(!e.stream_ops.write)throw new Nt.ErrnoError(28);e.seekable&&1024&e.flags&&Nt.llseek(e,0,2);var r=void 0!==i;if(r){if(!e.seekable)throw new Nt.ErrnoError(70)}else i=e.position;var l=e.stream_ops.write(e,t,s,n,i,a);return r||(e.position+=l),l},allocate:(e,t,s)=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(t<0||s<=0)throw new Nt.ErrnoError(28);if(0==(2097155&e.flags))throw new Nt.ErrnoError(8);if(!Nt.isFile(e.node.mode)&&!Nt.isDir(e.node.mode))throw new Nt.ErrnoError(43);if(!e.stream_ops.allocate)throw new Nt.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,n,i)=>{if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new Nt.ErrnoError(2);if(1==(2097155&e.flags))throw new Nt.ErrnoError(2);if(!e.stream_ops.mmap)throw new Nt.ErrnoError(43);return e.stream_ops.mmap(e,t,s,n,i)},msync:(e,t,s,n,i)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,n,i):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new Nt.ErrnoError(59);return e.stream_ops.ioctl(e,t,s)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var s,n=Nt.open(e,t.flags),i=Nt.stat(e).size,a=new Uint8Array(i);return Nt.read(n,a,0,i,0),"utf8"===t.encoding?s=P(a,0):"binary"===t.encoding&&(s=a),Nt.close(n),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var n=Nt.open(e,s.flags,s.mode);if("string"==typeof t){var i=new Uint8Array(_(t)+1),a=C(t,i,0,i.length);Nt.write(n,i,0,a,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Nt.write(n,t,0,t.byteLength,void 0,s.canOwn)}Nt.close(n)},cwd:()=>Nt.currentPath,chdir:e=>{var t=Nt.lookupPath(e,{follow:!0});if(null===t.node)throw new Nt.ErrnoError(44);if(!Nt.isDir(t.node.mode))throw new Nt.ErrnoError(54);var s=Nt.nodePermissions(t.node,"x");if(s)throw new Nt.ErrnoError(s);Nt.currentPath=t.path},createDefaultDirectories:()=>{Nt.mkdir("/tmp"),Nt.mkdir("/home"),Nt.mkdir("/home/web_user")},createDefaultDevices:()=>{Nt.mkdir("/dev"),Nt.registerDevice(Nt.makedev(1,3),{read:()=>0,write:(e,t,s,n,i)=>n}),Nt.mkdev("/dev/null",Nt.makedev(1,3)),Bt.register(Nt.makedev(5,0),Bt.default_tty_ops),Bt.register(Nt.makedev(6,0),Bt.default_tty1_ops),Nt.mkdev("/dev/tty",Nt.makedev(5,0)),Nt.mkdev("/dev/tty1",Nt.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}return()=>V("randomDevice")}();Nt.createDevice("/dev","random",e),Nt.createDevice("/dev","urandom",e),Nt.mkdir("/dev/shm"),Nt.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Nt.mkdir("/proc");var e=Nt.mkdir("/proc/self");Nt.mkdir("/proc/self/fd"),Nt.mount({mount:()=>{var t=Nt.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,n=Nt.getStream(s);if(!n)throw new Nt.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{i.stdin?Nt.createDevice("/dev","stdin",i.stdin):Nt.symlink("/dev/tty","/dev/stdin"),i.stdout?Nt.createDevice("/dev","stdout",null,i.stdout):Nt.symlink("/dev/tty","/dev/stdout"),i.stderr?Nt.createDevice("/dev","stderr",null,i.stderr):Nt.symlink("/dev/tty1","/dev/stderr"),Nt.open("/dev/stdin",0),Nt.open("/dev/stdout",1),Nt.open("/dev/stderr",1)},ensureErrnoError:()=>{Nt.ErrnoError||(Nt.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},Nt.ErrnoError.prototype=new Error,Nt.ErrnoError.prototype.constructor=Nt.ErrnoError,[44].forEach((e=>{Nt.genericErrors[e]=new Nt.ErrnoError(e),Nt.genericErrors[e].stack=""})))},staticInit:()=>{Nt.ensureErrnoError(),Nt.nameTable=new Array(4096),Nt.mount(St,{},"/"),Nt.createDefaultDirectories(),Nt.createDefaultDevices(),Nt.createSpecialDirectories(),Nt.filesystems={MEMFS:St}},init:(e,t,s)=>{Nt.init.initialized=!0,Nt.ensureErrnoError(),i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=s||i.stderr,Nt.createStandardStreams()},quit:()=>{Nt.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=Nt.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(n=Nt.lookupPath(e,{follow:!t})).path}catch(e){}var s={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Nt.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=n.path,s.parentObject=n.node,s.name=Rt.basename(e),n=Nt.lookupPath(e,{follow:!t}),s.exists=!0,s.path=n.path,s.object=n.node,s.name=n.node.name,s.isRoot="/"===n.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,n)=>{e="string"==typeof e?e:Nt.getPath(e);for(var i=t.split("/").reverse();i.length;){var a=i.pop();if(a){var r=Rt.join2(e,a);try{Nt.mkdir(r)}catch(e){}e=r}}return r},createFile:(e,t,s,n,i)=>{var a=Rt.join2("string"==typeof e?e:Nt.getPath(e),t),r=Nt.getMode(n,i);return Nt.create(a,r)},createDataFile:(e,t,s,n,i,a)=>{var r=t;e&&(e="string"==typeof e?e:Nt.getPath(e),r=t?Rt.join2(e,t):e);var l=Nt.getMode(n,i),o=Nt.create(r,l);if(s){if("string"==typeof s){for(var c=new Array(s.length),u=0,h=s.length;u{var i=Rt.join2("string"==typeof e?e:Nt.getPath(e),t),a=Nt.getMode(!!s,!!n);Nt.createDevice.major||(Nt.createDevice.major=64);var r=Nt.makedev(Nt.createDevice.major++,0);return Nt.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,i,a)=>{for(var r=0,l=0;l{for(var r=0;r{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!a)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=_t(a(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Nt.ErrnoError(29)}},createLazyFile:(e,t,s,n,i)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,s=e/this.chunkSize|0;return this.getter(s)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",s,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+s+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,r=1048576;i||(r=n);var l=this;l.setDataGetter((e=>{var t=e*r,i=(e+1)*r-1;if(i=Math.min(i,n-1),void 0===l.chunks[e]&&(l.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",s,!1),n!==r&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+s+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):_t(i.responseText||"",!0)})(t,i)),void 0===l.chunks[e])throw new Error("doXHR failed!");return l.chunks[e]})),!a&&n||(r=n=1,n=this.getter(0).length,r=n,p("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var r={isDevice:!1,url:s},l=Nt.createFile(e,t,r,n,i);r.contents?l.contents=r.contents:r.url&&(l.contents=null,l.url=r.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var o={};function c(e,t,s,n,i){var a=e.node.contents;if(i>=a.length)return 0;var r=Math.min(a.length-i,n);if(a.slice)for(var l=0;l{var t=l.stream_ops[e];o[e]=function(){return Nt.forceLoadFile(l),t.apply(null,arguments)}})),o.read=(e,t,s,n,i)=>(Nt.forceLoadFile(l),c(e,t,s,n,i)),o.mmap=(e,t,s,n,i)=>{Nt.forceLoadFile(l);var a=Ot();if(!a)throw new Nt.ErrnoError(48);return c(e,I,a,t,s),{ptr:a,allocated:!0}},l.stream_ops=o,l},createPreloadedFile:(e,t,s,n,i,a,l,o,c,u)=>{var h=t?Ct.resolve(Rt.join2(e,t)):e;function p(s){function r(s){u&&u(),o||Nt.createDataFile(e,t,s,n,i,c),a&&a(),j()}Browser.handledByPreloadPlugin(s,h,r,(()=>{l&&l(),j()}))||r(s)}G(),"string"==typeof s?function(e,t,s,n){var i=n?"":"al "+e;r(e,(s=>{f(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),i&&j()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),i&&G()}(s,(e=>p(e)),l):p(s)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=Nt.indexedDB();try{var i=n.open(Nt.DB_NAME(),Nt.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=()=>{p("creating db"),i.result.createObjectStore(Nt.DB_STORE_NAME)},i.onsuccess=()=>{var n=i.result.transaction([Nt.DB_STORE_NAME],"readwrite"),a=n.objectStore(Nt.DB_STORE_NAME),r=0,l=0,o=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=a.put(Nt.analyzePath(e).object.contents,e);t.onsuccess=()=>{++r+l==o&&c()},t.onerror=()=>{l++,r+l==o&&c()}})),n.onerror=s},i.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=Nt.indexedDB();try{var i=n.open(Nt.DB_NAME(),Nt.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=s,i.onsuccess=()=>{var n=i.result;try{var a=n.transaction([Nt.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var r=a.objectStore(Nt.DB_STORE_NAME),l=0,o=0,c=e.length;function u(){0==o?t():s()}e.forEach((e=>{var t=r.get(e);t.onsuccess=()=>{Nt.analyzePath(e).exists&&Nt.unlink(e),Nt.createDataFile(Rt.dirname(e),Rt.basename(e),t.result,!0,!0,!0),++l+o==c&&u()},t.onerror=()=>{o++,l+o==c&&u()}})),a.onerror=s},i.onerror=s}},xt={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Rt.isAbs(t))return t;var n;if(n=-100===e?Nt.cwd():xt.getStreamFromFD(e).path,0==t.length){if(!s)throw new Nt.ErrnoError(44);return n}return Rt.join2(n,t)},doStat:function(e,t,s){try{var n=e(t)}catch(e){if(e&&e.node&&Rt.normalize(t)!==Rt.normalize(Nt.getPath(e.node)))return-54;throw e}w[s>>>2]=n.dev,w[s+8>>>2]=n.ino,w[s+12>>>2]=n.mode,g[s+16>>>2]=n.nlink,w[s+20>>>2]=n.uid,w[s+24>>>2]=n.gid,w[s+28>>>2]=n.rdev,x=[n.size>>>0,(N=n.size,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+40>>>2]=x[0],w[s+44>>>2]=x[1],w[s+48>>>2]=4096,w[s+52>>>2]=n.blocks;var i=n.atime.getTime(),a=n.mtime.getTime(),r=n.ctime.getTime();return x=[Math.floor(i/1e3)>>>0,(N=Math.floor(i/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+56>>>2]=x[0],w[s+60>>>2]=x[1],g[s+64>>>2]=i%1e3*1e3,x=[Math.floor(a/1e3)>>>0,(N=Math.floor(a/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+72>>>2]=x[0],w[s+76>>>2]=x[1],g[s+80>>>2]=a%1e3*1e3,x=[Math.floor(r/1e3)>>>0,(N=Math.floor(r/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+88>>>2]=x[0],w[s+92>>>2]=x[1],g[s+96>>>2]=r%1e3*1e3,x=[n.ino>>>0,(N=n.ino,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+104>>>2]=x[0],w[s+108>>>2]=x[1],0},doMsync:function(e,t,s,n,i){if(!Nt.isFile(t.node.mode))throw new Nt.ErrnoError(43);if(2&n)return 0;e>>>=0;var a=y.slice(e,e+s);Nt.msync(t,a,i,s,n)},varargs:void 0,get:function(){return xt.varargs+=4,w[xt.varargs-4>>>2]},getStr:function(e){return R(e)},getStreamFromFD:function(e){var t=Nt.getStream(e);if(!t)throw new Nt.ErrnoError(8);return t}};function Lt(e){return e%4==0&&(e%100!=0||e%400==0)}var Mt=[31,29,31,30,31,30,31,31,30,31,30,31],Ft=[31,28,31,30,31,30,31,31,30,31,30,31];function Ht(e,t,s,n){var i=w[n+40>>>2],a={tm_sec:w[n>>>2],tm_min:w[n+4>>>2],tm_hour:w[n+8>>>2],tm_mday:w[n+12>>>2],tm_mon:w[n+16>>>2],tm_year:w[n+20>>>2],tm_wday:w[n+24>>>2],tm_yday:w[n+28>>>2],tm_isdst:w[n+32>>>2],tm_gmtoff:w[n+36>>>2],tm_zone:i?R(i):""},r=R(s),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var o in l)r=r.replace(new RegExp(o,"g"),l[o]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(e,t,s){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=s(e.getFullYear()-t.getFullYear()))&&0===(n=s(e.getMonth()-t.getMonth()))&&(n=s(e.getDate()-t.getDate())),n}function d(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function f(e){var t=function(e,t){for(var s=new Date(e.getTime());t>0;){var n=Lt(s.getFullYear()),i=s.getMonth(),a=(n?Mt:Ft)[i];if(!(t>a-s.getDate()))return s.setDate(s.getDate()+t),s;t-=a-s.getDate()+1,s.setDate(1),i<11?s.setMonth(i+1):(s.setMonth(0),s.setFullYear(s.getFullYear()+1))}return s}(new Date(e.tm_year+1900,0,1),e.tm_yday),s=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=d(s),a=d(n);return A(i,t)<=0?A(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var y={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return p((e.tm_year+1900)/100|0,2)},"%d":function(e){return p(e.tm_mday,2)},"%e":function(e){return h(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return p(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),p(t,2)},"%j":function(e){return p(e.tm_mday+function(e,t){for(var s=0,n=0;n<=t;s+=e[n++]);return s}(Lt(e.tm_year+1900)?Mt:Ft,e.tm_mon-1),3)},"%m":function(e){return p(e.tm_mon+1,2)},"%M":function(e){return p(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return p(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return p(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var s=(e.tm_wday+371-e.tm_yday)%7;4==s||3==s&&Lt(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Lt(e.tm_year%400-1))&&t++}return p(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return p(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,s=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(s?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var o in r=r.replace(/%%/g,"\0\0"),y)r.includes(o)&&(r=r.replace(new RegExp(o,"g"),y[o](a)));var m,v,g=_t(r=r.replace(/\0\0/g,"%"),!1);return g.length>t?0:(m=g,v=e,I.set(m,v>>>0),g.length-1)}se=i.InternalError=te(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);le=e}(),ce=i.BindingError=te(Error,"BindingError"),Le.prototype.isAliasOf=pe,Le.prototype.clone=Oe,Le.prototype.delete=Se,Le.prototype.isDeleted=Ne,Le.prototype.deleteLater=xe,i.getInheritedInstanceCount=we,i.getLiveInheritedInstances=ge,i.flushPendingDeletes=Te,i.setDelayFunction=De,ze.prototype.getPointee=ke,ze.prototype.destructor=Qe,ze.prototype.argPackAdvance=8,ze.prototype.readValueFromPointer=X,ze.prototype.deleteObject=We,ze.prototype.fromWireType=_e,Ze=i.UnboundTypeError=te(Error,"UnboundTypeError"),i.count_emval_handles=rt,i.get_first_emval=lt;var Ut=function(e,t,s,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Nt.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=n},Gt=365,jt=146;Object.defineProperties(Ut.prototype,{read:{get:function(){return(this.mode&Gt)===Gt},set:function(e){e?this.mode|=Gt:this.mode&=-366}},write:{get:function(){return(this.mode&jt)===jt},set:function(e){e?this.mode|=jt:this.mode&=-147}},isFolder:{get:function(){return Nt.isDir(this.mode)}},isDevice:{get:function(){return Nt.isChrdev(this.mode)}}}),Nt.FSNode=Ut,Nt.staticInit();var Vt={f:function(e,t,s){throw new z(e).init(t,s),e},R:function(e){var t=K[e];delete K[e];var s=t.elements,n=s.length,i=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),a=t.rawConstructor,r=t.rawDestructor;ie([e],i,(function(e){return s.forEach(((t,s)=>{var i=e[s],a=t.getter,r=t.getterContext,l=e[s+n],o=t.setter,c=t.setterContext;t.read=e=>i.fromWireType(a(r,e)),t.write=(e,t)=>{var s=[];o(c,e,l.toWireType(s,t)),Y(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),i=0;i>>a])},destructorFunction:null})},o:function(e,t,s,n,i,a,r,l,o,c,u,h,p){u=oe(u),a=Je(i,a),l&&(l=Je(r,l)),c&&(c=Je(o,c)),p=Je(h,p);var A=$(u);Fe(A,(function(){et("Cannot construct "+u+" due to unbound types",[n])})),ie([e,t,s],n?[n]:[],(function(t){var s,i;t=t[0],i=n?(s=t.registeredClass).instancePrototype:Le.prototype;var r=ee(A,(function(){if(Object.getPrototypeOf(this)!==o)throw new ce("Use 'new' to construct "+u);if(void 0===h.constructor_body)throw new ce(u+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new ce("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(h.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),o=Object.create(i,{constructor:{value:r}});r.prototype=o;var h=new He(u,r,o,p,s,a,l,c),d=new ze(u,h,!0,!1,!1),f=new ze(u+"*",h,!1,!1,!1),I=new ze(u+" const*",h,!1,!0,!1);return ve[e]={pointerType:f,constPointerType:I},Ke(A,r),[d,f,I]}))},n:function(e,t,s,n,i,a){f(t>0);var r=tt(t,s);i=Je(n,i),ie([],[e],(function(e){var s="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new ce("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=()=>{et("Cannot construct "+e.name+" due to unbound types",r)},ie([],r,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=st(s,n,null,i,a),[]})),[]}))},b:function(e,t,s,n,i,a,r,l){var o=tt(s,n);t=oe(t),a=Je(i,a),ie([],[e],(function(e){var n=(e=e[0]).name+"."+t;function i(){et("Cannot call "+n+" due to unbound types",o)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),l&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===s-2?(i.argCount=s-2,i.className=e.name,c[t]=i):(Me(c,t,n),c[t].overloadTable[s-2]=i),ie([],o,(function(i){var l=st(n,i,e,a,r);return void 0===c[t].overloadTable?(l.argCount=s-2,c[t]=l):c[t].overloadTable[s-2]=l,[]})),[]}))},O:function(e,t){he(e,{name:t=oe(t),fromWireType:function(e){var t=ot.toValue(e);return at(e),t},toWireType:function(e,t){return ot.toHandle(t)},argPackAdvance:8,readValueFromPointer:X,destructorFunction:null})},B:function(e,t,s,n){var i=re(s);function a(){}t=oe(t),a.values={},he(e,{name:t,constructor:a,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:ct(t,i,n),destructorFunction:null}),Fe(t,a)},s:function(e,t,s){var n=ut(e,"enum");t=oe(t);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:s},constructor:{value:ee(n.name+"_"+t,(function(){}))}});i.values[s]=a,i[t]=a},z:function(e,t,s){var n=re(s);he(e,{name:t=oe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:pt(t,n),destructorFunction:null})},c:function(e,t,s,n,i,a){var r=tt(t,s);e=oe(e),i=Je(n,i),Fe(e,(function(){et("Cannot call "+e+" due to unbound types",r)}),t-1),ie([],r,(function(s){var n=[s[0],null].concat(s.slice(1));return Ke(e,st(e,n,null,i,a),t-1),[]}))},r:function(e,t,s,n,i){t=oe(t);var a=re(s),r=e=>e;if(0===n){var l=32-8*s;r=e=>e<>>l}var o=t.includes("unsigned");he(e,{name:t,fromWireType:r,toWireType:o?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:At(t,a,0!==n),destructorFunction:null})},h:function(e,t,s){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){var t=g,s=t[(e>>=2)>>>0],i=t[e+1>>>0];return new n(t.buffer,i,s)}he(e,{name:s=oe(s),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},A:function(e,t){var s="std::string"===(t=oe(t));he(e,{name:t,fromWireType:function(e){var t,n=g[e>>>2],i=e+4;if(s)for(var a=i,r=0;r<=n;++r){var l=i+r;if(r==n||0==y[l>>>0]){var o=R(a,l-a);void 0===t?t=o:(t+=String.fromCharCode(0),t+=o),a=l+1}}else{var c=new Array(n);for(r=0;r>>0]);t=c.join("")}return zt(e),t},toWireType:function(e,t){var n;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ue("Cannot pass non-string to std::string"),n=s&&i?_(t):t.length;var a=kt(4+n+1),r=a+4;if(r>>>=0,g[a>>>2]=n,s&&i)C(t,y,r,n+1);else if(i)for(var l=0;l255&&(zt(r),ue("String has UTF-16 code units that do not fit in 8 bits")),y[r+l>>>0]=o}else for(l=0;l>>0]=t[l];return null!==e&&e.push(zt,a),a},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},v:function(e,t,s){var n,i,a,r,l;s=oe(s),2===t?(n=ft,i=It,r=yt,a=()=>v,l=1):4===t&&(n=mt,i=vt,r=wt,a=()=>g,l=2),he(e,{name:s,fromWireType:function(e){for(var s,i=g[e>>>2],r=a(),o=e+4,c=0;c<=i;++c){var u=e+4+c*t;if(c==i||0==r[u>>>l]){var h=n(o,u-o);void 0===s?s=h:(s+=String.fromCharCode(0),s+=h),o=u+t}}return zt(e),s},toWireType:function(e,n){"string"!=typeof n&&ue("Cannot pass non-string to C++ string type "+s);var a=r(n),o=kt(4+a+t);return g[(o>>>=0)>>>2]=a>>l,i(n,o+4,a+t),null!==e&&e.push(zt,o),o},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},S:function(e,t,s,n,i,a){K[e]={name:oe(t),rawConstructor:Je(s,n),rawDestructor:Je(i,a),elements:[]}},i:function(e,t,s,n,i,a,r,l,o){K[e].elements.push({getterReturnType:t,getter:Je(s,n),getterContext:i,setterArgumentType:a,setter:Je(r,l),setterContext:o})},q:function(e,t,s,n,i,a){ae[e]={name:oe(t),rawConstructor:Je(s,n),rawDestructor:Je(i,a),fields:[]}},e:function(e,t,s,n,i,a,r,l,o,c){ae[e].fields.push({fieldName:oe(t),getterReturnType:s,getter:Je(n,i),getterContext:a,setterArgumentType:r,setter:Je(l,o),setterContext:c})},Q:function(e,t){he(e,{isVoid:!0,name:t=oe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},m:function(e,t,s){e=ot.toValue(e),t=ut(t,"emval::as");var n=[],i=ot.toHandle(n);return g[s>>>2]=i,t.toWireType(n,e)},x:function(e,t,s,n){e=ot.toValue(e);for(var i=function(e,t){for(var s=new Array(e),n=0;n>>2],"parameter "+n);return s}(t,s),a=new Array(t),r=0;r4&&(it[e].refcount+=1)},U:function(e,t){return(e=ot.toValue(e))instanceof(t=ot.toValue(t))},w:function(e){return"number"==typeof(e=ot.toValue(e))},C:function(e){return"string"==typeof(e=ot.toValue(e))},T:function(){return ot.toHandle([])},g:function(e){return ot.toHandle(Et(e))},u:function(){return ot.toHandle({})},l:function(e){Y(ot.toValue(e)),at(e)},j:function(e,t,s){e=ot.toValue(e),t=ot.toValue(t),s=ot.toValue(s),e[t]=s},d:function(e,t){var s=(e=ut(e,"_emval_take_value")).readValueFromPointer(t);return ot.toHandle(s)},y:function(){V("")},N:function(e,t,s){y.copyWithin(e>>>0,t>>>0,t+s>>>0)},L:function(e){var t,s,n=y.length,i=4294901760;if((e>>>=0)>i)return!1;for(var a=1;a<=4;a*=2){var r=n*(1+.2/a);if(r=Math.min(r,e+100663296),bt(Math.min(i,(t=Math.max(e,r))+((s=65536)-t%s)%s)))return!0}return!1},H:function(e,t){var s=0;return Pt().forEach((function(n,i){var a=t+s;g[e+4*i>>>2]=a,function(e,t,s){for(var n=0;n>>0]=e.charCodeAt(n);s||(I[t>>>0]=0)}(n,a),s+=n.length+1})),0},I:function(e,t){var s=Pt();g[e>>>2]=s.length;var n=0;return s.forEach((function(e){n+=e.length+1})),g[t>>>2]=n,0},J:function(e){try{var t=xt.getStreamFromFD(e);return Nt.close(t),0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},K:function(e,t,s,n){try{var i=function(e,t,s,n){for(var i=0,a=0;a>>2],l=g[t+4>>>2];t+=8;var o=Nt.read(e,I,r,l,n);if(o<0)return-1;if(i+=o,o>>2]=i,0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},E:function(e,t,s,n,i){try{var a=(o=s)+2097152>>>0<4194305-!!(l=t)?(l>>>0)+4294967296*o:NaN;if(isNaN(a))return 61;var r=xt.getStreamFromFD(e);return Nt.llseek(r,a,n),x=[r.position>>>0,(N=r.position,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[i>>>2]=x[0],w[i+4>>>2]=x[1],r.getdents&&0===a&&0===n&&(r.getdents=null),0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}var l,o},M:function(e,t,s,n){try{var i=function(e,t,s,n){for(var i=0,a=0;a>>2],l=g[t+4>>>2];t+=8;var o=Nt.write(e,I,r,l,n);if(o<0)return-1;i+=o,void 0!==n&&(n+=o)}return i}(xt.getStreamFromFD(e),t,s);return g[n>>>2]=i,0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},G:function(e,t,s,n,i){return Ht(e,t,s,n)}};!function(){var e={a:Vt};function t(e,t){var s,n=e.exports;i.asm=n,h=i.asm.V,B(),b=i.asm.X,s=i.asm.W,M.unshift(s),j()}function s(e){t(e.instance)}function a(t){return(u||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(O)})):fetch(O,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+O+"'";return e.arrayBuffer()})).catch((function(){return Q(O)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){A("failed to asynchronously prepare wasm: "+e),V(e)}))}if(G(),i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(e){A("Module.instantiateWasm callback failed with error: "+e),n(e)}(u||"function"!=typeof WebAssembly.instantiateStreaming||k(O)||"function"!=typeof fetch?a(s):fetch(O,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return A("wasm streaming compile failed: "+e),A("falling back to ArrayBuffer instantiation"),a(s)}))}))).catch(n)}();var kt=function(){return(kt=i.asm.Y).apply(null,arguments)},Qt=i.___getTypeName=function(){return(Qt=i.___getTypeName=i.asm.Z).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm._).apply(null,arguments)};var Wt,zt=function(){return(zt=i.asm.$).apply(null,arguments)},Kt=function(){return(Kt=i.asm.aa).apply(null,arguments)};function Yt(){function e(){Wt||(Wt=!0,i.calledRun=!0,d||(i.noFSInit||Nt.init.initialized||Nt.init(),Nt.ignorePermissions=!1,W(M),t(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),F.unshift(e);var e;W(F)}()))}H>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),L.unshift(e);var e;W(L)}(),H>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),e()}),1)):e()))}if(i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.ba).apply(null,arguments)},i.dynCall_viijii=function(){return(i.dynCall_viijii=i.asm.ca).apply(null,arguments)},i.dynCall_iiiiij=function(){return(i.dynCall_iiiiij=i.asm.da).apply(null,arguments)},i.dynCall_iiiiijj=function(){return(i.dynCall_iiiiijj=i.asm.ea).apply(null,arguments)},i.dynCall_iiiiiijj=function(){return(i.dynCall_iiiiiijj=i.asm.fa).apply(null,arguments)},U=function e(){Wt||Yt(),Wt||(U=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return Yt(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=n:"function"==typeof define&&define.amd?define([],(function(){return n})):"object"==typeof e&&(e.WebIFCWasm=n)}}),bb=3087945054,Db=3415622556,Pb=639361253,Rb=4207607924,Cb=812556717,_b=753842376,Bb=2391406946,Ob=3824725483,Sb=1529196076,Nb=2016517767,xb=3024970846,Lb=3171933400,Mb=1687234759,Fb=395920057,Hb=3460190687,Ub=1033361043,Gb=3856911033,jb=4097777520,Vb=3740093272,kb=3009204131,Qb=3473067441,Wb=1281925730,zb=class{constructor(e){this.value=e,this.type=5}},Kb=class{constructor(e){this.expressID=e,this.type=0}},Yb=[],Xb={},qb={},Jb={},Zb={},$b={},eD=[];function tD(e,t){return Array.isArray(t)&&t.map((t=>tD(e,t))),t.typecode?$b[e][t.typecode](t.value):t.value}function sD(e){return e.value=e.value.toString(),e.valueType=e.type,e.type=2,e.label=e.constructor.name.toUpperCase(),e}(ob=lb||(lb={})).IFC2X3="IFC2X3",ob.IFC4="IFC4",ob.IFC4X3="IFC4X3",eD[1]="IFC2X3",Yb[1]={3630933823:(e,t)=>new cb.IfcActorRole(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcText(t[2].value):null),618182010:(e,t)=>new cb.IfcAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),639542469:(e,t)=>new cb.IfcApplication(e,new zb(t[0].value),new cb.IfcLabel(t[1].value),new cb.IfcLabel(t[2].value),new cb.IfcIdentifier(t[3].value)),411424972:(e,t)=>new cb.IfcAppliedValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null),1110488051:(e,t)=>new cb.IfcAppliedValueRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null),130549933:(e,t)=>new cb.IfcApproval(e,t[0]?new cb.IfcText(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null,new cb.IfcLabel(t[5].value),new cb.IfcIdentifier(t[6].value)),2080292479:(e,t)=>new cb.IfcApprovalActorRelationship(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),390851274:(e,t)=>new cb.IfcApprovalPropertyRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),3869604511:(e,t)=>new cb.IfcApprovalRelationship(e,new zb(t[0].value),new zb(t[1].value),t[2]?new cb.IfcText(t[2].value):null,new cb.IfcLabel(t[3].value)),4037036970:(e,t)=>new cb.IfcBoundaryCondition(e,t[0]?new cb.IfcLabel(t[0].value):null),1560379544:(e,t)=>new cb.IfcBoundaryEdgeCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[3].value):null,t[4]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[4].value):null,t[5]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[5].value):null,t[6]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[6].value):null),3367102660:(e,t)=>new cb.IfcBoundaryFaceCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcModulusOfSubgradeReactionMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfSubgradeReactionMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfSubgradeReactionMeasure(t[3].value):null),1387855156:(e,t)=>new cb.IfcBoundaryNodeCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearStiffnessMeasure(t[1].value):null,t[2]?new cb.IfcLinearStiffnessMeasure(t[2].value):null,t[3]?new cb.IfcLinearStiffnessMeasure(t[3].value):null,t[4]?new cb.IfcRotationalStiffnessMeasure(t[4].value):null,t[5]?new cb.IfcRotationalStiffnessMeasure(t[5].value):null,t[6]?new cb.IfcRotationalStiffnessMeasure(t[6].value):null),2069777674:(e,t)=>new cb.IfcBoundaryNodeConditionWarping(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearStiffnessMeasure(t[1].value):null,t[2]?new cb.IfcLinearStiffnessMeasure(t[2].value):null,t[3]?new cb.IfcLinearStiffnessMeasure(t[3].value):null,t[4]?new cb.IfcRotationalStiffnessMeasure(t[4].value):null,t[5]?new cb.IfcRotationalStiffnessMeasure(t[5].value):null,t[6]?new cb.IfcRotationalStiffnessMeasure(t[6].value):null,t[7]?new cb.IfcWarpingMomentMeasure(t[7].value):null),622194075:(e,t)=>new cb.IfcCalendarDate(e,new cb.IfcDayInMonthNumber(t[0].value),new cb.IfcMonthInYearNumber(t[1].value),new cb.IfcYearNumber(t[2].value)),747523909:(e,t)=>new cb.IfcClassification(e,new cb.IfcLabel(t[0].value),new cb.IfcLabel(t[1].value),t[2]?new zb(t[2].value):null,new cb.IfcLabel(t[3].value)),1767535486:(e,t)=>new cb.IfcClassificationItem(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new cb.IfcLabel(t[2].value)),1098599126:(e,t)=>new cb.IfcClassificationItemRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),938368621:(e,t)=>new cb.IfcClassificationNotation(e,t[0].map((e=>new zb(e.value)))),3639012971:(e,t)=>new cb.IfcClassificationNotationFacet(e,new cb.IfcLabel(t[0].value)),3264961684:(e,t)=>new cb.IfcColourSpecification(e,t[0]?new cb.IfcLabel(t[0].value):null),2859738748:(e,t)=>new cb.IfcConnectionGeometry(e),2614616156:(e,t)=>new cb.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),4257277454:(e,t)=>new cb.IfcConnectionPortGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),2732653382:(e,t)=>new cb.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new cb.IfcConstraint(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null),1658513725:(e,t)=>new cb.IfcConstraintAggregationRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]),613356794:(e,t)=>new cb.IfcConstraintClassificationRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),347226245:(e,t)=>new cb.IfcConstraintRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1065062679:(e,t)=>new cb.IfcCoordinatedUniversalTimeOffset(e,new cb.IfcHourInDay(t[0].value),t[1]?new cb.IfcMinuteInHour(t[1].value):null,t[2]),602808272:(e,t)=>new cb.IfcCostValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,new cb.IfcLabel(t[6].value),t[7]?new cb.IfcText(t[7].value):null),539742890:(e,t)=>new cb.IfcCurrencyRelationship(e,new zb(t[0].value),new zb(t[1].value),new cb.IfcPositiveRatioMeasure(t[2].value),new zb(t[3].value),t[4]?new zb(t[4].value):null),1105321065:(e,t)=>new cb.IfcCurveStyleFont(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new cb.IfcCurveStyleFontAndScaling(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),new cb.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new cb.IfcCurveStyleFontPattern(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),1072939445:(e,t)=>new cb.IfcDateAndTime(e,new zb(t[0].value),new zb(t[1].value)),1765591967:(e,t)=>new cb.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new cb.IfcLabel(t[2].value):null),1045800335:(e,t)=>new cb.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new cb.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),1376555844:(e,t)=>new cb.IfcDocumentElectronicFormat(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),1154170062:(e,t)=>new cb.IfcDocumentInformation(e,new cb.IfcIdentifier(t[0].value),new cb.IfcLabel(t[1].value),t[2]?new cb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?new cb.IfcText(t[4].value):null,t[5]?new cb.IfcText(t[5].value):null,t[6]?new cb.IfcText(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new zb(t[13].value):null,t[14]?new zb(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new cb.IfcDocumentInformationRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3796139169:(e,t)=>new cb.IfcDraughtingCalloutRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),1648886627:(e,t)=>new cb.IfcEnvironmentalImpactValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,new cb.IfcLabel(t[6].value),t[7],t[8]?new cb.IfcLabel(t[8].value):null),3200245327:(e,t)=>new cb.IfcExternalReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),2242383968:(e,t)=>new cb.IfcExternallyDefinedHatchStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),1040185647:(e,t)=>new cb.IfcExternallyDefinedSurfaceStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),3207319532:(e,t)=>new cb.IfcExternallyDefinedSymbol(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),3548104201:(e,t)=>new cb.IfcExternallyDefinedTextFont(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),852622518:(e,t)=>new cb.IfcGridAxis(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),new cb.IfcBoolean(t[2].value)),3020489413:(e,t)=>new cb.IfcIrregularTimeSeriesValue(e,new zb(t[0].value),t[1].map((e=>tD(1,e)))),2655187982:(e,t)=>new cb.IfcLibraryInformation(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new zb(e.value))):null),3452421091:(e,t)=>new cb.IfcLibraryReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),4162380809:(e,t)=>new cb.IfcLightDistributionData(e,new cb.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new cb.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new cb.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new cb.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),30780891:(e,t)=>new cb.IfcLocalTime(e,new cb.IfcHourInDay(t[0].value),t[1]?new cb.IfcMinuteInHour(t[1].value):null,t[2]?new cb.IfcSecondInMinute(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new cb.IfcDaylightSavingHour(t[4].value):null),1838606355:(e,t)=>new cb.IfcMaterial(e,new cb.IfcLabel(t[0].value)),1847130766:(e,t)=>new cb.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),248100487:(e,t)=>new cb.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new cb.IfcPositiveLengthMeasure(t[1].value),t[2]?new cb.IfcLogical(t[2].value):null),3303938423:(e,t)=>new cb.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new cb.IfcLabel(t[1].value):null),1303795690:(e,t)=>new cb.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new cb.IfcLengthMeasure(t[3].value)),2199411900:(e,t)=>new cb.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),3265635763:(e,t)=>new cb.IfcMaterialProperties(e,new zb(t[0].value)),2597039031:(e,t)=>new cb.IfcMeasureWithUnit(e,tD(1,t[0]),new zb(t[1].value)),4256014907:(e,t)=>new cb.IfcMechanicalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null),677618848:(e,t)=>new cb.IfcMechanicalSteelMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null,t[6]?new cb.IfcPressureMeasure(t[6].value):null,t[7]?new cb.IfcPressureMeasure(t[7].value):null,t[8]?new cb.IfcPositiveRatioMeasure(t[8].value):null,t[9]?new cb.IfcModulusOfElasticityMeasure(t[9].value):null,t[10]?new cb.IfcPressureMeasure(t[10].value):null,t[11]?new cb.IfcPositiveRatioMeasure(t[11].value):null,t[12]?t[12].map((e=>new zb(e.value))):null),3368373690:(e,t)=>new cb.IfcMetric(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new cb.IfcLabel(t[8].value):null,new zb(t[9].value)),2706619895:(e,t)=>new cb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new cb.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new cb.IfcObjectPlacement(e),2251480897:(e,t)=>new cb.IfcObjective(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9],t[10]?new cb.IfcLabel(t[10].value):null),1227763645:(e,t)=>new cb.IfcOpticalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcPositiveRatioMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcPositiveRatioMeasure(t[5].value):null,t[6]?new cb.IfcPositiveRatioMeasure(t[6].value):null,t[7]?new cb.IfcPositiveRatioMeasure(t[7].value):null,t[8]?new cb.IfcPositiveRatioMeasure(t[8].value):null,t[9]?new cb.IfcPositiveRatioMeasure(t[9].value):null),4251960020:(e,t)=>new cb.IfcOrganization(e,t[0]?new cb.IfcIdentifier(t[0].value):null,new cb.IfcLabel(t[1].value),t[2]?new cb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1411181986:(e,t)=>new cb.IfcOrganizationRelationship(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1207048766:(e,t)=>new cb.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new cb.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new cb.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new cb.IfcPerson(e,t[0]?new cb.IfcIdentifier(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new cb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new cb.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new cb.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new cb.IfcPhysicalQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null),2226359599:(e,t)=>new cb.IfcPhysicalSimpleQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new cb.IfcPostalAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcLabel(t[9].value):null),3727388367:(e,t)=>new cb.IfcPreDefinedItem(e,new cb.IfcLabel(t[0].value)),990879717:(e,t)=>new cb.IfcPreDefinedSymbol(e,new cb.IfcLabel(t[0].value)),3213052703:(e,t)=>new cb.IfcPreDefinedTerminatorSymbol(e,new cb.IfcLabel(t[0].value)),1775413392:(e,t)=>new cb.IfcPreDefinedTextFont(e,new cb.IfcLabel(t[0].value)),2022622350:(e,t)=>new cb.IfcPresentationLayerAssignment(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new cb.IfcPresentationLayerWithStyle(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcIdentifier(t[3].value):null,t[4].value,t[5].value,t[6].value,t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new cb.IfcPresentationStyle(e,t[0]?new cb.IfcLabel(t[0].value):null),2417041796:(e,t)=>new cb.IfcPresentationStyleAssignment(e,t[0].map((e=>new zb(e.value)))),2095639259:(e,t)=>new cb.IfcProductRepresentation(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2267347899:(e,t)=>new cb.IfcProductsOfCombustionProperties(e,new zb(t[0].value),t[1]?new cb.IfcSpecificHeatCapacityMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null),3958567839:(e,t)=>new cb.IfcProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null),2802850158:(e,t)=>new cb.IfcProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null),2598011224:(e,t)=>new cb.IfcProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null),3896028662:(e,t)=>new cb.IfcPropertyConstraintRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),148025276:(e,t)=>new cb.IfcPropertyDependencyRelationship(e,new zb(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null),3710013099:(e,t)=>new cb.IfcPropertyEnumeration(e,new cb.IfcLabel(t[0].value),t[1].map((e=>tD(1,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new cb.IfcQuantityArea(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcAreaMeasure(t[3].value)),2093928680:(e,t)=>new cb.IfcQuantityCount(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcCountMeasure(t[3].value)),931644368:(e,t)=>new cb.IfcQuantityLength(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcLengthMeasure(t[3].value)),3252649465:(e,t)=>new cb.IfcQuantityTime(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcTimeMeasure(t[3].value)),2405470396:(e,t)=>new cb.IfcQuantityVolume(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcVolumeMeasure(t[3].value)),825690147:(e,t)=>new cb.IfcQuantityWeight(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcMassMeasure(t[3].value)),2692823254:(e,t)=>new cb.IfcReferencesValueDocument(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),1580146022:(e,t)=>new cb.IfcReinforcementBarProperties(e,new cb.IfcAreaMeasure(t[0].value),new cb.IfcLabel(t[1].value),t[2],t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcCountMeasure(t[5].value):null),1222501353:(e,t)=>new cb.IfcRelaxation(e,new cb.IfcNormalisedRatioMeasure(t[0].value),new cb.IfcNormalisedRatioMeasure(t[1].value)),1076942058:(e,t)=>new cb.IfcRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new cb.IfcRepresentationContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null),3008791417:(e,t)=>new cb.IfcRepresentationItem(e),1660063152:(e,t)=>new cb.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),3679540991:(e,t)=>new cb.IfcRibPlateProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]),2341007311:(e,t)=>new cb.IfcRoot(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),448429030:(e,t)=>new cb.IfcSIUnit(e,t[0],t[1],t[2]),2042790032:(e,t)=>new cb.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new cb.IfcSectionReinforcementProperties(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),867548509:(e,t)=>new cb.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcText(t[2].value):null,t[3].value,new zb(t[4].value)),3982875396:(e,t)=>new cb.IfcShapeModel(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new cb.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3692461612:(e,t)=>new cb.IfcSimpleProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null),2273995522:(e,t)=>new cb.IfcStructuralConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null),2162789131:(e,t)=>new cb.IfcStructuralLoad(e,t[0]?new cb.IfcLabel(t[0].value):null),2525727697:(e,t)=>new cb.IfcStructuralLoadStatic(e,t[0]?new cb.IfcLabel(t[0].value):null),3408363356:(e,t)=>new cb.IfcStructuralLoadTemperature(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new cb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new cb.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new cb.IfcStyleModel(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new cb.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3049322572:(e,t)=>new cb.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),1300840506:(e,t)=>new cb.IfcSurfaceStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new cb.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new cb.IfcSurfaceStyleRefraction(e,t[0]?new cb.IfcReal(t[0].value):null,t[1]?new cb.IfcReal(t[1].value):null),846575682:(e,t)=>new cb.IfcSurfaceStyleShading(e,new zb(t[0].value)),1351298697:(e,t)=>new cb.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new cb.IfcSurfaceTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null),1290481447:(e,t)=>new cb.IfcSymbolStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,tD(1,t[1])),985171141:(e,t)=>new cb.IfcTable(e,t[0].value,t[1].map((e=>new zb(e.value)))),531007025:(e,t)=>new cb.IfcTableRow(e,t[0].map((e=>tD(1,e))),t[1].value),912023232:(e,t)=>new cb.IfcTelecomAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new cb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new cb.IfcLabel(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null),1447204868:(e,t)=>new cb.IfcTextStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value)),1983826977:(e,t)=>new cb.IfcTextStyleFontModel(e,new cb.IfcLabel(t[0].value),t[1]?t[1].map((e=>new cb.IfcTextFontName(e.value))):null,t[2]?new cb.IfcFontStyle(t[2].value):null,t[3]?new cb.IfcFontVariant(t[3].value):null,t[4]?new cb.IfcFontWeight(t[4].value):null,tD(1,t[5])),2636378356:(e,t)=>new cb.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new cb.IfcTextStyleTextModel(e,t[0]?tD(1,t[0]):null,t[1]?new cb.IfcTextAlignment(t[1].value):null,t[2]?new cb.IfcTextDecoration(t[2].value):null,t[3]?tD(1,t[3]):null,t[4]?tD(1,t[4]):null,t[5]?new cb.IfcTextTransformation(t[5].value):null,t[6]?tD(1,t[6]):null),1484833681:(e,t)=>new cb.IfcTextStyleWithBoxCharacteristics(e,t[0]?new cb.IfcPositiveLengthMeasure(t[0].value):null,t[1]?new cb.IfcPositiveLengthMeasure(t[1].value):null,t[2]?new cb.IfcPlaneAngleMeasure(t[2].value):null,t[3]?new cb.IfcPlaneAngleMeasure(t[3].value):null,t[4]?tD(1,t[4]):null),280115917:(e,t)=>new cb.IfcTextureCoordinate(e),1742049831:(e,t)=>new cb.IfcTextureCoordinateGenerator(e,new cb.IfcLabel(t[0].value),t[1].map((e=>tD(1,e)))),2552916305:(e,t)=>new cb.IfcTextureMap(e,t[0].map((e=>new zb(e.value)))),1210645708:(e,t)=>new cb.IfcTextureVertex(e,t[0].map((e=>new cb.IfcParameterValue(e.value)))),3317419933:(e,t)=>new cb.IfcThermalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcSpecificHeatCapacityMeasure(t[1].value):null,t[2]?new cb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new cb.IfcThermodynamicTemperatureMeasure(t[3].value):null,t[4]?new cb.IfcThermalConductivityMeasure(t[4].value):null),3101149627:(e,t)=>new cb.IfcTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),1718945513:(e,t)=>new cb.IfcTimeSeriesReferenceRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),581633288:(e,t)=>new cb.IfcTimeSeriesValue(e,t[0].map((e=>tD(1,e)))),1377556343:(e,t)=>new cb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new cb.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new cb.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new cb.IfcVertex(e),3304826586:(e,t)=>new cb.IfcVertexBasedTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value)))),1907098498:(e,t)=>new cb.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new cb.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new cb.IfcLengthMeasure(e.value)))),1065908215:(e,t)=>new cb.IfcWaterProperties(e,new zb(t[0].value),t[1]?t[1].value:null,t[2]?new cb.IfcIonConcentrationMeasure(t[2].value):null,t[3]?new cb.IfcIonConcentrationMeasure(t[3].value):null,t[4]?new cb.IfcIonConcentrationMeasure(t[4].value):null,t[5]?new cb.IfcNormalisedRatioMeasure(t[5].value):null,t[6]?new cb.IfcPHMeasure(t[6].value):null,t[7]?new cb.IfcNormalisedRatioMeasure(t[7].value):null),2442683028:(e,t)=>new cb.IfcAnnotationOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),962685235:(e,t)=>new cb.IfcAnnotationSurfaceOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3612888222:(e,t)=>new cb.IfcAnnotationSymbolOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),2297822566:(e,t)=>new cb.IfcAnnotationTextOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3798115385:(e,t)=>new cb.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new cb.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new cb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new cb.IfcBlobTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcIdentifier(t[4].value),t[5].value),3150382593:(e,t)=>new cb.IfcCenterLineProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),647927063:(e,t)=>new cb.IfcClassificationReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null),776857604:(e,t)=>new cb.IfcColourRgb(e,t[0]?new cb.IfcLabel(t[0].value):null,new cb.IfcNormalisedRatioMeasure(t[1].value),new cb.IfcNormalisedRatioMeasure(t[2].value),new cb.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new cb.IfcComplexProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new cb.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),1485152156:(e,t)=>new cb.IfcCompositeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcLabel(t[3].value):null),370225590:(e,t)=>new cb.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new cb.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new cb.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new cb.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new cb.IfcLabel(t[2].value)),2889183280:(e,t)=>new cb.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new cb.IfcLabel(t[2].value),new zb(t[3].value)),3800577675:(e,t)=>new cb.IfcCurveStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?new zb(t[3].value):null),3632507154:(e,t)=>new cb.IfcDerivedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new cb.IfcLabel(t[4].value):null),2273265877:(e,t)=>new cb.IfcDimensionCalloutRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),1694125774:(e,t)=>new cb.IfcDimensionPair(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),3732053477:(e,t)=>new cb.IfcDocumentReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),4170525392:(e,t)=>new cb.IfcDraughtingPreDefinedTextFont(e,new cb.IfcLabel(t[0].value)),3900360178:(e,t)=>new cb.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new cb.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),t[3].value),1860660968:(e,t)=>new cb.IfcExtendedMaterialProperties(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcText(t[2].value):null,new cb.IfcLabel(t[3].value)),2556980723:(e,t)=>new cb.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new cb.IfcFaceBound(e,new zb(t[0].value),t[1].value),803316827:(e,t)=>new cb.IfcFaceOuterBound(e,new zb(t[0].value),t[1].value),3008276851:(e,t)=>new cb.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),t[2].value),4219587988:(e,t)=>new cb.IfcFailureConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcForceMeasure(t[4].value):null,t[5]?new cb.IfcForceMeasure(t[5].value):null,t[6]?new cb.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new cb.IfcFillAreaStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),3857492461:(e,t)=>new cb.IfcFuelProperties(e,new zb(t[0].value),t[1]?new cb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcHeatingValueMeasure(t[3].value):null,t[4]?new cb.IfcHeatingValueMeasure(t[4].value):null),803998398:(e,t)=>new cb.IfcGeneralMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcMolecularWeightMeasure(t[1].value):null,t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcMassDensityMeasure(t[3].value):null),1446786286:(e,t)=>new cb.IfcGeneralProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null),3448662350:(e,t)=>new cb.IfcGeometricRepresentationContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,new cb.IfcDimensionCount(t[2].value),t[3]?t[3].value:null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new cb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new cb.IfcGeometricRepresentationSubContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null),3590301190:(e,t)=>new cb.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new cb.IfcGridPlacement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),812098782:(e,t)=>new cb.IfcHalfSpaceSolid(e,new zb(t[0].value),t[1].value),2445078500:(e,t)=>new cb.IfcHygroscopicMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcPositiveRatioMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcIsothermalMoistureCapacityMeasure(t[3].value):null,t[4]?new cb.IfcVaporPermeabilityMeasure(t[4].value):null,t[5]?new cb.IfcMoistureDiffusivityMeasure(t[5].value):null),3905492369:(e,t)=>new cb.IfcImageTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcIdentifier(t[4].value)),3741457305:(e,t)=>new cb.IfcIrregularTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1402838566:(e,t)=>new cb.IfcLightSource(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new cb.IfcLightSourceAmbient(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new cb.IfcLightSourceDirectional(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new cb.IfcLightSourceGoniometric(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new cb.IfcThermodynamicTemperatureMeasure(t[6].value),new cb.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new cb.IfcLightSourcePositional(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcReal(t[6].value),new cb.IfcReal(t[7].value),new cb.IfcReal(t[8].value)),3422422726:(e,t)=>new cb.IfcLightSourceSpot(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcReal(t[6].value),new cb.IfcReal(t[7].value),new cb.IfcReal(t[8].value),new zb(t[9].value),t[10]?new cb.IfcReal(t[10].value):null,new cb.IfcPositivePlaneAngleMeasure(t[11].value),new cb.IfcPositivePlaneAngleMeasure(t[12].value)),2624227202:(e,t)=>new cb.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new cb.IfcLoop(e),2347385850:(e,t)=>new cb.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),2022407955:(e,t)=>new cb.IfcMaterialDefinitionRepresentation(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1430189142:(e,t)=>new cb.IfcMechanicalConcreteMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null,t[6]?new cb.IfcPressureMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcText(t[8].value):null,t[9]?new cb.IfcText(t[9].value):null,t[10]?new cb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new cb.IfcText(t[11].value):null),219451334:(e,t)=>new cb.IfcObjectDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),2833995503:(e,t)=>new cb.IfcOneDirectionRepeatFactor(e,new zb(t[0].value)),2665983363:(e,t)=>new cb.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1029017970:(e,t)=>new cb.IfcOrientedEdge(e,new zb(t[0].value),t[1].value),2529465313:(e,t)=>new cb.IfcParameterizedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),2519244187:(e,t)=>new cb.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new cb.IfcPhysicalComplexQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new cb.IfcLabel(t[3].value),t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcLabel(t[5].value):null),597895409:(e,t)=>new cb.IfcPixelTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcInteger(t[4].value),new cb.IfcInteger(t[5].value),new cb.IfcInteger(t[6].value),t[7].map((e=>e.value))),2004835150:(e,t)=>new cb.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new cb.IfcPlanarExtent(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new cb.IfcPoint(e),4022376103:(e,t)=>new cb.IfcPointOnCurve(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new cb.IfcPointOnSurface(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value),new cb.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new cb.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new cb.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),t[1].value,new zb(t[2].value),new zb(t[3].value)),759155922:(e,t)=>new cb.IfcPreDefinedColour(e,new cb.IfcLabel(t[0].value)),2559016684:(e,t)=>new cb.IfcPreDefinedCurveFont(e,new cb.IfcLabel(t[0].value)),433424934:(e,t)=>new cb.IfcPreDefinedDimensionSymbol(e,new cb.IfcLabel(t[0].value)),179317114:(e,t)=>new cb.IfcPreDefinedPointMarkerSymbol(e,new cb.IfcLabel(t[0].value)),673634403:(e,t)=>new cb.IfcProductDefinitionShape(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),871118103:(e,t)=>new cb.IfcPropertyBoundedValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?tD(1,t[3]):null,t[4]?new zb(t[4].value):null),1680319473:(e,t)=>new cb.IfcPropertyDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),4166981789:(e,t)=>new cb.IfcPropertyEnumeratedValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new cb.IfcPropertyListValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3]?new zb(t[3].value):null),941946838:(e,t)=>new cb.IfcPropertyReferenceValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value)),3357820518:(e,t)=>new cb.IfcPropertySetDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),3650150729:(e,t)=>new cb.IfcPropertySingleValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new cb.IfcPropertyTableValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3].map((e=>tD(1,e))),t[4]?new cb.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3615266464:(e,t)=>new cb.IfcRectangleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new cb.IfcRegularTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new cb.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),3765753017:(e,t)=>new cb.IfcReinforcementDefinitionProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),478536968:(e,t)=>new cb.IfcRelationship(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),2778083089:(e,t)=>new cb.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value)),1509187699:(e,t)=>new cb.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),2411513650:(e,t)=>new cb.IfcServiceLifeFactor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?tD(1,t[5]):null,tD(1,t[6]),t[7]?tD(1,t[7]):null),4124623270:(e,t)=>new cb.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),2609359061:(e,t)=>new cb.IfcSlippageConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new cb.IfcSolidModel(e),2485662743:(e,t)=>new cb.IfcSoundProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new cb.IfcBoolean(t[4].value),t[5],t[6].map((e=>new zb(e.value)))),1202362311:(e,t)=>new cb.IfcSoundValue(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new cb.IfcFrequencyMeasure(t[5].value),t[6]?tD(1,t[6]):null),390701378:(e,t)=>new cb.IfcSpaceThermalLoadProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5],t[6],t[7]?new cb.IfcText(t[7].value):null,new cb.IfcPowerMeasure(t[8].value),t[9]?new cb.IfcPowerMeasure(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new cb.IfcLabel(t[11].value):null,t[12]?new cb.IfcLabel(t[12].value):null,t[13]),1595516126:(e,t)=>new cb.IfcStructuralLoadLinearForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearForceMeasure(t[1].value):null,t[2]?new cb.IfcLinearForceMeasure(t[2].value):null,t[3]?new cb.IfcLinearForceMeasure(t[3].value):null,t[4]?new cb.IfcLinearMomentMeasure(t[4].value):null,t[5]?new cb.IfcLinearMomentMeasure(t[5].value):null,t[6]?new cb.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new cb.IfcStructuralLoadPlanarForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcPlanarForceMeasure(t[1].value):null,t[2]?new cb.IfcPlanarForceMeasure(t[2].value):null,t[3]?new cb.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new cb.IfcStructuralLoadSingleDisplacement(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new cb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new cb.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new cb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new cb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new cb.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new cb.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new cb.IfcStructuralLoadSingleForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcTorqueMeasure(t[4].value):null,t[5]?new cb.IfcTorqueMeasure(t[5].value):null,t[6]?new cb.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new cb.IfcStructuralLoadSingleForceWarping(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcTorqueMeasure(t[4].value):null,t[5]?new cb.IfcTorqueMeasure(t[5].value):null,t[6]?new cb.IfcTorqueMeasure(t[6].value):null,t[7]?new cb.IfcWarpingMomentMeasure(t[7].value):null),3843319758:(e,t)=>new cb.IfcStructuralProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcMomentOfInertiaMeasure(t[7].value):null,t[8]?new cb.IfcMomentOfInertiaMeasure(t[8].value):null,t[9]?new cb.IfcMomentOfInertiaMeasure(t[9].value):null,t[10]?new cb.IfcMomentOfInertiaMeasure(t[10].value):null,t[11]?new cb.IfcWarpingConstantMeasure(t[11].value):null,t[12]?new cb.IfcLengthMeasure(t[12].value):null,t[13]?new cb.IfcLengthMeasure(t[13].value):null,t[14]?new cb.IfcAreaMeasure(t[14].value):null,t[15]?new cb.IfcAreaMeasure(t[15].value):null,t[16]?new cb.IfcSectionModulusMeasure(t[16].value):null,t[17]?new cb.IfcSectionModulusMeasure(t[17].value):null,t[18]?new cb.IfcSectionModulusMeasure(t[18].value):null,t[19]?new cb.IfcSectionModulusMeasure(t[19].value):null,t[20]?new cb.IfcSectionModulusMeasure(t[20].value):null,t[21]?new cb.IfcLengthMeasure(t[21].value):null,t[22]?new cb.IfcLengthMeasure(t[22].value):null),3653947884:(e,t)=>new cb.IfcStructuralSteelProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcMomentOfInertiaMeasure(t[7].value):null,t[8]?new cb.IfcMomentOfInertiaMeasure(t[8].value):null,t[9]?new cb.IfcMomentOfInertiaMeasure(t[9].value):null,t[10]?new cb.IfcMomentOfInertiaMeasure(t[10].value):null,t[11]?new cb.IfcWarpingConstantMeasure(t[11].value):null,t[12]?new cb.IfcLengthMeasure(t[12].value):null,t[13]?new cb.IfcLengthMeasure(t[13].value):null,t[14]?new cb.IfcAreaMeasure(t[14].value):null,t[15]?new cb.IfcAreaMeasure(t[15].value):null,t[16]?new cb.IfcSectionModulusMeasure(t[16].value):null,t[17]?new cb.IfcSectionModulusMeasure(t[17].value):null,t[18]?new cb.IfcSectionModulusMeasure(t[18].value):null,t[19]?new cb.IfcSectionModulusMeasure(t[19].value):null,t[20]?new cb.IfcSectionModulusMeasure(t[20].value):null,t[21]?new cb.IfcLengthMeasure(t[21].value):null,t[22]?new cb.IfcLengthMeasure(t[22].value):null,t[23]?new cb.IfcAreaMeasure(t[23].value):null,t[24]?new cb.IfcAreaMeasure(t[24].value):null,t[25]?new cb.IfcPositiveRatioMeasure(t[25].value):null,t[26]?new cb.IfcPositiveRatioMeasure(t[26].value):null),2233826070:(e,t)=>new cb.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new cb.IfcSurface(e),1878645084:(e,t)=>new cb.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new cb.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(1,t[7]):null,t[8]),2247615214:(e,t)=>new cb.IfcSweptAreaSolid(e,new zb(t[0].value),new zb(t[1].value)),1260650574:(e,t)=>new cb.IfcSweptDiskSolid(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),t[2]?new cb.IfcPositiveLengthMeasure(t[2].value):null,new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value)),230924584:(e,t)=>new cb.IfcSweptSurface(e,new zb(t[0].value),new zb(t[1].value)),3071757647:(e,t)=>new cb.IfcTShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new cb.IfcPlaneAngleMeasure(t[11].value):null,t[12]?new cb.IfcPositiveLengthMeasure(t[12].value):null),3028897424:(e,t)=>new cb.IfcTerminatorSymbol(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value)),4282788508:(e,t)=>new cb.IfcTextLiteral(e,new cb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new cb.IfcTextLiteralWithExtent(e,new cb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new cb.IfcBoxAlignment(t[4].value)),2715220739:(e,t)=>new cb.IfcTrapeziumProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcLengthMeasure(t[6].value)),1345879162:(e,t)=>new cb.IfcTwoDirectionRepeatFactor(e,new zb(t[0].value),new zb(t[1].value)),1628702193:(e,t)=>new cb.IfcTypeObject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),2347495698:(e,t)=>new cb.IfcTypeProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null),427810014:(e,t)=>new cb.IfcUShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPlaneAngleMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),1417489154:(e,t)=>new cb.IfcVector(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new cb.IfcVertexLoop(e,new zb(t[0].value)),336235671:(e,t)=>new cb.IfcWindowLiningProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new cb.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new cb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new cb.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null),512836454:(e,t)=>new cb.IfcWindowPanelProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5],t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),1299126871:(e,t)=>new cb.IfcWindowStyle(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10].value,t[11].value),2543172580:(e,t)=>new cb.IfcZShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),3288037868:(e,t)=>new cb.IfcAnnotationCurveOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),669184980:(e,t)=>new cb.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),2265737646:(e,t)=>new cb.IfcAnnotationFillAreaOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]),1302238472:(e,t)=>new cb.IfcAnnotationSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),4261334040:(e,t)=>new cb.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new cb.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new cb.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new cb.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new cb.IfcBoundedSurface(e),2581212453:(e,t)=>new cb.IfcBoundingBox(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new cb.IfcBoxedHalfSpace(e,new zb(t[0].value),t[1].value,new zb(t[2].value)),2898889636:(e,t)=>new cb.IfcCShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),1123145078:(e,t)=>new cb.IfcCartesianPoint(e,t[0].map((e=>new cb.IfcLengthMeasure(e.value)))),59481748:(e,t)=>new cb.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null),3749851601:(e,t)=>new cb.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null),3486308946:(e,t)=>new cb.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?t[4].value:null),3331915920:(e,t)=>new cb.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new cb.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?new zb(t[4].value):null,t[5]?t[5].value:null,t[6]?t[6].value:null),1383045692:(e,t)=>new cb.IfcCircleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new cb.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),2485617015:(e,t)=>new cb.IfcCompositeCurveSegment(e,t[0],t[1].value,new zb(t[2].value)),4133800736:(e,t)=>new cb.IfcCraneRailAShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,new cb.IfcPositiveLengthMeasure(t[6].value),new cb.IfcPositiveLengthMeasure(t[7].value),new cb.IfcPositiveLengthMeasure(t[8].value),new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcPositiveLengthMeasure(t[10].value),new cb.IfcPositiveLengthMeasure(t[11].value),new cb.IfcPositiveLengthMeasure(t[12].value),new cb.IfcPositiveLengthMeasure(t[13].value),t[14]?new cb.IfcPositiveLengthMeasure(t[14].value):null),194851669:(e,t)=>new cb.IfcCraneRailFShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,new cb.IfcPositiveLengthMeasure(t[6].value),new cb.IfcPositiveLengthMeasure(t[7].value),new cb.IfcPositiveLengthMeasure(t[8].value),new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcPositiveLengthMeasure(t[10].value),t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),2506170314:(e,t)=>new cb.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new cb.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new cb.IfcCurve(e),2827736869:(e,t)=>new cb.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),693772133:(e,t)=>new cb.IfcDefinedSymbol(e,new zb(t[0].value),new zb(t[1].value)),606661476:(e,t)=>new cb.IfcDimensionCurve(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),4054601972:(e,t)=>new cb.IfcDimensionCurveTerminator(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value),t[4]),32440307:(e,t)=>new cb.IfcDirection(e,t[0].map((e=>e.value))),2963535650:(e,t)=>new cb.IfcDoorLiningProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcLengthMeasure(t[9].value):null,t[10]?new cb.IfcLengthMeasure(t[10].value):null,t[11]?new cb.IfcLengthMeasure(t[11].value):null,t[12]?new cb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new cb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null),1714330368:(e,t)=>new cb.IfcDoorPanelProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new cb.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),526551008:(e,t)=>new cb.IfcDoorStyle(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10].value,t[11].value),3073041342:(e,t)=>new cb.IfcDraughtingCallout(e,t[0].map((e=>new zb(e.value)))),445594917:(e,t)=>new cb.IfcDraughtingPreDefinedColour(e,new cb.IfcLabel(t[0].value)),4006246654:(e,t)=>new cb.IfcDraughtingPreDefinedCurveFont(e,new cb.IfcLabel(t[0].value)),1472233963:(e,t)=>new cb.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new cb.IfcElementQuantity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new cb.IfcElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2777663545:(e,t)=>new cb.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new cb.IfcEllipseProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),80994333:(e,t)=>new cb.IfcEnergyProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null),477187591:(e,t)=>new cb.IfcExtrudedAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2047409740:(e,t)=>new cb.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new cb.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new cb.IfcPlaneAngleMeasure(t[4].value)),4203026998:(e,t)=>new cb.IfcFillAreaStyleTileSymbolWithStyle(e,new zb(t[0].value)),315944413:(e,t)=>new cb.IfcFillAreaStyleTiles(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new cb.IfcPositiveRatioMeasure(t[2].value)),3455213021:(e,t)=>new cb.IfcFluidFlowProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value),t[9]?new zb(t[9].value):null,t[10]?new cb.IfcLabel(t[10].value):null,t[11]?new cb.IfcThermodynamicTemperatureMeasure(t[11].value):null,t[12]?new cb.IfcThermodynamicTemperatureMeasure(t[12].value):null,t[13]?new zb(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?tD(1,t[15]):null,t[16]?new cb.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new cb.IfcLinearVelocityMeasure(t[17].value):null,t[18]?new cb.IfcPressureMeasure(t[18].value):null),4238390223:(e,t)=>new cb.IfcFurnishingElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1268542332:(e,t)=>new cb.IfcFurnitureType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new cb.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new cb.IfcIShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null),572779678:(e,t)=>new cb.IfcLShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,new cb.IfcPositiveLengthMeasure(t[5].value),t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPlaneAngleMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),1281925730:(e,t)=>new cb.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new cb.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new cb.IfcObject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3388369263:(e,t)=>new cb.IfcOffsetCurve2D(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2].value),3505215534:(e,t)=>new cb.IfcOffsetCurve3D(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2].value,new zb(t[3].value)),3566463478:(e,t)=>new cb.IfcPermeableCoveringProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5],t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),603570806:(e,t)=>new cb.IfcPlanarBox(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new cb.IfcPlane(e,new zb(t[0].value)),2945172077:(e,t)=>new cb.IfcProcess(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),4208778838:(e,t)=>new cb.IfcProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new cb.IfcProject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7].map((e=>new zb(e.value))),new zb(t[8].value)),4194566429:(e,t)=>new cb.IfcProjectionCurve(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),1451395588:(e,t)=>new cb.IfcPropertySet(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),3219374653:(e,t)=>new cb.IfcProxy(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcLabel(t[8].value):null),2770003689:(e,t)=>new cb.IfcRectangleHollowProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null),2798486643:(e,t)=>new cb.IfcRectangularPyramid(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new cb.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value),new cb.IfcParameterValue(t[2].value),new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value),t[5].value,t[6].value),3939117080:(e,t)=>new cb.IfcRelAssigns(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new cb.IfcRelAssignsToActor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new cb.IfcRelAssignsToControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new cb.IfcRelAssignsToGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),4278684876:(e,t)=>new cb.IfcRelAssignsToProcess(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new cb.IfcRelAssignsToProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),3372526763:(e,t)=>new cb.IfcRelAssignsToProjectOrder(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new cb.IfcRelAssignsToResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new cb.IfcRelAssociates(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),1327628568:(e,t)=>new cb.IfcRelAssociatesAppliedValue(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4095574036:(e,t)=>new cb.IfcRelAssociatesApproval(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new cb.IfcRelAssociatesClassification(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new cb.IfcRelAssociatesConstraint(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new cb.IfcLabel(t[5].value),new zb(t[6].value)),982818633:(e,t)=>new cb.IfcRelAssociatesDocument(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new cb.IfcRelAssociatesLibrary(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new cb.IfcRelAssociatesMaterial(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2851387026:(e,t)=>new cb.IfcRelAssociatesProfileProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),826625072:(e,t)=>new cb.IfcRelConnects(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),1204542856:(e,t)=>new cb.IfcRelConnectsElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new cb.IfcRelConnectsPathElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>e.value)),t[8].map((e=>e.value)),t[9],t[10]),4201705270:(e,t)=>new cb.IfcRelConnectsPortToElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new cb.IfcRelConnectsPorts(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new cb.IfcRelConnectsStructuralActivity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3912681535:(e,t)=>new cb.IfcRelConnectsStructuralElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new cb.IfcRelConnectsStructuralMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new cb.IfcRelConnectsWithEccentricity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new cb.IfcRelConnectsWithRealizingElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new cb.IfcLabel(t[8].value):null),3242617779:(e,t)=>new cb.IfcRelContainedInSpatialStructure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new cb.IfcRelCoversBldgElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new cb.IfcRelCoversSpaces(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new cb.IfcRelDecomposes(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),693640335:(e,t)=>new cb.IfcRelDefines(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4186316022:(e,t)=>new cb.IfcRelDefinesByProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new cb.IfcRelDefinesByType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new cb.IfcRelFillsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new cb.IfcRelFlowControlElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4189434867:(e,t)=>new cb.IfcRelInteractionRequirements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcCountMeasure(t[4].value):null,t[5]?new cb.IfcNormalisedRatioMeasure(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),new zb(t[8].value)),3268803585:(e,t)=>new cb.IfcRelNests(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2051452291:(e,t)=>new cb.IfcRelOccupiesSpaces(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),202636808:(e,t)=>new cb.IfcRelOverridesProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value),t[6].map((e=>new zb(e.value)))),750771296:(e,t)=>new cb.IfcRelProjectsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new cb.IfcRelReferencedInSpatialStructure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),1058617721:(e,t)=>new cb.IfcRelSchedulesCostItems(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),4122056220:(e,t)=>new cb.IfcRelSequence(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),new cb.IfcTimeMeasure(t[6].value),t[7]),366585022:(e,t)=>new cb.IfcRelServicesBuildings(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new cb.IfcRelSpaceBoundary(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]),1401173127:(e,t)=>new cb.IfcRelVoidsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),2914609552:(e,t)=>new cb.IfcResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1856042241:(e,t)=>new cb.IfcRevolvedAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcPlaneAngleMeasure(t[3].value)),4158566097:(e,t)=>new cb.IfcRightCircularCone(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new cb.IfcRightCircularCylinder(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),2706606064:(e,t)=>new cb.IfcSpatialStructureElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new cb.IfcSpatialStructureElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),451544542:(e,t)=>new cb.IfcSphere(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),3544373492:(e,t)=>new cb.IfcStructuralActivity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new cb.IfcStructuralItem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new cb.IfcStructuralMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new cb.IfcStructuralReaction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new cb.IfcStructuralSurfaceMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new cb.IfcStructuralSurfaceMemberVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9].map((e=>new cb.IfcPositiveLengthMeasure(e.value))),new zb(t[10].value)),4070609034:(e,t)=>new cb.IfcStructuredDimensionCallout(e,t[0].map((e=>new zb(e.value)))),2028607225:(e,t)=>new cb.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value),new zb(t[5].value)),2809605785:(e,t)=>new cb.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new cb.IfcSurfaceOfRevolution(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),1580310250:(e,t)=>new cb.IfcSystemFurnitureElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3473067441:(e,t)=>new cb.IfcTask(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null),2097647324:(e,t)=>new cb.IfcTransportElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2296667514:(e,t)=>new cb.IfcActor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value)),1674181508:(e,t)=>new cb.IfcAnnotation(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3207858831:(e,t)=>new cb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,new cb.IfcPositiveLengthMeasure(t[8].value),t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),1334484129:(e,t)=>new cb.IfcBlock(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new cb.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new cb.IfcBoundedCurve(e),4031249490:(e,t)=>new cb.IfcBuilding(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcLengthMeasure(t[9].value):null,t[10]?new cb.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),1950629157:(e,t)=>new cb.IfcBuildingElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3124254112:(e,t)=>new cb.IfcBuildingStorey(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcLengthMeasure(t[9].value):null),2937912522:(e,t)=>new cb.IfcCircleHollowProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),300633059:(e,t)=>new cb.IfcColumnType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3732776249:(e,t)=>new cb.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),t[1].value),2510884976:(e,t)=>new cb.IfcConic(e,new zb(t[0].value)),2559216714:(e,t)=>new cb.IfcConstructionResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),3293443760:(e,t)=>new cb.IfcControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3895139033:(e,t)=>new cb.IfcCostItem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1419761937:(e,t)=>new cb.IfcCostSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,new cb.IfcIdentifier(t[11].value),t[12]),1916426348:(e,t)=>new cb.IfcCoveringType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new cb.IfcCrewResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),1457835157:(e,t)=>new cb.IfcCurtainWallType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),681481545:(e,t)=>new cb.IfcDimensionCurveDirectedCallout(e,t[0].map((e=>new zb(e.value)))),3256556792:(e,t)=>new cb.IfcDistributionElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3849074793:(e,t)=>new cb.IfcDistributionFlowElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),360485395:(e,t)=>new cb.IfcElectricalBaseProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null,t[6],new cb.IfcElectricVoltageMeasure(t[7].value),new cb.IfcFrequencyMeasure(t[8].value),t[9]?new cb.IfcElectricCurrentMeasure(t[9].value):null,t[10]?new cb.IfcElectricCurrentMeasure(t[10].value):null,t[11]?new cb.IfcPowerMeasure(t[11].value):null,t[12]?new cb.IfcPowerMeasure(t[12].value):null,t[13].value),1758889154:(e,t)=>new cb.IfcElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new cb.IfcElementAssembly(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]),1623761950:(e,t)=>new cb.IfcElementComponent(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new cb.IfcElementComponentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1704287377:(e,t)=>new cb.IfcEllipse(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new cb.IfcEnergyConversionDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1962604670:(e,t)=>new cb.IfcEquipmentElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3272907226:(e,t)=>new cb.IfcEquipmentStandard(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3174744832:(e,t)=>new cb.IfcEvaporativeCoolerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new cb.IfcEvaporatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),807026263:(e,t)=>new cb.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new cb.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),647756555:(e,t)=>new cb.IfcFastener(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2489546625:(e,t)=>new cb.IfcFastenerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2827207264:(e,t)=>new cb.IfcFeatureElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new cb.IfcFeatureElementAddition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new cb.IfcFeatureElementSubtraction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new cb.IfcFlowControllerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3198132628:(e,t)=>new cb.IfcFlowFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3815607619:(e,t)=>new cb.IfcFlowMeterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new cb.IfcFlowMovingDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1834744321:(e,t)=>new cb.IfcFlowSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1339347760:(e,t)=>new cb.IfcFlowStorageDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2297155007:(e,t)=>new cb.IfcFlowTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3009222698:(e,t)=>new cb.IfcFlowTreatmentDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),263784265:(e,t)=>new cb.IfcFurnishingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),814719939:(e,t)=>new cb.IfcFurnitureStandard(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),200128114:(e,t)=>new cb.IfcGasTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3009204131:(e,t)=>new cb.IfcGrid(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null),2706460486:(e,t)=>new cb.IfcGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1251058090:(e,t)=>new cb.IfcHeatExchangerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new cb.IfcHumidifierType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2391368822:(e,t)=>new cb.IfcInventory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],new zb(t[6].value),t[7].map((e=>new zb(e.value))),new zb(t[8].value),t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new cb.IfcJunctionBoxType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3827777499:(e,t)=>new cb.IfcLaborResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?new cb.IfcText(t[9].value):null),1051575348:(e,t)=>new cb.IfcLampType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new cb.IfcLightFixtureType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2506943328:(e,t)=>new cb.IfcLinearDimension(e,t[0].map((e=>new zb(e.value)))),377706215:(e,t)=>new cb.IfcMechanicalFastener(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),2108223431:(e,t)=>new cb.IfcMechanicalFastenerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3181161470:(e,t)=>new cb.IfcMemberType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new cb.IfcMotorConnectionType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1916936684:(e,t)=>new cb.IfcMove(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null,new zb(t[10].value),new zb(t[11].value),t[12]?t[12].map((e=>new cb.IfcText(e.value))):null),4143007308:(e,t)=>new cb.IfcOccupant(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new cb.IfcOpeningElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3425660407:(e,t)=>new cb.IfcOrderAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null,new cb.IfcIdentifier(t[10].value)),2837617999:(e,t)=>new cb.IfcOutletType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new cb.IfcPerformanceHistory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcLabel(t[5].value)),3327091369:(e,t)=>new cb.IfcPermit(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value)),804291784:(e,t)=>new cb.IfcPipeFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new cb.IfcPipeSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new cb.IfcPlateType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3724593414:(e,t)=>new cb.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new cb.IfcPort(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new cb.IfcProcedure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6],t[7]?new cb.IfcLabel(t[7].value):null),2904328755:(e,t)=>new cb.IfcProjectOrder(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6],t[7]?new cb.IfcLabel(t[7].value):null),3642467123:(e,t)=>new cb.IfcProjectOrderRecord(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value))),t[6]),3651124850:(e,t)=>new cb.IfcProjectionElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1842657554:(e,t)=>new cb.IfcProtectiveDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new cb.IfcPumpType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3248260540:(e,t)=>new cb.IfcRadiusDimension(e,t[0].map((e=>new zb(e.value)))),2893384427:(e,t)=>new cb.IfcRailingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2324767716:(e,t)=>new cb.IfcRampFlightType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),160246688:(e,t)=>new cb.IfcRelAggregates(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2863920197:(e,t)=>new cb.IfcRelAssignsTasks(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),1768891740:(e,t)=>new cb.IfcSanitaryTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3517283431:(e,t)=>new cb.IfcScheduleTimeControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new cb.IfcTimeMeasure(t[13].value):null,t[14]?new cb.IfcTimeMeasure(t[14].value):null,t[15]?new cb.IfcTimeMeasure(t[15].value):null,t[16]?new cb.IfcTimeMeasure(t[16].value):null,t[17]?new cb.IfcTimeMeasure(t[17].value):null,t[18]?t[18].value:null,t[19]?new zb(t[19].value):null,t[20]?new cb.IfcTimeMeasure(t[20].value):null,t[21]?new cb.IfcTimeMeasure(t[21].value):null,t[22]?new cb.IfcPositiveRatioMeasure(t[22].value):null),4105383287:(e,t)=>new cb.IfcServiceLife(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],new cb.IfcTimeMeasure(t[6].value)),4097777520:(e,t)=>new cb.IfcSite(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new cb.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new cb.IfcLengthMeasure(t[11].value):null,t[12]?new cb.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new cb.IfcSlabType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new cb.IfcSpace(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new cb.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new cb.IfcSpaceHeaterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),652456506:(e,t)=>new cb.IfcSpaceProgram(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcAreaMeasure(t[7].value):null,t[8]?new zb(t[8].value):null,new cb.IfcAreaMeasure(t[9].value)),3812236995:(e,t)=>new cb.IfcSpaceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3112655638:(e,t)=>new cb.IfcStackTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new cb.IfcStairFlightType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new cb.IfcStructuralAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null),1179482911:(e,t)=>new cb.IfcStructuralConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),4243806635:(e,t)=>new cb.IfcStructuralCurveConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),214636428:(e,t)=>new cb.IfcStructuralCurveMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),2445595289:(e,t)=>new cb.IfcStructuralCurveMemberVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),1807405624:(e,t)=>new cb.IfcStructuralLinearAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11]),1721250024:(e,t)=>new cb.IfcStructuralLinearActionVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11],new zb(t[12].value),t[13].map((e=>new zb(e.value)))),1252848954:(e,t)=>new cb.IfcStructuralLoadGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new cb.IfcRatioMeasure(t[8].value):null,t[9]?new cb.IfcLabel(t[9].value):null),1621171031:(e,t)=>new cb.IfcStructuralPlanarAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11]),3987759626:(e,t)=>new cb.IfcStructuralPlanarActionVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11],new zb(t[12].value),t[13].map((e=>new zb(e.value)))),2082059205:(e,t)=>new cb.IfcStructuralPointAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null),734778138:(e,t)=>new cb.IfcStructuralPointConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1235345126:(e,t)=>new cb.IfcStructuralPointReaction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new cb.IfcStructuralResultGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7].value),1975003073:(e,t)=>new cb.IfcStructuralSurfaceConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new cb.IfcSubContractResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new cb.IfcText(t[10].value):null),2315554128:(e,t)=>new cb.IfcSwitchingDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new cb.IfcSystem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),5716631:(e,t)=>new cb.IfcTankType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1637806684:(e,t)=>new cb.IfcTimeSeriesSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6],new zb(t[7].value)),1692211062:(e,t)=>new cb.IfcTransformerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1620046519:(e,t)=>new cb.IfcTransportElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]?new cb.IfcMassMeasure(t[9].value):null,t[10]?new cb.IfcCountMeasure(t[10].value):null),3593883385:(e,t)=>new cb.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),t[3].value,t[4]),1600972822:(e,t)=>new cb.IfcTubeBundleType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new cb.IfcUnitaryEquipmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new cb.IfcValveType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new cb.IfcVirtualElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1898987631:(e,t)=>new cb.IfcWallType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new cb.IfcWasteTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1028945134:(e,t)=>new cb.IfcWorkControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),4218914973:(e,t)=>new cb.IfcWorkPlan(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),3342526732:(e,t)=>new cb.IfcWorkSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),1033361043:(e,t)=>new cb.IfcZone(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1213861670:(e,t)=>new cb.Ifc2DCompositeCurve(e,t[0].map((e=>new zb(e.value))),t[1].value),3821786052:(e,t)=>new cb.IfcActionRequest(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value)),1411407467:(e,t)=>new cb.IfcAirTerminalBoxType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new cb.IfcAirTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new cb.IfcAirToAirHeatRecoveryType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2470393545:(e,t)=>new cb.IfcAngularDimension(e,t[0].map((e=>new zb(e.value)))),3460190687:(e,t)=>new cb.IfcAsset(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),new zb(t[7].value),new zb(t[8].value),new zb(t[9].value),new zb(t[10].value),new zb(t[11].value),new zb(t[12].value),new zb(t[13].value)),1967976161:(e,t)=>new cb.IfcBSplineCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value),819618141:(e,t)=>new cb.IfcBeamType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1916977116:(e,t)=>new cb.IfcBezierCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value),231477066:(e,t)=>new cb.IfcBoilerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3299480353:(e,t)=>new cb.IfcBuildingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),52481810:(e,t)=>new cb.IfcBuildingElementComponent(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2979338954:(e,t)=>new cb.IfcBuildingElementPart(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1095909175:(e,t)=>new cb.IfcBuildingElementProxy(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1909888760:(e,t)=>new cb.IfcBuildingElementProxyType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new cb.IfcCableCarrierFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new cb.IfcCableCarrierSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new cb.IfcCableSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new cb.IfcChillerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2611217952:(e,t)=>new cb.IfcCircle(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),2301859152:(e,t)=>new cb.IfcCoilType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new cb.IfcColumn(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3850581409:(e,t)=>new cb.IfcCompressorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new cb.IfcCondenserType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2188551683:(e,t)=>new cb.IfcCondition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1163958913:(e,t)=>new cb.IfcConditionCriterion(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3898045240:(e,t)=>new cb.IfcConstructionEquipmentResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),1060000209:(e,t)=>new cb.IfcConstructionMaterialResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new cb.IfcRatioMeasure(t[10].value):null),488727124:(e,t)=>new cb.IfcConstructionProductResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),335055490:(e,t)=>new cb.IfcCooledBeamType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new cb.IfcCoolingTowerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1973544240:(e,t)=>new cb.IfcCovering(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new cb.IfcCurtainWall(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3961806047:(e,t)=>new cb.IfcDamperType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4147604152:(e,t)=>new cb.IfcDiameterDimension(e,t[0].map((e=>new zb(e.value)))),1335981549:(e,t)=>new cb.IfcDiscreteAccessory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2635815018:(e,t)=>new cb.IfcDiscreteAccessoryType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1599208980:(e,t)=>new cb.IfcDistributionChamberElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new cb.IfcDistributionControlElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1945004755:(e,t)=>new cb.IfcDistributionElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new cb.IfcDistributionFlowElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new cb.IfcDistributionPort(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),395920057:(e,t)=>new cb.IfcDoor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),869906466:(e,t)=>new cb.IfcDuctFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new cb.IfcDuctSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new cb.IfcDuctSilencerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),855621170:(e,t)=>new cb.IfcEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),663422040:(e,t)=>new cb.IfcElectricApplianceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new cb.IfcElectricFlowStorageDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new cb.IfcElectricGeneratorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1365060375:(e,t)=>new cb.IfcElectricHeaterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new cb.IfcElectricMotorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new cb.IfcElectricTimeControlType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1634875225:(e,t)=>new cb.IfcElectricalCircuit(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),857184966:(e,t)=>new cb.IfcElectricalElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1658829314:(e,t)=>new cb.IfcEnergyConversionDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),346874300:(e,t)=>new cb.IfcFanType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new cb.IfcFilterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new cb.IfcFireSuppressionTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new cb.IfcFlowController(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new cb.IfcFlowFitting(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new cb.IfcFlowInstrumentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3132237377:(e,t)=>new cb.IfcFlowMovingDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new cb.IfcFlowSegment(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new cb.IfcFlowStorageDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new cb.IfcFlowTerminal(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new cb.IfcFlowTreatmentDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new cb.IfcFooting(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new cb.IfcMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1687234759:(e,t)=>new cb.IfcPile(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]),3171933400:(e,t)=>new cb.IfcPlate(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2262370178:(e,t)=>new cb.IfcRailing(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new cb.IfcRamp(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new cb.IfcRampFlight(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3055160366:(e,t)=>new cb.IfcRationalBezierCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value,t[5].map((e=>e.value))),3027567501:(e,t)=>new cb.IfcReinforcingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2320036040:(e,t)=>new cb.IfcReinforcingMesh(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,new cb.IfcPositiveLengthMeasure(t[11].value),new cb.IfcPositiveLengthMeasure(t[12].value),new cb.IfcAreaMeasure(t[13].value),new cb.IfcAreaMeasure(t[14].value),new cb.IfcPositiveLengthMeasure(t[15].value),new cb.IfcPositiveLengthMeasure(t[16].value)),2016517767:(e,t)=>new cb.IfcRoof(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1376911519:(e,t)=>new cb.IfcRoundedEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),1783015770:(e,t)=>new cb.IfcSensorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1529196076:(e,t)=>new cb.IfcSlab(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new cb.IfcStair(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new cb.IfcStairFlight(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?t[8].value:null,t[9]?t[9].value:null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),2515109513:(e,t)=>new cb.IfcStructuralAnalysisModel(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),3824725483:(e,t)=>new cb.IfcTendon(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9],new cb.IfcPositiveLengthMeasure(t[10].value),new cb.IfcAreaMeasure(t[11].value),t[12]?new cb.IfcForceMeasure(t[12].value):null,t[13]?new cb.IfcPressureMeasure(t[13].value):null,t[14]?new cb.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new cb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new cb.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new cb.IfcTendonAnchor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3313531582:(e,t)=>new cb.IfcVibrationIsolatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2391406946:(e,t)=>new cb.IfcWall(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3512223829:(e,t)=>new cb.IfcWallStandardCase(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3304561284:(e,t)=>new cb.IfcWindow(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),2874132201:(e,t)=>new cb.IfcActuatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3001207471:(e,t)=>new cb.IfcAlarmType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),753842376:(e,t)=>new cb.IfcBeam(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2454782716:(e,t)=>new cb.IfcChamferEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),578613899:(e,t)=>new cb.IfcControllerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1052013943:(e,t)=>new cb.IfcDistributionChamberElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1062813311:(e,t)=>new cb.IfcDistributionControlElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcIdentifier(t[8].value):null),3700593921:(e,t)=>new cb.IfcElectricDistributionPoint(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]?new cb.IfcLabel(t[9].value):null),979691226:(e,t)=>new cb.IfcReinforcingBar(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcAreaMeasure(t[10].value),t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13])},qb[1]={618182010:[912023232,3355820592],411424972:[1648886627,602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],3264961684:[776857604],2859738748:[1981873012,2732653382,4257277454,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],3796139169:[1694125774,2273265877],3200245327:[3732053477,647927063,3452421091,3548104201,3207319532,1040185647,2242383968],3265635763:[2445078500,803998398,3857492461,1860660968,1065908215,3317419933,2267347899,1227763645,1430189142,677618848,4256014907],4256014907:[1430189142,677618848],1918398963:[2889183280,3050246964,448429030],3701648758:[2624227202,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,931644368,2093928680,2044713172],3727388367:[4006246654,2559016684,445594917,759155922,4170525392,1983826977,1775413392,179317114,433424934,3213052703,990879717],990879717:[179317114,433424934,3213052703],1775413392:[4170525392,1983826977],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1290481447,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,3207858831,1484403080,2835456948,194851669,4133800736,2937912522,1383045692,2898889636,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],2802850158:[3653947884,3843319758,1446786286,3679540991],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,4203026998,374418227,2047409740,4147604152,2470393545,3248260540,2506943328,681481545,4070609034,3073041342,32440307,693772133,2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2581212453,3649129432,2736907675,1302238472,669184980,1417489154,3124975700,4282788508,220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,1345879162,2833995503,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235,2442683028,3958052878],2341007311:[781010003,202636808,4186316022,693640335,160246688,3268803585,2551354335,1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568,1865459582,205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259,3939117080,478536968,1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017,3357820518,1680319473,2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077,3888040117,3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,1628702193,219451334],3982875396:[1735638870,4240577450],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],2273995522:[2609359061,4219587988],2162789131:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],3958052878:[2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235,2442683028],846575682:[1878645084],626085974:[597895409,3905492369,616511568],280115917:[2552916305,1742049831],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],2442683028:[2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235],3612888222:[4054601972,3028897424],3798115385:[2705031697],1310608509:[3150382593],370225590:[2205249479,2665983363],3900360178:[2233826070,1029017970,476780140],2556980723:[3008276851],1809719519:[803316827],1446786286:[3653947884,3843319758],3448662350:[4142052618],2453401579:[315944413,4203026998,374418227,2047409740,4147604152,2470393545,3248260540,2506943328,681481545,4070609034,3073041342,32440307,693772133,2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2581212453,3649129432,2736907675,1302238472,669184980,1417489154,3124975700,4282788508,220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,1345879162,2833995503,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],219451334:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077,3888040117,3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,1628702193],2833995503:[1345879162],2529465313:[572779678,3207858831,1484403080,2835456948,194851669,4133800736,2937912522,1383045692,2898889636,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103],759155922:[445594917],2559016684:[4006246654],1680319473:[1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017,3357820518],3357820518:[1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017],3615266464:[2770003689,2778083089],478536968:[781010003,202636808,4186316022,693640335,160246688,3268803585,2551354335,1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568,1865459582,205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259,3939117080],723233188:[3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214],2473145415:[1973038258],1597423693:[1190533807],3843319758:[3653947884],2513912981:[220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[2028607225,1856042241,477187591],230924584:[4124788165,2809605785],3028897424:[4054601972],4282788508:[3124975700],1628702193:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698],2347495698:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871],3288037868:[4194566429,606661476],2736907675:[3649129432],4182860854:[3454111270,2827736869],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb],3073041342:[4147604152,2470393545,3248260540,2506943328,681481545,4070609034],339256511:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223],2777663545:[220341763],80994333:[360485395],4238390223:[1580310250,1268542332],1484403080:[3207858831],1425443689:[3737207727,807026263],3888040117:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077],2945172077:[2744685151,3425660407,1916936684,Qb],4208778838:[3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653],3939117080:[205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259],1683148259:[2051452291],2495723537:[2863920197,1058617721,3372526763],1865459582:[2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568],826625072:[1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,3268803585],693640335:[781010003,202636808,4186316022],4186316022:[202636808],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],2706606064:[Gb,jb,3124254112,4031249490],3893378262:[3812236995],3544373492:[2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126],3979015343:[2218152070],3473067441:[3425660407,1916936684],2296667514:[4143007308],1260505505:[3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249],1950629157:[1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059],3732776249:[1213861670],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033],681481545:[4147604152,2470393545,3248260540,2506943328],3256556792:[578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793],3849074793:[1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300],1758889154:[857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466],1623761950:[1335981549,377706215,647756555],2590856083:[3313531582,2635815018,2108223431,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832],647756555:[377706215],2489546625:[2108223431],2827207264:[2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[2454782716,1376911519,855621170,3588315303],3907093117:[712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114],3009222698:[1810631287,2030761528],2706460486:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822],3740093272:[3041715199],682877961:[2082059205,3987759626,1621171031,1721250024,1807405624],1179482911:[1975003073,734778138,4243806635],214636428:[2445595289],1807405624:[1721250024],1621171031:[3987759626],2254336722:[2515109513,1634875225],1028945134:[3342526732,4218914973],1967976161:[3055160366,1916977116],1916977116:[3055160366],3299480353:[_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810],52481810:[979691226,2347447852,Ob,2320036040,3027567501,2979338954],2635815018:[3313531582],2063403501:[578613899,3001207471,2874132201,1783015770,4037862832],1945004755:[1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961],3040386961:[1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314],855621170:[2454782716,1376911519],2058353004:[3700593921],3027567501:[979691226,2347447852,Ob,2320036040],2391406946:[3512223829]},Xb[1]={618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],130549933:[["Actors",2080292479,1,!0],["IsRelatedWith",3869604511,0,!0],["Relates",3869604511,1,!0]],747523909:[["Contains",1767535486,1,!0]],1767535486:[["IsClassifiedItemIn",1098599126,1,!0],["IsClassifyingItemIn",1098599126,0,!0]],1959218052:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],602808272:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],1154170062:[["IsPointedTo",770865208,1,!0],["IsPointer",770865208,0,!0]],1648886627:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],3452421091:[["ReferenceIntoLibrary",2655187982,4,!0]],1838606355:[["HasRepresentation",2022407955,3,!0],["ClassifiedAs",1847130766,1,!0]],248100487:[["ToMaterialLayerSet",3303938423,0,!1]],3368373690:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],2251480897:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["PartOfComplex",3021840470,2,!0]],2226359599:[["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],2598011224:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2044713172:[["PartOfComplex",3021840470,2,!0]],2093928680:[["PartOfComplex",3021840470,2,!0]],931644368:[["PartOfComplex",3021840470,2,!0]],3252649465:[["PartOfComplex",3021840470,2,!0]],2405470396:[["PartOfComplex",3021840470,2,!0]],825690147:[["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["MapUsage",2347385850,0,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],3692461612:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],531007025:[["OfTable",985171141,1,!1]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],280115917:[["AnnotatedSurface",1302238472,1,!0]],1742049831:[["AnnotatedSurface",1302238472,1,!0]],2552916305:[["AnnotatedSurface",1302238472,1,!0]],3101149627:[["DocumentedBy",1718945513,0,!0]],1377556343:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2442683028:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],962685235:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3612888222:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2297822566:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],370225590:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3732053477:[["ReferenceToDocument",1154170062,3,!0]],3900360178:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2556980723:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1809719519:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0]],2453401579:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0]],3590301190:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],812098782:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3741457305:[["DocumentedBy",1718945513,0,!0]],1402838566:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],1008929658:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],219451334:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0]],2833995503:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2665983363:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2519244187:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["PartOfComplex",3021840470,2,!0]],2004835150:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],871118103:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],1680319473:[["HasAssociations",1865459582,4,!0]],4166981789:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2752243245:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],941946838:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],3357820518:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],3650150729:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],110355661:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],3413951693:[["DocumentedBy",1718945513,0,!0]],3765753017:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1509187699:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2411513650:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],4124623270:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],723233188:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485662743:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1202362311:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],390701378:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],2233826070:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3028897424:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1345879162:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1417489154:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],336235671:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],512836454:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1299126871:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3288037868:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],669184980:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2265737646:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1302238472:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4261334040:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1123145078:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2205249479:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485617015:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2506170314:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],693772133:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],606661476:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["AnnotatedBySymbols",3028897424,3,!0]],4054601972:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],32440307:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2963535650:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1714330368:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],526551008:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3073041342:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],1472233963:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2777663545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],80994333:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],477187591:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4203026998:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3455213021:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],987898635:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1281925730:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0]],3388369263:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3566463478:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],603570806:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0]],103090709:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0]],4194566429:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1451395588:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],3219374653:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0]],2798486643:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],451544542:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],3136571912:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1],["Causes",682877961,10,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],4070609034:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],2028607225:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsActingUpon",1683148259,6,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],1334484129:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],1950629157:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],300633059:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3732776249:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],681481545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],360485395:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1704287377:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1962604670:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3272907226:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],807026263:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],647756555:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],263784265:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],814719939:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],200128114:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1251058090:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],4288270099:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2506943328:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],377706215:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],977012517:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1916936684:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],3425660407:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3724593414:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!1],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3642467123:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3248260540:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3517283431:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0],["ScheduleTimeControlAssigned",2863920197,7,!1]],4105383287:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],652456506:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0],["HasInteractionReqsFrom",4189434867,7,!0],["HasInteractionReqsTo",4189434867,8,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],682877961:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1179482911:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1721250024:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1252848954:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],3987759626:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],2082059205:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],734778138:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1],["Causes",682877961,10,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ResultGroupFor",2515109513,8,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],2315554128:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1637806684:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3593883385:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],728799441:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1898987631:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1213861670:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2470393545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1967976161:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1916977116:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],231477066:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3299480353:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],52481810:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],395041908:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2611217952:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],843113511:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2188551683:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1163958913:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["CoversSpaces",2802773753,5,!0],["Covers",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4147604152:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!1],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],855621170:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],663422040:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1365060375:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],712377611:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1634875225:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],857184966:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],346874300:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3055160366:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1376911519:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],1783015770:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],331165859:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2454782716:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],578613899:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["AssignedToFlowElement",279856033,4,!0]],3700593921:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],979691226:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]]},Jb[1]={3630933823:(e,t)=>new cb.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new cb.IfcAddress(e,t[0],t[1],t[2]),639542469:(e,t)=>new cb.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new cb.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),1110488051:(e,t)=>new cb.IfcAppliedValueRelationship(e,t[0],t[1],t[2],t[3],t[4]),130549933:(e,t)=>new cb.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2080292479:(e,t)=>new cb.IfcApprovalActorRelationship(e,t[0],t[1],t[2]),390851274:(e,t)=>new cb.IfcApprovalPropertyRelationship(e,t[0],t[1]),3869604511:(e,t)=>new cb.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),4037036970:(e,t)=>new cb.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new cb.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new cb.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new cb.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new cb.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),622194075:(e,t)=>new cb.IfcCalendarDate(e,t[0],t[1],t[2]),747523909:(e,t)=>new cb.IfcClassification(e,t[0],t[1],t[2],t[3]),1767535486:(e,t)=>new cb.IfcClassificationItem(e,t[0],t[1],t[2]),1098599126:(e,t)=>new cb.IfcClassificationItemRelationship(e,t[0],t[1]),938368621:(e,t)=>new cb.IfcClassificationNotation(e,t[0]),3639012971:(e,t)=>new cb.IfcClassificationNotationFacet(e,t[0]),3264961684:(e,t)=>new cb.IfcColourSpecification(e,t[0]),2859738748:(e,t)=>new cb.IfcConnectionGeometry(e),2614616156:(e,t)=>new cb.IfcConnectionPointGeometry(e,t[0],t[1]),4257277454:(e,t)=>new cb.IfcConnectionPortGeometry(e,t[0],t[1],t[2]),2732653382:(e,t)=>new cb.IfcConnectionSurfaceGeometry(e,t[0],t[1]),1959218052:(e,t)=>new cb.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1658513725:(e,t)=>new cb.IfcConstraintAggregationRelationship(e,t[0],t[1],t[2],t[3],t[4]),613356794:(e,t)=>new cb.IfcConstraintClassificationRelationship(e,t[0],t[1]),347226245:(e,t)=>new cb.IfcConstraintRelationship(e,t[0],t[1],t[2],t[3]),1065062679:(e,t)=>new cb.IfcCoordinatedUniversalTimeOffset(e,t[0],t[1],t[2]),602808272:(e,t)=>new cb.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),539742890:(e,t)=>new cb.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new cb.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new cb.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new cb.IfcCurveStyleFontPattern(e,t[0],t[1]),1072939445:(e,t)=>new cb.IfcDateAndTime(e,t[0],t[1]),1765591967:(e,t)=>new cb.IfcDerivedUnit(e,t[0],t[1],t[2]),1045800335:(e,t)=>new cb.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new cb.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1376555844:(e,t)=>new cb.IfcDocumentElectronicFormat(e,t[0],t[1],t[2]),1154170062:(e,t)=>new cb.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new cb.IfcDocumentInformationRelationship(e,t[0],t[1],t[2]),3796139169:(e,t)=>new cb.IfcDraughtingCalloutRelationship(e,t[0],t[1],t[2],t[3]),1648886627:(e,t)=>new cb.IfcEnvironmentalImpactValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3200245327:(e,t)=>new cb.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new cb.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new cb.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3207319532:(e,t)=>new cb.IfcExternallyDefinedSymbol(e,t[0],t[1],t[2]),3548104201:(e,t)=>new cb.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new cb.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new cb.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new cb.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4]),3452421091:(e,t)=>new cb.IfcLibraryReference(e,t[0],t[1],t[2]),4162380809:(e,t)=>new cb.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new cb.IfcLightIntensityDistribution(e,t[0],t[1]),30780891:(e,t)=>new cb.IfcLocalTime(e,t[0],t[1],t[2],t[3],t[4]),1838606355:(e,t)=>new cb.IfcMaterial(e,t[0]),1847130766:(e,t)=>new cb.IfcMaterialClassificationRelationship(e,t[0],t[1]),248100487:(e,t)=>new cb.IfcMaterialLayer(e,t[0],t[1],t[2]),3303938423:(e,t)=>new cb.IfcMaterialLayerSet(e,t[0],t[1]),1303795690:(e,t)=>new cb.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3]),2199411900:(e,t)=>new cb.IfcMaterialList(e,t[0]),3265635763:(e,t)=>new cb.IfcMaterialProperties(e,t[0]),2597039031:(e,t)=>new cb.IfcMeasureWithUnit(e,t[0],t[1]),4256014907:(e,t)=>new cb.IfcMechanicalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),677618848:(e,t)=>new cb.IfcMechanicalSteelMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3368373690:(e,t)=>new cb.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2706619895:(e,t)=>new cb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new cb.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new cb.IfcObjectPlacement(e),2251480897:(e,t)=>new cb.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1227763645:(e,t)=>new cb.IfcOpticalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4251960020:(e,t)=>new cb.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1411181986:(e,t)=>new cb.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1207048766:(e,t)=>new cb.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new cb.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new cb.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new cb.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new cb.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new cb.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3727388367:(e,t)=>new cb.IfcPreDefinedItem(e,t[0]),990879717:(e,t)=>new cb.IfcPreDefinedSymbol(e,t[0]),3213052703:(e,t)=>new cb.IfcPreDefinedTerminatorSymbol(e,t[0]),1775413392:(e,t)=>new cb.IfcPreDefinedTextFont(e,t[0]),2022622350:(e,t)=>new cb.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new cb.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new cb.IfcPresentationStyle(e,t[0]),2417041796:(e,t)=>new cb.IfcPresentationStyleAssignment(e,t[0]),2095639259:(e,t)=>new cb.IfcProductRepresentation(e,t[0],t[1],t[2]),2267347899:(e,t)=>new cb.IfcProductsOfCombustionProperties(e,t[0],t[1],t[2],t[3],t[4]),3958567839:(e,t)=>new cb.IfcProfileDef(e,t[0],t[1]),2802850158:(e,t)=>new cb.IfcProfileProperties(e,t[0],t[1]),2598011224:(e,t)=>new cb.IfcProperty(e,t[0],t[1]),3896028662:(e,t)=>new cb.IfcPropertyConstraintRelationship(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new cb.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3710013099:(e,t)=>new cb.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new cb.IfcQuantityArea(e,t[0],t[1],t[2],t[3]),2093928680:(e,t)=>new cb.IfcQuantityCount(e,t[0],t[1],t[2],t[3]),931644368:(e,t)=>new cb.IfcQuantityLength(e,t[0],t[1],t[2],t[3]),3252649465:(e,t)=>new cb.IfcQuantityTime(e,t[0],t[1],t[2],t[3]),2405470396:(e,t)=>new cb.IfcQuantityVolume(e,t[0],t[1],t[2],t[3]),825690147:(e,t)=>new cb.IfcQuantityWeight(e,t[0],t[1],t[2],t[3]),2692823254:(e,t)=>new cb.IfcReferencesValueDocument(e,t[0],t[1],t[2],t[3]),1580146022:(e,t)=>new cb.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1222501353:(e,t)=>new cb.IfcRelaxation(e,t[0],t[1]),1076942058:(e,t)=>new cb.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new cb.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new cb.IfcRepresentationItem(e),1660063152:(e,t)=>new cb.IfcRepresentationMap(e,t[0],t[1]),3679540991:(e,t)=>new cb.IfcRibPlateProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2341007311:(e,t)=>new cb.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new cb.IfcSIUnit(e,t[0],t[1],t[2]),2042790032:(e,t)=>new cb.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new cb.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),867548509:(e,t)=>new cb.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new cb.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new cb.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),3692461612:(e,t)=>new cb.IfcSimpleProperty(e,t[0],t[1]),2273995522:(e,t)=>new cb.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new cb.IfcStructuralLoad(e,t[0]),2525727697:(e,t)=>new cb.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new cb.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new cb.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new cb.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new cb.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new cb.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new cb.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new cb.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new cb.IfcSurfaceStyleShading(e,t[0]),1351298697:(e,t)=>new cb.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new cb.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3]),1290481447:(e,t)=>new cb.IfcSymbolStyle(e,t[0],t[1]),985171141:(e,t)=>new cb.IfcTable(e,t[0],t[1]),531007025:(e,t)=>new cb.IfcTableRow(e,t[0],t[1]),912023232:(e,t)=>new cb.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1447204868:(e,t)=>new cb.IfcTextStyle(e,t[0],t[1],t[2],t[3]),1983826977:(e,t)=>new cb.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2636378356:(e,t)=>new cb.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new cb.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1484833681:(e,t)=>new cb.IfcTextStyleWithBoxCharacteristics(e,t[0],t[1],t[2],t[3],t[4]),280115917:(e,t)=>new cb.IfcTextureCoordinate(e),1742049831:(e,t)=>new cb.IfcTextureCoordinateGenerator(e,t[0],t[1]),2552916305:(e,t)=>new cb.IfcTextureMap(e,t[0]),1210645708:(e,t)=>new cb.IfcTextureVertex(e,t[0]),3317419933:(e,t)=>new cb.IfcThermalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4]),3101149627:(e,t)=>new cb.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1718945513:(e,t)=>new cb.IfcTimeSeriesReferenceRelationship(e,t[0],t[1]),581633288:(e,t)=>new cb.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new cb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new cb.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new cb.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new cb.IfcVertex(e),3304826586:(e,t)=>new cb.IfcVertexBasedTextureMap(e,t[0],t[1]),1907098498:(e,t)=>new cb.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new cb.IfcVirtualGridIntersection(e,t[0],t[1]),1065908215:(e,t)=>new cb.IfcWaterProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2442683028:(e,t)=>new cb.IfcAnnotationOccurrence(e,t[0],t[1],t[2]),962685235:(e,t)=>new cb.IfcAnnotationSurfaceOccurrence(e,t[0],t[1],t[2]),3612888222:(e,t)=>new cb.IfcAnnotationSymbolOccurrence(e,t[0],t[1],t[2]),2297822566:(e,t)=>new cb.IfcAnnotationTextOccurrence(e,t[0],t[1],t[2]),3798115385:(e,t)=>new cb.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new cb.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new cb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new cb.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3150382593:(e,t)=>new cb.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),647927063:(e,t)=>new cb.IfcClassificationReference(e,t[0],t[1],t[2],t[3]),776857604:(e,t)=>new cb.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new cb.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),1485152156:(e,t)=>new cb.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new cb.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new cb.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new cb.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new cb.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new cb.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),3800577675:(e,t)=>new cb.IfcCurveStyle(e,t[0],t[1],t[2],t[3]),3632507154:(e,t)=>new cb.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),2273265877:(e,t)=>new cb.IfcDimensionCalloutRelationship(e,t[0],t[1],t[2],t[3]),1694125774:(e,t)=>new cb.IfcDimensionPair(e,t[0],t[1],t[2],t[3]),3732053477:(e,t)=>new cb.IfcDocumentReference(e,t[0],t[1],t[2]),4170525392:(e,t)=>new cb.IfcDraughtingPreDefinedTextFont(e,t[0]),3900360178:(e,t)=>new cb.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new cb.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),1860660968:(e,t)=>new cb.IfcExtendedMaterialProperties(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new cb.IfcFace(e,t[0]),1809719519:(e,t)=>new cb.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new cb.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new cb.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new cb.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new cb.IfcFillAreaStyle(e,t[0],t[1]),3857492461:(e,t)=>new cb.IfcFuelProperties(e,t[0],t[1],t[2],t[3],t[4]),803998398:(e,t)=>new cb.IfcGeneralMaterialProperties(e,t[0],t[1],t[2],t[3]),1446786286:(e,t)=>new cb.IfcGeneralProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3448662350:(e,t)=>new cb.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new cb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new cb.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),3590301190:(e,t)=>new cb.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new cb.IfcGridPlacement(e,t[0],t[1]),812098782:(e,t)=>new cb.IfcHalfSpaceSolid(e,t[0],t[1]),2445078500:(e,t)=>new cb.IfcHygroscopicMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3905492369:(e,t)=>new cb.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4]),3741457305:(e,t)=>new cb.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1402838566:(e,t)=>new cb.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new cb.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new cb.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new cb.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new cb.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new cb.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2624227202:(e,t)=>new cb.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new cb.IfcLoop(e),2347385850:(e,t)=>new cb.IfcMappedItem(e,t[0],t[1]),2022407955:(e,t)=>new cb.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1430189142:(e,t)=>new cb.IfcMechanicalConcreteMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),219451334:(e,t)=>new cb.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),2833995503:(e,t)=>new cb.IfcOneDirectionRepeatFactor(e,t[0]),2665983363:(e,t)=>new cb.IfcOpenShell(e,t[0]),1029017970:(e,t)=>new cb.IfcOrientedEdge(e,t[0],t[1]),2529465313:(e,t)=>new cb.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new cb.IfcPath(e,t[0]),3021840470:(e,t)=>new cb.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new cb.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2004835150:(e,t)=>new cb.IfcPlacement(e,t[0]),1663979128:(e,t)=>new cb.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new cb.IfcPoint(e),4022376103:(e,t)=>new cb.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new cb.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new cb.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new cb.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),759155922:(e,t)=>new cb.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new cb.IfcPreDefinedCurveFont(e,t[0]),433424934:(e,t)=>new cb.IfcPreDefinedDimensionSymbol(e,t[0]),179317114:(e,t)=>new cb.IfcPreDefinedPointMarkerSymbol(e,t[0]),673634403:(e,t)=>new cb.IfcProductDefinitionShape(e,t[0],t[1],t[2]),871118103:(e,t)=>new cb.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4]),1680319473:(e,t)=>new cb.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),4166981789:(e,t)=>new cb.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new cb.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new cb.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),3357820518:(e,t)=>new cb.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),3650150729:(e,t)=>new cb.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new cb.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3615266464:(e,t)=>new cb.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new cb.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3765753017:(e,t)=>new cb.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new cb.IfcRelationship(e,t[0],t[1],t[2],t[3]),2778083089:(e,t)=>new cb.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new cb.IfcSectionedSpine(e,t[0],t[1],t[2]),2411513650:(e,t)=>new cb.IfcServiceLifeFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4124623270:(e,t)=>new cb.IfcShellBasedSurfaceModel(e,t[0]),2609359061:(e,t)=>new cb.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new cb.IfcSolidModel(e),2485662743:(e,t)=>new cb.IfcSoundProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1202362311:(e,t)=>new cb.IfcSoundValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),390701378:(e,t)=>new cb.IfcSpaceThermalLoadProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1595516126:(e,t)=>new cb.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new cb.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new cb.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new cb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new cb.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new cb.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3843319758:(e,t)=>new cb.IfcStructuralProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22]),3653947884:(e,t)=>new cb.IfcStructuralSteelProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26]),2233826070:(e,t)=>new cb.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new cb.IfcSurface(e),1878645084:(e,t)=>new cb.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new cb.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new cb.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),230924584:(e,t)=>new cb.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new cb.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3028897424:(e,t)=>new cb.IfcTerminatorSymbol(e,t[0],t[1],t[2],t[3]),4282788508:(e,t)=>new cb.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new cb.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),2715220739:(e,t)=>new cb.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1345879162:(e,t)=>new cb.IfcTwoDirectionRepeatFactor(e,t[0],t[1]),1628702193:(e,t)=>new cb.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),2347495698:(e,t)=>new cb.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),427810014:(e,t)=>new cb.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1417489154:(e,t)=>new cb.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new cb.IfcVertexLoop(e,t[0]),336235671:(e,t)=>new cb.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),512836454:(e,t)=>new cb.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1299126871:(e,t)=>new cb.IfcWindowStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2543172580:(e,t)=>new cb.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3288037868:(e,t)=>new cb.IfcAnnotationCurveOccurrence(e,t[0],t[1],t[2]),669184980:(e,t)=>new cb.IfcAnnotationFillArea(e,t[0],t[1]),2265737646:(e,t)=>new cb.IfcAnnotationFillAreaOccurrence(e,t[0],t[1],t[2],t[3],t[4]),1302238472:(e,t)=>new cb.IfcAnnotationSurface(e,t[0],t[1]),4261334040:(e,t)=>new cb.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new cb.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new cb.IfcAxis2Placement3D(e,t[0],t[1],t[2]),2736907675:(e,t)=>new cb.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new cb.IfcBoundedSurface(e),2581212453:(e,t)=>new cb.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new cb.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new cb.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1123145078:(e,t)=>new cb.IfcCartesianPoint(e,t[0]),59481748:(e,t)=>new cb.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new cb.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new cb.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new cb.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new cb.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new cb.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new cb.IfcClosedShell(e,t[0]),2485617015:(e,t)=>new cb.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),4133800736:(e,t)=>new cb.IfcCraneRailAShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),194851669:(e,t)=>new cb.IfcCraneRailFShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new cb.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new cb.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new cb.IfcCurve(e),2827736869:(e,t)=>new cb.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),693772133:(e,t)=>new cb.IfcDefinedSymbol(e,t[0],t[1]),606661476:(e,t)=>new cb.IfcDimensionCurve(e,t[0],t[1],t[2]),4054601972:(e,t)=>new cb.IfcDimensionCurveTerminator(e,t[0],t[1],t[2],t[3],t[4]),32440307:(e,t)=>new cb.IfcDirection(e,t[0]),2963535650:(e,t)=>new cb.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),1714330368:(e,t)=>new cb.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),526551008:(e,t)=>new cb.IfcDoorStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),3073041342:(e,t)=>new cb.IfcDraughtingCallout(e,t[0]),445594917:(e,t)=>new cb.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new cb.IfcDraughtingPreDefinedCurveFont(e,t[0]),1472233963:(e,t)=>new cb.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new cb.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new cb.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new cb.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new cb.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),80994333:(e,t)=>new cb.IfcEnergyProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),477187591:(e,t)=>new cb.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2047409740:(e,t)=>new cb.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new cb.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),4203026998:(e,t)=>new cb.IfcFillAreaStyleTileSymbolWithStyle(e,t[0]),315944413:(e,t)=>new cb.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),3455213021:(e,t)=>new cb.IfcFluidFlowProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18]),4238390223:(e,t)=>new cb.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new cb.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new cb.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new cb.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),572779678:(e,t)=>new cb.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1281925730:(e,t)=>new cb.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new cb.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new cb.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),3388369263:(e,t)=>new cb.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new cb.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),3566463478:(e,t)=>new cb.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603570806:(e,t)=>new cb.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new cb.IfcPlane(e,t[0]),2945172077:(e,t)=>new cb.IfcProcess(e,t[0],t[1],t[2],t[3],t[4]),4208778838:(e,t)=>new cb.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new cb.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4194566429:(e,t)=>new cb.IfcProjectionCurve(e,t[0],t[1],t[2]),1451395588:(e,t)=>new cb.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),3219374653:(e,t)=>new cb.IfcProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2770003689:(e,t)=>new cb.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new cb.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new cb.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3939117080:(e,t)=>new cb.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new cb.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new cb.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new cb.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4278684876:(e,t)=>new cb.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new cb.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3372526763:(e,t)=>new cb.IfcRelAssignsToProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new cb.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new cb.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),1327628568:(e,t)=>new cb.IfcRelAssociatesAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4095574036:(e,t)=>new cb.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new cb.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new cb.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new cb.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new cb.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new cb.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),2851387026:(e,t)=>new cb.IfcRelAssociatesProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),826625072:(e,t)=>new cb.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new cb.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new cb.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new cb.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new cb.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new cb.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),3912681535:(e,t)=>new cb.IfcRelConnectsStructuralElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new cb.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new cb.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new cb.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new cb.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new cb.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new cb.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new cb.IfcRelDecomposes(e,t[0],t[1],t[2],t[3],t[4],t[5]),693640335:(e,t)=>new cb.IfcRelDefines(e,t[0],t[1],t[2],t[3],t[4]),4186316022:(e,t)=>new cb.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new cb.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new cb.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new cb.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),4189434867:(e,t)=>new cb.IfcRelInteractionRequirements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3268803585:(e,t)=>new cb.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),2051452291:(e,t)=>new cb.IfcRelOccupiesSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),202636808:(e,t)=>new cb.IfcRelOverridesProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),750771296:(e,t)=>new cb.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new cb.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),1058617721:(e,t)=>new cb.IfcRelSchedulesCostItems(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4122056220:(e,t)=>new cb.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),366585022:(e,t)=>new cb.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new cb.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1401173127:(e,t)=>new cb.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),2914609552:(e,t)=>new cb.IfcResource(e,t[0],t[1],t[2],t[3],t[4]),1856042241:(e,t)=>new cb.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),4158566097:(e,t)=>new cb.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new cb.IfcRightCircularCylinder(e,t[0],t[1],t[2]),2706606064:(e,t)=>new cb.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new cb.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),451544542:(e,t)=>new cb.IfcSphere(e,t[0],t[1]),3544373492:(e,t)=>new cb.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new cb.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new cb.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new cb.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new cb.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new cb.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4070609034:(e,t)=>new cb.IfcStructuredDimensionCallout(e,t[0]),2028607225:(e,t)=>new cb.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new cb.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new cb.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new cb.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3473067441:(e,t)=>new cb.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2097647324:(e,t)=>new cb.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2296667514:(e,t)=>new cb.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1674181508:(e,t)=>new cb.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3207858831:(e,t)=>new cb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new cb.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new cb.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new cb.IfcBoundedCurve(e),4031249490:(e,t)=>new cb.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1950629157:(e,t)=>new cb.IfcBuildingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3124254112:(e,t)=>new cb.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new cb.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),300633059:(e,t)=>new cb.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3732776249:(e,t)=>new cb.IfcCompositeCurve(e,t[0],t[1]),2510884976:(e,t)=>new cb.IfcConic(e,t[0]),2559216714:(e,t)=>new cb.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3293443760:(e,t)=>new cb.IfcControl(e,t[0],t[1],t[2],t[3],t[4]),3895139033:(e,t)=>new cb.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4]),1419761937:(e,t)=>new cb.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),1916426348:(e,t)=>new cb.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new cb.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1457835157:(e,t)=>new cb.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),681481545:(e,t)=>new cb.IfcDimensionCurveDirectedCallout(e,t[0]),3256556792:(e,t)=>new cb.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new cb.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),360485395:(e,t)=>new cb.IfcElectricalBaseProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1758889154:(e,t)=>new cb.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new cb.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new cb.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new cb.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new cb.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new cb.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1962604670:(e,t)=>new cb.IfcEquipmentElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3272907226:(e,t)=>new cb.IfcEquipmentStandard(e,t[0],t[1],t[2],t[3],t[4]),3174744832:(e,t)=>new cb.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new cb.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),807026263:(e,t)=>new cb.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new cb.IfcFacetedBrepWithVoids(e,t[0],t[1]),647756555:(e,t)=>new cb.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2489546625:(e,t)=>new cb.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2827207264:(e,t)=>new cb.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new cb.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new cb.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new cb.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new cb.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new cb.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new cb.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new cb.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new cb.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new cb.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new cb.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),263784265:(e,t)=>new cb.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),814719939:(e,t)=>new cb.IfcFurnitureStandard(e,t[0],t[1],t[2],t[3],t[4]),200128114:(e,t)=>new cb.IfcGasTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3009204131:(e,t)=>new cb.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2706460486:(e,t)=>new cb.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new cb.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new cb.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391368822:(e,t)=>new cb.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new cb.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new cb.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1051575348:(e,t)=>new cb.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new cb.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2506943328:(e,t)=>new cb.IfcLinearDimension(e,t[0]),377706215:(e,t)=>new cb.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2108223431:(e,t)=>new cb.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3181161470:(e,t)=>new cb.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new cb.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916936684:(e,t)=>new cb.IfcMove(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4143007308:(e,t)=>new cb.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new cb.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3425660407:(e,t)=>new cb.IfcOrderAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2837617999:(e,t)=>new cb.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new cb.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5]),3327091369:(e,t)=>new cb.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5]),804291784:(e,t)=>new cb.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new cb.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new cb.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3724593414:(e,t)=>new cb.IfcPolyline(e,t[0]),3740093272:(e,t)=>new cb.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new cb.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new cb.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3642467123:(e,t)=>new cb.IfcProjectOrderRecord(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3651124850:(e,t)=>new cb.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1842657554:(e,t)=>new cb.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new cb.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3248260540:(e,t)=>new cb.IfcRadiusDimension(e,t[0]),2893384427:(e,t)=>new cb.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2324767716:(e,t)=>new cb.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),160246688:(e,t)=>new cb.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),2863920197:(e,t)=>new cb.IfcRelAssignsTasks(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1768891740:(e,t)=>new cb.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3517283431:(e,t)=>new cb.IfcScheduleTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22]),4105383287:(e,t)=>new cb.IfcServiceLife(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4097777520:(e,t)=>new cb.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new cb.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new cb.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new cb.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),652456506:(e,t)=>new cb.IfcSpaceProgram(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new cb.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3112655638:(e,t)=>new cb.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new cb.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new cb.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1179482911:(e,t)=>new cb.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4243806635:(e,t)=>new cb.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),214636428:(e,t)=>new cb.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2445595289:(e,t)=>new cb.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1807405624:(e,t)=>new cb.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1721250024:(e,t)=>new cb.IfcStructuralLinearActionVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1252848954:(e,t)=>new cb.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1621171031:(e,t)=>new cb.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),3987759626:(e,t)=>new cb.IfcStructuralPlanarActionVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2082059205:(e,t)=>new cb.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),734778138:(e,t)=>new cb.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1235345126:(e,t)=>new cb.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new cb.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1975003073:(e,t)=>new cb.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new cb.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2315554128:(e,t)=>new cb.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new cb.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),5716631:(e,t)=>new cb.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1637806684:(e,t)=>new cb.IfcTimeSeriesSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1692211062:(e,t)=>new cb.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1620046519:(e,t)=>new cb.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3593883385:(e,t)=>new cb.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new cb.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new cb.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new cb.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new cb.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1898987631:(e,t)=>new cb.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new cb.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1028945134:(e,t)=>new cb.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4218914973:(e,t)=>new cb.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),3342526732:(e,t)=>new cb.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),1033361043:(e,t)=>new cb.IfcZone(e,t[0],t[1],t[2],t[3],t[4]),1213861670:(e,t)=>new cb.Ifc2DCompositeCurve(e,t[0],t[1]),3821786052:(e,t)=>new cb.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5]),1411407467:(e,t)=>new cb.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new cb.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new cb.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2470393545:(e,t)=>new cb.IfcAngularDimension(e,t[0]),3460190687:(e,t)=>new cb.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1967976161:(e,t)=>new cb.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),819618141:(e,t)=>new cb.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916977116:(e,t)=>new cb.IfcBezierCurve(e,t[0],t[1],t[2],t[3],t[4]),231477066:(e,t)=>new cb.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3299480353:(e,t)=>new cb.IfcBuildingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),52481810:(e,t)=>new cb.IfcBuildingElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2979338954:(e,t)=>new cb.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1095909175:(e,t)=>new cb.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1909888760:(e,t)=>new cb.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new cb.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new cb.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new cb.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new cb.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2611217952:(e,t)=>new cb.IfcCircle(e,t[0],t[1]),2301859152:(e,t)=>new cb.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new cb.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3850581409:(e,t)=>new cb.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new cb.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188551683:(e,t)=>new cb.IfcCondition(e,t[0],t[1],t[2],t[3],t[4]),1163958913:(e,t)=>new cb.IfcConditionCriterion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3898045240:(e,t)=>new cb.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1060000209:(e,t)=>new cb.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new cb.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),335055490:(e,t)=>new cb.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new cb.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1973544240:(e,t)=>new cb.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new cb.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3961806047:(e,t)=>new cb.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4147604152:(e,t)=>new cb.IfcDiameterDimension(e,t[0]),1335981549:(e,t)=>new cb.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2635815018:(e,t)=>new cb.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1599208980:(e,t)=>new cb.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new cb.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new cb.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new cb.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new cb.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),395920057:(e,t)=>new cb.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),869906466:(e,t)=>new cb.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new cb.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new cb.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),855621170:(e,t)=>new cb.IfcEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),663422040:(e,t)=>new cb.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new cb.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new cb.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1365060375:(e,t)=>new cb.IfcElectricHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new cb.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new cb.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634875225:(e,t)=>new cb.IfcElectricalCircuit(e,t[0],t[1],t[2],t[3],t[4]),857184966:(e,t)=>new cb.IfcElectricalElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1658829314:(e,t)=>new cb.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),346874300:(e,t)=>new cb.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new cb.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new cb.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new cb.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new cb.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new cb.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3132237377:(e,t)=>new cb.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new cb.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new cb.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new cb.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new cb.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new cb.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new cb.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1687234759:(e,t)=>new cb.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3171933400:(e,t)=>new cb.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2262370178:(e,t)=>new cb.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new cb.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new cb.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3055160366:(e,t)=>new cb.IfcRationalBezierCurve(e,t[0],t[1],t[2],t[3],t[4],t[5]),3027567501:(e,t)=>new cb.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new cb.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2016517767:(e,t)=>new cb.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1376911519:(e,t)=>new cb.IfcRoundedEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1783015770:(e,t)=>new cb.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1529196076:(e,t)=>new cb.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new cb.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new cb.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2515109513:(e,t)=>new cb.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3824725483:(e,t)=>new cb.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new cb.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new cb.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391406946:(e,t)=>new cb.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3512223829:(e,t)=>new cb.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3304561284:(e,t)=>new cb.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2874132201:(e,t)=>new cb.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3001207471:(e,t)=>new cb.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),753842376:(e,t)=>new cb.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2454782716:(e,t)=>new cb.IfcChamferEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),578613899:(e,t)=>new cb.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1052013943:(e,t)=>new cb.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1062813311:(e,t)=>new cb.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3700593921:(e,t)=>new cb.IfcElectricDistributionPoint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),979691226:(e,t)=>new cb.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13])},Zb[1]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate],1110488051:e=>[e.ComponentOfTotal,e.Components,e.ArithmeticOperator,e.Name,e.Description],130549933:e=>[e.Description,e.ApprovalDateTime,e.ApprovalStatus,e.ApprovalLevel,e.ApprovalQualifier,e.Name,e.Identifier],2080292479:e=>[e.Actor,e.Approval,e.Role],390851274:e=>[e.ApprovedProperties,e.Approval],3869604511:e=>[e.RelatedApproval,e.RelatingApproval,e.Description,e.Name],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.LinearStiffnessByLengthX,e.LinearStiffnessByLengthY,e.LinearStiffnessByLengthZ,e.RotationalStiffnessByLengthX,e.RotationalStiffnessByLengthY,e.RotationalStiffnessByLengthZ],3367102660:e=>[e.Name,e.LinearStiffnessByAreaX,e.LinearStiffnessByAreaY,e.LinearStiffnessByAreaZ],1387855156:e=>[e.Name,e.LinearStiffnessX,e.LinearStiffnessY,e.LinearStiffnessZ,e.RotationalStiffnessX,e.RotationalStiffnessY,e.RotationalStiffnessZ],2069777674:e=>[e.Name,e.LinearStiffnessX,e.LinearStiffnessY,e.LinearStiffnessZ,e.RotationalStiffnessX,e.RotationalStiffnessY,e.RotationalStiffnessZ,e.WarpingStiffness],622194075:e=>[e.DayComponent,e.MonthComponent,e.YearComponent],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name],1767535486:e=>[e.Notation,e.ItemOf,e.Title],1098599126:e=>[e.RelatingItem,e.RelatedItems],938368621:e=>[e.NotationFacets],3639012971:e=>[e.NotationValue],3264961684:e=>[e.Name],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],4257277454:e=>[e.LocationAtRelatingElement,e.LocationAtRelatedElement,e.ProfileOfPort],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1658513725:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedConstraints,e.LogicalAggregator],613356794:e=>[e.ClassifiedConstraint,e.RelatedClassifications],347226245:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedConstraints],1065062679:e=>[e.HourOffset,e.MinuteOffset,e.Sense],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.CostType,e.Condition],539742890:e=>[e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],1072939445:e=>[e.DateComponent,e.TimeComponent],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],1376555844:e=>[e.FileExtension,e.MimeContentType,e.MimeSubtype],1154170062:e=>[e.DocumentId,e.Name,e.Description,e.DocumentReferences,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3796139169:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],1648886627:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.ImpactType,e.Category,e.UserDefinedCategory],3200245327:e=>[e.Location,e.ItemReference,e.Name],2242383968:e=>[e.Location,e.ItemReference,e.Name],1040185647:e=>[e.Location,e.ItemReference,e.Name],3207319532:e=>[e.Location,e.ItemReference,e.Name],3548104201:e=>[e.Location,e.ItemReference,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.LibraryReference],3452421091:e=>[e.Location,e.ItemReference,e.Name],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],30780891:e=>[e.HourComponent,e.MinuteComponent,e.SecondComponent,e.Zone,e.DaylightSavingOffset],1838606355:e=>[e.Name],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString()]},3303938423:e=>[e.MaterialLayers,e.LayerSetName],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine],2199411900:e=>[e.Materials],3265635763:e=>[e.Material],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],4256014907:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient],677618848:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient,e.YieldStress,e.UltimateStress,e.UltimateStrain,e.HardeningModule,e.ProportionalStress,e.PlasticStrain,e.Relaxations],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.ResultValues,e.ObjectiveQualifier,e.UserDefinedQualifier],1227763645:e=>[e.Material,e.VisibleTransmittance,e.SolarTransmittance,e.ThermalIrTransmittance,e.ThermalIrEmissivityBack,e.ThermalIrEmissivityFront,e.VisibleReflectanceBack,e.VisibleReflectanceFront,e.SolarReflectanceFront,e.SolarReflectanceBack],4251960020:e=>[e.Id,e.Name,e.Description,e.Roles,e.Addresses],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Id,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],3727388367:e=>[e.Name],990879717:e=>[e.Name],3213052703:e=>[e.Name],1775413392:e=>[e.Name],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier,e.LayerOn,e.LayerFrozen,e.LayerBlocked,e.LayerStyles],3119450353:e=>[e.Name],2417041796:e=>[e.Styles],2095639259:e=>[e.Name,e.Description,e.Representations],2267347899:e=>[e.Material,e.SpecificHeatCapacity,e.N20Content,e.COContent,e.CO2Content],3958567839:e=>[e.ProfileType,e.ProfileName],2802850158:e=>[e.ProfileName,e.ProfileDefinition],2598011224:e=>[e.Name,e.Description],3896028662:e=>[e.RelatingConstraint,e.RelatedProperties,e.Name,e.Description],148025276:e=>[e.DependingProperty,e.DependantProperty,e.Name,e.Description,e.Expression],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue],2692823254:e=>[e.ReferencedDocument,e.ReferencingValues,e.Name,e.Description],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],1222501353:e=>[e.RelaxationValue,e.InitialStress],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],3679540991:e=>[e.ProfileName,e.ProfileDefinition,e.Thickness,e.RibHeight,e.RibWidth,e.RibSpacing,e.Direction],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],867548509:e=>[e.ShapeRepresentations,e.Name,e.Description,e.ProductDefinitional,e.PartOfProductDefinitionShape],3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3692461612:e=>[e.Name,e.Description],2273995522:e=>[e.Name],2162789131:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaT_Constant,e.DeltaT_Y,e.DeltaT_Z],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour],1351298697:e=>[e.Textures],626085974:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform],1290481447:e=>[e.Name,sD(e.StyleOfSymbol)],985171141:e=>[e.Name,e.Rows],531007025:e=>[e.RowCells.map((e=>sD(e))),e.IsHeading],912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL],1447204868:e=>[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],1484833681:e=>[e.BoxHeight,e.BoxWidth,e.BoxSlantAngle,e.BoxRotateAngle,e.CharacterSpacing?sD(e.CharacterSpacing):null],280115917:e=>[],1742049831:e=>[e.Mode,e.Parameter.map((e=>sD(e)))],2552916305:e=>[e.TextureMaps],1210645708:e=>[e.Coordinates],3317419933:e=>[e.Material,e.SpecificHeatCapacity,e.BoilingPoint,e.FreezingPoint,e.ThermalConductivity],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],1718945513:e=>[e.ReferencedTimeSeries,e.TimeSeriesReferences],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],3304826586:e=>[e.TextureVertices,e.TexturePoints],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1065908215:e=>[e.Material,e.IsPotable,e.Hardness,e.AlkalinityConcentration,e.AcidityConcentration,e.ImpuritiesContent,e.PHLevel,e.DissolvedSolidsContent],2442683028:e=>[e.Item,e.Styles,e.Name],962685235:e=>[e.Item,e.Styles,e.Name],3612888222:e=>[e.Item,e.Styles,e.Name],2297822566:e=>[e.Item,e.Styles,e.Name],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.RasterFormat,e.RasterCode],3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],647927063:e=>[e.Location,e.ItemReference,e.Name,e.ReferencedSource],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Description,e.UsageName,e.HasProperties],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],3800577675:e=>[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],2273265877:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],1694125774:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],3732053477:e=>[e.Location,e.ItemReference,e.Name],4170525392:e=>[e.Name],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,e.SameSense],1860660968:e=>[e.Material,e.ExtendedProperties,e.Description,e.Name],2556980723:e=>[e.Bounds],1809719519:e=>[e.Bound,e.Orientation],803316827:e=>[e.Bound,e.Orientation],3008276851:e=>[e.Bounds,e.FaceSurface,e.SameSense],4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>[e.Name,e.FillStyles],3857492461:e=>[e.Material,e.CombustionTemperature,e.CarbonContent,e.LowerHeatingValue,e.HigherHeatingValue],803998398:e=>[e.Material,e.MolecularWeight,e.Porosity,e.MassDensity],1446786286:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea],3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementLocation,e.PlacementRefDirection],812098782:e=>[e.BaseSurface,e.AgreementFlag],2445078500:e=>[e.Material,e.UpperVaporResistanceFactor,e.LowerVaporResistanceFactor,e.IsothermalMoistureCapacity,e.VaporPermeability,e.MoistureDiffusivity],3905492369:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.UrlReference],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1430189142:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient,e.CompressiveStrength,e.MaxAggregateSize,e.AdmixturesDescription,e.Workability,e.ProtectivePoreRatio,e.WaterImpermeability],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2833995503:e=>[e.RepeatFactor],2665983363:e=>[e.CfsFaces],1029017970:e=>[e.EdgeStart,e.EdgeEnd,e.EdgeElement,e.Orientation],2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.Width,e.Height,e.ColourComponents,e.Pixel],2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>[e.BaseSurface,e.AgreementFlag,e.Position,e.PolygonalBoundary],759155922:e=>[e.Name],2559016684:e=>[e.Name],433424934:e=>[e.Name],179317114:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],871118103:e=>[e.Name,e.Description,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],4166981789:e=>[e.Name,e.Description,e.EnumerationValues.map((e=>sD(e))),e.EnumerationReference],2752243245:e=>[e.Name,e.Description,e.ListValues.map((e=>sD(e))),e.Unit],941946838:e=>[e.Name,e.Description,e.UsageName,e.PropertyReference],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3650150729:e=>[e.Name,e.Description,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Description,e.DefiningValues.map((e=>sD(e))),e.DefinedValues.map((e=>sD(e))),e.Expression,e.DefiningUnit,e.DefinedUnit],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],2411513650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PredefinedType,e.UpperValue?sD(e.UpperValue):null,sD(e.MostUsedValue),e.LowerValue?sD(e.LowerValue):null],4124623270:e=>[e.SbsmBoundary],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],2485662743:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,null==(t=e.IsAttenuating)?void 0:t.toString(),e.SoundScale,e.SoundValues]},1202362311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.SoundLevelTimeSeries,e.Frequency,e.SoundLevelSingleValue?sD(e.SoundLevelSingleValue):null],390701378:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableValueRatio,e.ThermalLoadSource,e.PropertySource,e.SourceDescription,e.MaximumValue,e.MinimumValue,e.ThermalLoadTimeSeriesValues,e.UserDefinedThermalLoadSource,e.UserDefinedPropertySource,e.ThermalLoadType],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],3843319758:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea,e.TorsionalConstantX,e.MomentOfInertiaYZ,e.MomentOfInertiaY,e.MomentOfInertiaZ,e.WarpingConstant,e.ShearCentreZ,e.ShearCentreY,e.ShearDeformationAreaZ,e.ShearDeformationAreaY,e.MaximumSectionModulusY,e.MinimumSectionModulusY,e.MaximumSectionModulusZ,e.MinimumSectionModulusZ,e.TorsionalSectionModulus,e.CentreOfGravityInX,e.CentreOfGravityInY],3653947884:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea,e.TorsionalConstantX,e.MomentOfInertiaYZ,e.MomentOfInertiaY,e.MomentOfInertiaZ,e.WarpingConstant,e.ShearCentreZ,e.ShearCentreY,e.ShearDeformationAreaZ,e.ShearDeformationAreaY,e.MaximumSectionModulusY,e.MinimumSectionModulusY,e.MaximumSectionModulusZ,e.MinimumSectionModulusZ,e.TorsionalSectionModulus,e.CentreOfGravityInX,e.CentreOfGravityInY,e.ShearAreaZ,e.ShearAreaY,e.PlasticShapeFactorY,e.PlasticShapeFactorZ],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope,e.CentreOfGravityInY],3028897424:e=>[e.Item,e.Styles,e.Name,e.AnnotatedCurve],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1345879162:e=>[e.RepeatFactor,e.SecondRepeatFactor],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope,e.CentreOfGravityInX],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],1299126871:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ConstructionType,e.OperationType,e.ParameterTakesPrecedence,e.Sizeable],2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3288037868:e=>[e.Item,e.Styles,e.Name],669184980:e=>[e.OuterBoundary,e.InnerBoundaries],2265737646:e=>[e.Item,e.Styles,e.Name,e.FillStyleTarget,e.GlobalOrLocal],1302238472:e=>[e.Item,e.TextureCoordinates],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>[e.BaseSurface,e.AgreementFlag,e.Enclosure],2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius,e.CentreOfGravityInX],1123145078:e=>[e.Coordinates],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],2485617015:e=>[e.Transition,e.SameSense,e.ParentCurve],4133800736:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallHeight,e.BaseWidth2,e.Radius,e.HeadWidth,e.HeadDepth2,e.HeadDepth3,e.WebThickness,e.BaseWidth4,e.BaseDepth1,e.BaseDepth2,e.BaseDepth3,e.CentreOfGravityInY],194851669:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallHeight,e.HeadWidth,e.Radius,e.HeadDepth2,e.HeadDepth3,e.WebThickness,e.BaseDepth1,e.BaseDepth2,e.CentreOfGravityInY],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],693772133:e=>[e.Definition,e.Target],606661476:e=>[e.Item,e.Styles,e.Name],4054601972:e=>[e.Item,e.Styles,e.Name,e.AnnotatedCurve,e.Role],32440307:e=>[e.DirectionRatios],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],526551008:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.OperationType,e.ConstructionType,e.ParameterTakesPrecedence,e.Sizeable],3073041342:e=>[e.Contents],445594917:e=>[e.Name],4006246654:e=>[e.Name],1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],80994333:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.EnergySequence,e.UserDefinedEnergySequence],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],4203026998:e=>[e.Symbol],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],3455213021:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PropertySource,e.FlowConditionTimeSeries,e.VelocityTimeSeries,e.FlowrateTimeSeries,e.Fluid,e.PressureTimeSeries,e.UserDefinedPropertySource,e.TemperatureSingleValue,e.WetBulbTemperatureSingleValue,e.WetBulbTemperatureTimeSeries,e.TemperatureTimeSeries,e.FlowrateSingleValue?sD(e.FlowrateSingleValue):null,e.FlowConditionSingleValue,e.VelocitySingleValue,e.PressureSingleValue],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope,e.CentreOfGravityInX,e.CentreOfGravityInY],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3388369263:e=>[e.BasisCurve,e.Distance,e.SelfIntersect],3505215534:e=>[e.BasisCurve,e.Distance,e.SelfIntersect,e.RefDirection],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],4194566429:e=>[e.Item,e.Styles,e.Name],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],3219374653:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.ProxyType,e.Tag],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,e.Usense,e.Vsense],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],3372526763:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],1327628568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingAppliedValue],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],2851387026:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingProfileProperties,e.ProfileSectionLocation,e.ProfileOrientation],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],3912681535:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralMember],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedSpace,e.RelatedCoverings],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],4189434867:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DailyInteraction,e.ImportanceRating,e.LocationOfInteraction,e.RelatedSpaceProgram,e.RelatingSpaceProgram],3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2051452291:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],202636808:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition,e.OverridingProperties],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],1058617721:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],451544542:e=>[e.Position,e.Radius],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness,e.SubsequentThickness,e.VaryingThicknessLocation],4070609034:e=>[e.Contents],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3473067441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.CentreOfGravityInY],1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],1950629157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3732776249:e=>[e.Segments,e.SelfIntersect],2510884976:e=>[e.Position],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.SubmittedBy,e.PreparedBy,e.SubmittedOn,e.Status,e.TargetUsers,e.UpdateDate,e.ID,e.PredefinedType],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],681481545:e=>[e.Contents],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],360485395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.EnergySequence,e.UserDefinedEnergySequence,e.ElectricCurrentType,e.InputVoltage,e.InputFrequency,e.FullLoadCurrent,e.MinimumCircuitCurrent,e.MaximumPowerInput,e.RatedPowerInput,e.InputPhase],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1962604670:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3272907226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],814719939:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],200128114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes],2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.InventoryType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.SkillSet],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2506943328:e=>[e.Contents],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916936684:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority,e.MoveFrom,e.MoveTo,e.PunchList],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3425660407:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority,e.ActionID],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LifeCyclePhase],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PermitID],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ProcedureID,e.ProcedureType,e.UserDefinedProcedureType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ID,e.PredefinedType,e.Status],3642467123:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Records,e.PredefinedType],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3248260540:e=>[e.Contents],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2863920197:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl,e.TimeForTask],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3517283431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ActualStart,e.EarlyStart,e.LateStart,e.ScheduleStart,e.ActualFinish,e.EarlyFinish,e.LateFinish,e.ScheduleFinish,e.ScheduleDuration,e.ActualDuration,e.RemainingTime,e.FreeFloat,e.TotalFloat,e.IsCritical,e.StatusTime,e.StartFloat,e.FinishFloat,e.Completion],4105383287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ServiceLifeType,e.ServiceLifeDuration],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.InteriorOrExteriorSpace,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],652456506:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.SpaceProgramIdentifier,e.MaxRequiredArea,e.MinRequiredArea,e.RequestedLocation,e.StandardRequiredArea],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy],1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],1807405624:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue],1721250024:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue,e.VaryingAppliedLoadLocation,e.SubsequentAppliedLoads],1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],1621171031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue],3987759626:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue,e.VaryingAppliedLoadLocation,e.SubsequentAppliedLoads],2082059205:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy],734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,e.IsLinear],1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.SubContractor,e.JobDescription],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1637806684:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ApplicableDates,e.TimeSeriesScheduleType,e.TimeSeries],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OperationType,e.CapacityByWeight,e.CapacityByNumber],3593883385:e=>[e.BasisCurve,e.Trim1,e.Trim2,e.SenseAgreement,e.MasterRepresentation],1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1213861670:e=>[e.Segments,e.SelfIntersect],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.RequestID],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2470393545:e=>[e.Contents],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.AssetID,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1967976161:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect],819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916977116:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3299480353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],52481810:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.CompositionType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188551683:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1163958913:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Criterion,e.CriterionDateTime],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.Suppliers,e.UsageRatio],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4147604152:e=>[e.Contents],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],855621170:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1365060375:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634875225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],857184966:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3055160366:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect,e.WeightsData],3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],1376911519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength,e.Radius],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRiser,e.NumberOfTreads,e.RiserHeight,e.TreadLength],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2454782716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength,e.Width,e.Height],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ControlElementId],3700593921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.DistributionPointFunction,e.UserDefinedFunction],979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarRole,e.BarSurface]},$b[1]={3699917729:e=>new cb.IfcAbsorbedDoseMeasure(e),4182062534:e=>new cb.IfcAccelerationMeasure(e),360377573:e=>new cb.IfcAmountOfSubstanceMeasure(e),632304761:e=>new cb.IfcAngularVelocityMeasure(e),2650437152:e=>new cb.IfcAreaMeasure(e),2735952531:e=>new cb.IfcBoolean(e),1867003952:e=>new cb.IfcBoxAlignment(e),2991860651:e=>new cb.IfcComplexNumber(e),3812528620:e=>new cb.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new cb.IfcContextDependentMeasure(e),1778710042:e=>new cb.IfcCountMeasure(e),94842927:e=>new cb.IfcCurvatureMeasure(e),86635668:e=>new cb.IfcDayInMonthNumber(e),300323983:e=>new cb.IfcDaylightSavingHour(e),1514641115:e=>new cb.IfcDescriptiveMeasure(e),4134073009:e=>new cb.IfcDimensionCount(e),524656162:e=>new cb.IfcDoseEquivalentMeasure(e),69416015:e=>new cb.IfcDynamicViscosityMeasure(e),1827137117:e=>new cb.IfcElectricCapacitanceMeasure(e),3818826038:e=>new cb.IfcElectricChargeMeasure(e),2093906313:e=>new cb.IfcElectricConductanceMeasure(e),3790457270:e=>new cb.IfcElectricCurrentMeasure(e),2951915441:e=>new cb.IfcElectricResistanceMeasure(e),2506197118:e=>new cb.IfcElectricVoltageMeasure(e),2078135608:e=>new cb.IfcEnergyMeasure(e),1102727119:e=>new cb.IfcFontStyle(e),2715512545:e=>new cb.IfcFontVariant(e),2590844177:e=>new cb.IfcFontWeight(e),1361398929:e=>new cb.IfcForceMeasure(e),3044325142:e=>new cb.IfcFrequencyMeasure(e),3064340077:e=>new cb.IfcGloballyUniqueId(e),3113092358:e=>new cb.IfcHeatFluxDensityMeasure(e),1158859006:e=>new cb.IfcHeatingValueMeasure(e),2589826445:e=>new cb.IfcHourInDay(e),983778844:e=>new cb.IfcIdentifier(e),3358199106:e=>new cb.IfcIlluminanceMeasure(e),2679005408:e=>new cb.IfcInductanceMeasure(e),1939436016:e=>new cb.IfcInteger(e),3809634241:e=>new cb.IfcIntegerCountRateMeasure(e),3686016028:e=>new cb.IfcIonConcentrationMeasure(e),3192672207:e=>new cb.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new cb.IfcKinematicViscosityMeasure(e),3258342251:e=>new cb.IfcLabel(e),1243674935:e=>new cb.IfcLengthMeasure(e),191860431:e=>new cb.IfcLinearForceMeasure(e),2128979029:e=>new cb.IfcLinearMomentMeasure(e),1307019551:e=>new cb.IfcLinearStiffnessMeasure(e),3086160713:e=>new cb.IfcLinearVelocityMeasure(e),503418787:e=>new cb.IfcLogical(e),2095003142:e=>new cb.IfcLuminousFluxMeasure(e),2755797622:e=>new cb.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new cb.IfcLuminousIntensityMeasure(e),286949696:e=>new cb.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new cb.IfcMagneticFluxMeasure(e),1477762836:e=>new cb.IfcMassDensityMeasure(e),4017473158:e=>new cb.IfcMassFlowRateMeasure(e),3124614049:e=>new cb.IfcMassMeasure(e),3531705166:e=>new cb.IfcMassPerLengthMeasure(e),102610177:e=>new cb.IfcMinuteInHour(e),3341486342:e=>new cb.IfcModulusOfElasticityMeasure(e),2173214787:e=>new cb.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new cb.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new cb.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new cb.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new cb.IfcMolecularWeightMeasure(e),3114022597:e=>new cb.IfcMomentOfInertiaMeasure(e),2615040989:e=>new cb.IfcMonetaryMeasure(e),765770214:e=>new cb.IfcMonthInYearNumber(e),2095195183:e=>new cb.IfcNormalisedRatioMeasure(e),2395907400:e=>new cb.IfcNumericMeasure(e),929793134:e=>new cb.IfcPHMeasure(e),2260317790:e=>new cb.IfcParameterValue(e),2642773653:e=>new cb.IfcPlanarForceMeasure(e),4042175685:e=>new cb.IfcPlaneAngleMeasure(e),2815919920:e=>new cb.IfcPositiveLengthMeasure(e),3054510233:e=>new cb.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new cb.IfcPositiveRatioMeasure(e),1364037233:e=>new cb.IfcPowerMeasure(e),2169031380:e=>new cb.IfcPresentableText(e),3665567075:e=>new cb.IfcPressureMeasure(e),3972513137:e=>new cb.IfcRadioActivityMeasure(e),96294661:e=>new cb.IfcRatioMeasure(e),200335297:e=>new cb.IfcReal(e),2133746277:e=>new cb.IfcRotationalFrequencyMeasure(e),1755127002:e=>new cb.IfcRotationalMassMeasure(e),3211557302:e=>new cb.IfcRotationalStiffnessMeasure(e),2766185779:e=>new cb.IfcSecondInMinute(e),3467162246:e=>new cb.IfcSectionModulusMeasure(e),2190458107:e=>new cb.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new cb.IfcShearModulusMeasure(e),3471399674:e=>new cb.IfcSolidAngleMeasure(e),846465480:e=>new cb.IfcSoundPowerMeasure(e),993287707:e=>new cb.IfcSoundPressureMeasure(e),3477203348:e=>new cb.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new cb.IfcSpecularExponent(e),361837227:e=>new cb.IfcSpecularRoughness(e),58845555:e=>new cb.IfcTemperatureGradientMeasure(e),2801250643:e=>new cb.IfcText(e),1460886941:e=>new cb.IfcTextAlignment(e),3490877962:e=>new cb.IfcTextDecoration(e),603696268:e=>new cb.IfcTextFontName(e),296282323:e=>new cb.IfcTextTransformation(e),232962298:e=>new cb.IfcThermalAdmittanceMeasure(e),2645777649:e=>new cb.IfcThermalConductivityMeasure(e),2281867870:e=>new cb.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new cb.IfcThermalResistanceMeasure(e),2016195849:e=>new cb.IfcThermalTransmittanceMeasure(e),743184107:e=>new cb.IfcThermodynamicTemperatureMeasure(e),2726807636:e=>new cb.IfcTimeMeasure(e),2591213694:e=>new cb.IfcTimeStamp(e),1278329552:e=>new cb.IfcTorqueMeasure(e),3345633955:e=>new cb.IfcVaporPermeabilityMeasure(e),3458127941:e=>new cb.IfcVolumeMeasure(e),2593997549:e=>new cb.IfcVolumetricFlowRateMeasure(e),51269191:e=>new cb.IfcWarpingConstantMeasure(e),1718600412:e=>new cb.IfcWarpingMomentMeasure(e),4065007721:e=>new cb.IfcYearNumber(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDaylightSavingHour=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHourInDay=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMinuteInHour=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSecondInMinute=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},s.COMPLETION_G1={type:3,value:"COMPLETION_G1"},s.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},s.SNOW_S={type:3,value:"SNOW_S"},s.WIND_W={type:3,value:"WIND_W"},s.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},s.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},s.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},s.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},s.FIRE={type:3,value:"FIRE"},s.IMPULSE={type:3,value:"IMPULSE"},s.IMPACT={type:3,value:"IMPACT"},s.TRANSPORT={type:3,value:"TRANSPORT"},s.ERECTION={type:3,value:"ERECTION"},s.PROPPING={type:3,value:"PROPPING"},s.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},s.SHRINKAGE={type:3,value:"SHRINKAGE"},s.CREEP={type:3,value:"CREEP"},s.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},s.BUOYANCY={type:3,value:"BUOYANCY"},s.ICE={type:3,value:"ICE"},s.CURRENT={type:3,value:"CURRENT"},s.WAVE={type:3,value:"WAVE"},s.RAIN={type:3,value:"RAIN"},s.BRAKES={type:3,value:"BRAKES"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=s;class n{}n.PERMANENT_G={type:3,value:"PERMANENT_G"},n.VARIABLE_Q={type:3,value:"VARIABLE_Q"},n.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=n;class i{}i.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},i.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},i.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},i.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},i.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=i;class a{}a.OFFICE={type:3,value:"OFFICE"},a.SITE={type:3,value:"SITE"},a.HOME={type:3,value:"HOME"},a.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},a.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=a;class r{}r.AHEAD={type:3,value:"AHEAD"},r.BEHIND={type:3,value:"BEHIND"},e.IfcAheadOrBehind=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.GRILLE={type:3,value:"GRILLE"},o.REGISTER={type:3,value:"REGISTER"},o.DIFFUSER={type:3,value:"DIFFUSER"},o.EYEBALL={type:3,value:"EYEBALL"},o.IRIS={type:3,value:"IRIS"},o.LINEARGRILLE={type:3,value:"LINEARGRILLE"},o.LINEARDIFFUSER={type:3,value:"LINEARDIFFUSER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},h.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},h.LOADING_3D={type:3,value:"LOADING_3D"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=h;class p{}p.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},p.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},p.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},p.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=p;class A{}A.ADD={type:3,value:"ADD"},A.DIVIDE={type:3,value:"DIVIDE"},A.MULTIPLY={type:3,value:"MULTIPLY"},A.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=A;class d{}d.SITE={type:3,value:"SITE"},d.FACTORY={type:3,value:"FACTORY"},d.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=d;class f{}f.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},f.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},f.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},f.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},f.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},f.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=f;class I{}I.BEAM={type:3,value:"BEAM"},I.JOIST={type:3,value:"JOIST"},I.LINTEL={type:3,value:"LINTEL"},I.T_BEAM={type:3,value:"T_BEAM"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=I;class y{}y.GREATERTHAN={type:3,value:"GREATERTHAN"},y.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},y.LESSTHAN={type:3,value:"LESSTHAN"},y.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},y.EQUALTO={type:3,value:"EQUALTO"},y.NOTEQUALTO={type:3,value:"NOTEQUALTO"},e.IfcBenchmarkEnum=y;class m{}m.WATER={type:3,value:"WATER"},m.STEAM={type:3,value:"STEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=m;class v{}v.UNION={type:3,value:"UNION"},v.INTERSECTION={type:3,value:"INTERSECTION"},v.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=v;class w{}w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=w;class g{}g.BEND={type:3,value:"BEND"},g.CROSS={type:3,value:"CROSS"},g.REDUCER={type:3,value:"REDUCER"},g.TEE={type:3,value:"TEE"},g.USERDEFINED={type:3,value:"USERDEFINED"},g.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=g;class E{}E.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},E.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},E.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},E.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=E;class T{}T.CABLESEGMENT={type:3,value:"CABLESEGMENT"},T.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=T;class b{}b.NOCHANGE={type:3,value:"NOCHANGE"},b.MODIFIED={type:3,value:"MODIFIED"},b.ADDED={type:3,value:"ADDED"},b.DELETED={type:3,value:"DELETED"},b.MODIFIEDADDED={type:3,value:"MODIFIEDADDED"},b.MODIFIEDDELETED={type:3,value:"MODIFIEDDELETED"},e.IfcChangeActionEnum=b;class D{}D.AIRCOOLED={type:3,value:"AIRCOOLED"},D.WATERCOOLED={type:3,value:"WATERCOOLED"},D.HEATRECOVERY={type:3,value:"HEATRECOVERY"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=D;class P{}P.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},P.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},P.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},P.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},P.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},P.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=P;class R{}R.COLUMN={type:3,value:"COLUMN"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=R;class C{}C.DYNAMIC={type:3,value:"DYNAMIC"},C.RECIPROCATING={type:3,value:"RECIPROCATING"},C.ROTARY={type:3,value:"ROTARY"},C.SCROLL={type:3,value:"SCROLL"},C.TROCHOIDAL={type:3,value:"TROCHOIDAL"},C.SINGLESTAGE={type:3,value:"SINGLESTAGE"},C.BOOSTER={type:3,value:"BOOSTER"},C.OPENTYPE={type:3,value:"OPENTYPE"},C.HERMETIC={type:3,value:"HERMETIC"},C.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},C.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},C.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},C.ROTARYVANE={type:3,value:"ROTARYVANE"},C.SINGLESCREW={type:3,value:"SINGLESCREW"},C.TWINSCREW={type:3,value:"TWINSCREW"},C.USERDEFINED={type:3,value:"USERDEFINED"},C.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=C;class _{}_.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},_.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},_.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},_.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},_.AIRCOOLED={type:3,value:"AIRCOOLED"},_.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=_;class B{}B.ATPATH={type:3,value:"ATPATH"},B.ATSTART={type:3,value:"ATSTART"},B.ATEND={type:3,value:"ATEND"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=B;class O{}O.HARD={type:3,value:"HARD"},O.SOFT={type:3,value:"SOFT"},O.ADVISORY={type:3,value:"ADVISORY"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=O;class S{}S.FLOATING={type:3,value:"FLOATING"},S.PROPORTIONAL={type:3,value:"PROPORTIONAL"},S.PROPORTIONALINTEGRAL={type:3,value:"PROPORTIONALINTEGRAL"},S.PROPORTIONALINTEGRALDERIVATIVE={type:3,value:"PROPORTIONALINTEGRALDERIVATIVE"},S.TIMEDTWOPOSITION={type:3,value:"TIMEDTWOPOSITION"},S.TWOPOSITION={type:3,value:"TWOPOSITION"},S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=S;class N{}N.ACTIVE={type:3,value:"ACTIVE"},N.PASSIVE={type:3,value:"PASSIVE"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=N;class x{}x.NATURALDRAFT={type:3,value:"NATURALDRAFT"},x.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},x.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=x;class L{}L.BUDGET={type:3,value:"BUDGET"},L.COSTPLAN={type:3,value:"COSTPLAN"},L.ESTIMATE={type:3,value:"ESTIMATE"},L.TENDER={type:3,value:"TENDER"},L.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},L.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},L.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=L;class M{}M.CEILING={type:3,value:"CEILING"},M.FLOORING={type:3,value:"FLOORING"},M.CLADDING={type:3,value:"CLADDING"},M.ROOFING={type:3,value:"ROOFING"},M.INSULATION={type:3,value:"INSULATION"},M.MEMBRANE={type:3,value:"MEMBRANE"},M.SLEEVING={type:3,value:"SLEEVING"},M.WRAPPING={type:3,value:"WRAPPING"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=M;class F{}F.AED={type:3,value:"AED"},F.AES={type:3,value:"AES"},F.ATS={type:3,value:"ATS"},F.AUD={type:3,value:"AUD"},F.BBD={type:3,value:"BBD"},F.BEG={type:3,value:"BEG"},F.BGL={type:3,value:"BGL"},F.BHD={type:3,value:"BHD"},F.BMD={type:3,value:"BMD"},F.BND={type:3,value:"BND"},F.BRL={type:3,value:"BRL"},F.BSD={type:3,value:"BSD"},F.BWP={type:3,value:"BWP"},F.BZD={type:3,value:"BZD"},F.CAD={type:3,value:"CAD"},F.CBD={type:3,value:"CBD"},F.CHF={type:3,value:"CHF"},F.CLP={type:3,value:"CLP"},F.CNY={type:3,value:"CNY"},F.CYS={type:3,value:"CYS"},F.CZK={type:3,value:"CZK"},F.DDP={type:3,value:"DDP"},F.DEM={type:3,value:"DEM"},F.DKK={type:3,value:"DKK"},F.EGL={type:3,value:"EGL"},F.EST={type:3,value:"EST"},F.EUR={type:3,value:"EUR"},F.FAK={type:3,value:"FAK"},F.FIM={type:3,value:"FIM"},F.FJD={type:3,value:"FJD"},F.FKP={type:3,value:"FKP"},F.FRF={type:3,value:"FRF"},F.GBP={type:3,value:"GBP"},F.GIP={type:3,value:"GIP"},F.GMD={type:3,value:"GMD"},F.GRX={type:3,value:"GRX"},F.HKD={type:3,value:"HKD"},F.HUF={type:3,value:"HUF"},F.ICK={type:3,value:"ICK"},F.IDR={type:3,value:"IDR"},F.ILS={type:3,value:"ILS"},F.INR={type:3,value:"INR"},F.IRP={type:3,value:"IRP"},F.ITL={type:3,value:"ITL"},F.JMD={type:3,value:"JMD"},F.JOD={type:3,value:"JOD"},F.JPY={type:3,value:"JPY"},F.KES={type:3,value:"KES"},F.KRW={type:3,value:"KRW"},F.KWD={type:3,value:"KWD"},F.KYD={type:3,value:"KYD"},F.LKR={type:3,value:"LKR"},F.LUF={type:3,value:"LUF"},F.MTL={type:3,value:"MTL"},F.MUR={type:3,value:"MUR"},F.MXN={type:3,value:"MXN"},F.MYR={type:3,value:"MYR"},F.NLG={type:3,value:"NLG"},F.NZD={type:3,value:"NZD"},F.OMR={type:3,value:"OMR"},F.PGK={type:3,value:"PGK"},F.PHP={type:3,value:"PHP"},F.PKR={type:3,value:"PKR"},F.PLN={type:3,value:"PLN"},F.PTN={type:3,value:"PTN"},F.QAR={type:3,value:"QAR"},F.RUR={type:3,value:"RUR"},F.SAR={type:3,value:"SAR"},F.SCR={type:3,value:"SCR"},F.SEK={type:3,value:"SEK"},F.SGD={type:3,value:"SGD"},F.SKP={type:3,value:"SKP"},F.THB={type:3,value:"THB"},F.TRL={type:3,value:"TRL"},F.TTD={type:3,value:"TTD"},F.TWD={type:3,value:"TWD"},F.USD={type:3,value:"USD"},F.VEB={type:3,value:"VEB"},F.VND={type:3,value:"VND"},F.XEU={type:3,value:"XEU"},F.ZAR={type:3,value:"ZAR"},F.ZWD={type:3,value:"ZWD"},F.NOK={type:3,value:"NOK"},e.IfcCurrencyEnum=F;class H{}H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=H;class U{}U.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},U.FIREDAMPER={type:3,value:"FIREDAMPER"},U.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},U.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},U.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},U.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},U.BLASTDAMPER={type:3,value:"BLASTDAMPER"},U.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},U.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},U.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},U.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=U;class G{}G.MEASURED={type:3,value:"MEASURED"},G.PREDICTED={type:3,value:"PREDICTED"},G.SIMULATED={type:3,value:"SIMULATED"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=G;class j{}j.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},j.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},j.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},j.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},j.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},j.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},j.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},j.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},j.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},j.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},j.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},j.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},j.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},j.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},j.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},j.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},j.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},j.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},j.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},j.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},j.TORQUEUNIT={type:3,value:"TORQUEUNIT"},j.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},j.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},j.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},j.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},j.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},j.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},j.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},j.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},j.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},j.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},j.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},j.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},j.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},j.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},j.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},j.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},j.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},j.PHUNIT={type:3,value:"PHUNIT"},j.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},j.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},j.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},j.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},j.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},j.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},j.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},j.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},j.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},j.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=j;class V{}V.ORIGIN={type:3,value:"ORIGIN"},V.TARGET={type:3,value:"TARGET"},e.IfcDimensionExtentUsage=V;class k{}k.POSITIVE={type:3,value:"POSITIVE"},k.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=k;class Q{}Q.FORMEDDUCT={type:3,value:"FORMEDDUCT"},Q.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},Q.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},Q.MANHOLE={type:3,value:"MANHOLE"},Q.METERCHAMBER={type:3,value:"METERCHAMBER"},Q.SUMP={type:3,value:"SUMP"},Q.TRENCH={type:3,value:"TRENCH"},Q.VALVECHAMBER={type:3,value:"VALVECHAMBER"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=Q;class W{}W.PUBLIC={type:3,value:"PUBLIC"},W.RESTRICTED={type:3,value:"RESTRICTED"},W.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},W.PERSONAL={type:3,value:"PERSONAL"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=W;class z{}z.DRAFT={type:3,value:"DRAFT"},z.FINALDRAFT={type:3,value:"FINALDRAFT"},z.FINAL={type:3,value:"FINAL"},z.REVISION={type:3,value:"REVISION"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=z;class K{}K.SWINGING={type:3,value:"SWINGING"},K.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},K.SLIDING={type:3,value:"SLIDING"},K.FOLDING={type:3,value:"FOLDING"},K.REVOLVING={type:3,value:"REVOLVING"},K.ROLLINGUP={type:3,value:"ROLLINGUP"},K.USERDEFINED={type:3,value:"USERDEFINED"},K.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=K;class Y{}Y.LEFT={type:3,value:"LEFT"},Y.MIDDLE={type:3,value:"MIDDLE"},Y.RIGHT={type:3,value:"RIGHT"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=Y;class X{}X.ALUMINIUM={type:3,value:"ALUMINIUM"},X.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},X.STEEL={type:3,value:"STEEL"},X.WOOD={type:3,value:"WOOD"},X.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},X.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},X.PLASTIC={type:3,value:"PLASTIC"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=X;class q{}q.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},q.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},q.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},q.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},q.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},q.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},q.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},q.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},q.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},q.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},q.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},q.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},q.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},q.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},q.REVOLVING={type:3,value:"REVOLVING"},q.ROLLINGUP={type:3,value:"ROLLINGUP"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=q;class J{}J.BEND={type:3,value:"BEND"},J.CONNECTOR={type:3,value:"CONNECTOR"},J.ENTRY={type:3,value:"ENTRY"},J.EXIT={type:3,value:"EXIT"},J.JUNCTION={type:3,value:"JUNCTION"},J.OBSTRUCTION={type:3,value:"OBSTRUCTION"},J.TRANSITION={type:3,value:"TRANSITION"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=J;class Z{}Z.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Z.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Z;class ${}$.FLATOVAL={type:3,value:"FLATOVAL"},$.RECTANGULAR={type:3,value:"RECTANGULAR"},$.ROUND={type:3,value:"ROUND"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=$;class ee{}ee.COMPUTER={type:3,value:"COMPUTER"},ee.DIRECTWATERHEATER={type:3,value:"DIRECTWATERHEATER"},ee.DISHWASHER={type:3,value:"DISHWASHER"},ee.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},ee.ELECTRICHEATER={type:3,value:"ELECTRICHEATER"},ee.FACSIMILE={type:3,value:"FACSIMILE"},ee.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},ee.FREEZER={type:3,value:"FREEZER"},ee.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},ee.HANDDRYER={type:3,value:"HANDDRYER"},ee.INDIRECTWATERHEATER={type:3,value:"INDIRECTWATERHEATER"},ee.MICROWAVE={type:3,value:"MICROWAVE"},ee.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},ee.PRINTER={type:3,value:"PRINTER"},ee.REFRIGERATOR={type:3,value:"REFRIGERATOR"},ee.RADIANTHEATER={type:3,value:"RADIANTHEATER"},ee.SCANNER={type:3,value:"SCANNER"},ee.TELEPHONE={type:3,value:"TELEPHONE"},ee.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},ee.TV={type:3,value:"TV"},ee.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},ee.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},ee.WATERHEATER={type:3,value:"WATERHEATER"},ee.WATERCOOLER={type:3,value:"WATERCOOLER"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=ee;class te{}te.ALTERNATING={type:3,value:"ALTERNATING"},te.DIRECT={type:3,value:"DIRECT"},te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricCurrentEnum=te;class se{}se.ALARMPANEL={type:3,value:"ALARMPANEL"},se.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},se.CONTROLPANEL={type:3,value:"CONTROLPANEL"},se.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},se.GASDETECTORPANEL={type:3,value:"GASDETECTORPANEL"},se.INDICATORPANEL={type:3,value:"INDICATORPANEL"},se.MIMICPANEL={type:3,value:"MIMICPANEL"},se.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},se.SWITCHBOARD={type:3,value:"SWITCHBOARD"},se.USERDEFINED={type:3,value:"USERDEFINED"},se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionPointFunctionEnum=se;class ne{}ne.BATTERY={type:3,value:"BATTERY"},ne.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ne.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ne.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ne.UPS={type:3,value:"UPS"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ne;class ie{}ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=ie;class ae{}ae.ELECTRICPOINTHEATER={type:3,value:"ELECTRICPOINTHEATER"},ae.ELECTRICCABLEHEATER={type:3,value:"ELECTRICCABLEHEATER"},ae.ELECTRICMATHEATER={type:3,value:"ELECTRICMATHEATER"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricHeaterTypeEnum=ae;class re{}re.DC={type:3,value:"DC"},re.INDUCTION={type:3,value:"INDUCTION"},re.POLYPHASE={type:3,value:"POLYPHASE"},re.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},re.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=re;class le{}le.TIMECLOCK={type:3,value:"TIMECLOCK"},le.TIMEDELAY={type:3,value:"TIMEDELAY"},le.RELAY={type:3,value:"RELAY"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=le;class oe{}oe.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},oe.ARCH={type:3,value:"ARCH"},oe.BEAM_GRID={type:3,value:"BEAM_GRID"},oe.BRACED_FRAME={type:3,value:"BRACED_FRAME"},oe.GIRDER={type:3,value:"GIRDER"},oe.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},oe.RIGID_FRAME={type:3,value:"RIGID_FRAME"},oe.SLAB_FIELD={type:3,value:"SLAB_FIELD"},oe.TRUSS={type:3,value:"TRUSS"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=oe;class ce{}ce.COMPLEX={type:3,value:"COMPLEX"},ce.ELEMENT={type:3,value:"ELEMENT"},ce.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=ce;class ue{}ue.PRIMARY={type:3,value:"PRIMARY"},ue.SECONDARY={type:3,value:"SECONDARY"},ue.TERTIARY={type:3,value:"TERTIARY"},ue.AUXILIARY={type:3,value:"AUXILIARY"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnergySequenceEnum=ue;class he{}he.COMBINEDVALUE={type:3,value:"COMBINEDVALUE"},he.DISPOSAL={type:3,value:"DISPOSAL"},he.EXTRACTION={type:3,value:"EXTRACTION"},he.INSTALLATION={type:3,value:"INSTALLATION"},he.MANUFACTURE={type:3,value:"MANUFACTURE"},he.TRANSPORTATION={type:3,value:"TRANSPORTATION"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnvironmentalImpactCategoryEnum=he;class pe{}pe.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},pe.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},pe.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},pe.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},pe.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},pe.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},pe.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},pe.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},pe.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=pe;class Ae{}Ae.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Ae.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Ae.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Ae.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Ae.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=Ae;class de{}de.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},de.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},de.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},de.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},de.TUBEAXIAL={type:3,value:"TUBEAXIAL"},de.VANEAXIAL={type:3,value:"VANEAXIAL"},de.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},de.USERDEFINED={type:3,value:"USERDEFINED"},de.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=de;class fe{}fe.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},fe.ODORFILTER={type:3,value:"ODORFILTER"},fe.OILFILTER={type:3,value:"OILFILTER"},fe.STRAINER={type:3,value:"STRAINER"},fe.WATERFILTER={type:3,value:"WATERFILTER"},fe.USERDEFINED={type:3,value:"USERDEFINED"},fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=fe;class Ie{}Ie.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Ie.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Ie.HOSEREEL={type:3,value:"HOSEREEL"},Ie.SPRINKLER={type:3,value:"SPRINKLER"},Ie.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Ie;class ye{}ye.SOURCE={type:3,value:"SOURCE"},ye.SINK={type:3,value:"SINK"},ye.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=ye;class me{}me.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},me.THERMOMETER={type:3,value:"THERMOMETER"},me.AMMETER={type:3,value:"AMMETER"},me.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},me.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},me.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},me.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},me.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=me;class ve{}ve.ELECTRICMETER={type:3,value:"ELECTRICMETER"},ve.ENERGYMETER={type:3,value:"ENERGYMETER"},ve.FLOWMETER={type:3,value:"FLOWMETER"},ve.GASMETER={type:3,value:"GASMETER"},ve.OILMETER={type:3,value:"OILMETER"},ve.WATERMETER={type:3,value:"WATERMETER"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=ve;class we{}we.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},we.PAD_FOOTING={type:3,value:"PAD_FOOTING"},we.PILE_CAP={type:3,value:"PILE_CAP"},we.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=we;class ge{}ge.GASAPPLIANCE={type:3,value:"GASAPPLIANCE"},ge.GASBOOSTER={type:3,value:"GASBOOSTER"},ge.GASBURNER={type:3,value:"GASBURNER"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGasTerminalTypeEnum=ge;class Ee{}Ee.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},Ee.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},Ee.MODEL_VIEW={type:3,value:"MODEL_VIEW"},Ee.PLAN_VIEW={type:3,value:"PLAN_VIEW"},Ee.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},Ee.SECTION_VIEW={type:3,value:"SECTION_VIEW"},Ee.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=Ee;class Te{}Te.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Te.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=Te;class be{}be.PLATE={type:3,value:"PLATE"},be.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=be;class De{}De.STEAMINJECTION={type:3,value:"STEAMINJECTION"},De.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},De.ADIABATICPAN={type:3,value:"ADIABATICPAN"},De.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},De.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},De.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},De.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},De.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},De.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},De.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},De.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},De.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},De.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=De;class Pe{}Pe.INTERNAL={type:3,value:"INTERNAL"},Pe.EXTERNAL={type:3,value:"EXTERNAL"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Pe;class Re{}Re.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},Re.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},Re.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=Re;class Ce{}Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ce;class _e{}_e.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},_e.FLUORESCENT={type:3,value:"FLUORESCENT"},_e.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},_e.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},_e.METALHALIDE={type:3,value:"METALHALIDE"},_e.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=_e;class Be{}Be.AXIS1={type:3,value:"AXIS1"},Be.AXIS2={type:3,value:"AXIS2"},Be.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=Be;class Oe{}Oe.TYPE_A={type:3,value:"TYPE_A"},Oe.TYPE_B={type:3,value:"TYPE_B"},Oe.TYPE_C={type:3,value:"TYPE_C"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=Oe;class Se{}Se.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Se.FLUORESCENT={type:3,value:"FLUORESCENT"},Se.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Se.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Se.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},Se.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},Se.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},Se.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},Se.METALHALIDE={type:3,value:"METALHALIDE"},Se.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=Se;class Ne{}Ne.POINTSOURCE={type:3,value:"POINTSOURCE"},Ne.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=Ne;class xe{}xe.LOAD_GROUP={type:3,value:"LOAD_GROUP"},xe.LOAD_CASE={type:3,value:"LOAD_CASE"},xe.LOAD_COMBINATION_GROUP={type:3,value:"LOAD_COMBINATION_GROUP"},xe.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=xe;class Le{}Le.LOGICALAND={type:3,value:"LOGICALAND"},Le.LOGICALOR={type:3,value:"LOGICALOR"},e.IfcLogicalOperatorEnum=Le;class Me{}Me.BRACE={type:3,value:"BRACE"},Me.CHORD={type:3,value:"CHORD"},Me.COLLAR={type:3,value:"COLLAR"},Me.MEMBER={type:3,value:"MEMBER"},Me.MULLION={type:3,value:"MULLION"},Me.PLATE={type:3,value:"PLATE"},Me.POST={type:3,value:"POST"},Me.PURLIN={type:3,value:"PURLIN"},Me.RAFTER={type:3,value:"RAFTER"},Me.STRINGER={type:3,value:"STRINGER"},Me.STRUT={type:3,value:"STRUT"},Me.STUD={type:3,value:"STUD"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=Me;class Fe{}Fe.BELTDRIVE={type:3,value:"BELTDRIVE"},Fe.COUPLING={type:3,value:"COUPLING"},Fe.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Fe;class He{}He.NULL={type:3,value:"NULL"},e.IfcNullStyle=He;class Ue{}Ue.PRODUCT={type:3,value:"PRODUCT"},Ue.PROCESS={type:3,value:"PROCESS"},Ue.CONTROL={type:3,value:"CONTROL"},Ue.RESOURCE={type:3,value:"RESOURCE"},Ue.ACTOR={type:3,value:"ACTOR"},Ue.GROUP={type:3,value:"GROUP"},Ue.PROJECT={type:3,value:"PROJECT"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Ue;class Ge{}Ge.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ge.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ge.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ge.REQUIREMENT={type:3,value:"REQUIREMENT"},Ge.SPECIFICATION={type:3,value:"SPECIFICATION"},Ge.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ge;class je{}je.ASSIGNEE={type:3,value:"ASSIGNEE"},je.ASSIGNOR={type:3,value:"ASSIGNOR"},je.LESSEE={type:3,value:"LESSEE"},je.LESSOR={type:3,value:"LESSOR"},je.LETTINGAGENT={type:3,value:"LETTINGAGENT"},je.OWNER={type:3,value:"OWNER"},je.TENANT={type:3,value:"TENANT"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=je;class Ve{}Ve.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},Ve.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},Ve.POWEROUTLET={type:3,value:"POWEROUTLET"},Ve.USERDEFINED={type:3,value:"USERDEFINED"},Ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=Ve;class ke{}ke.GRILL={type:3,value:"GRILL"},ke.LOUVER={type:3,value:"LOUVER"},ke.SCREEN={type:3,value:"SCREEN"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=ke;class Qe{}Qe.PHYSICAL={type:3,value:"PHYSICAL"},Qe.VIRTUAL={type:3,value:"VIRTUAL"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=Qe;class We{}We.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},We.COMPOSITE={type:3,value:"COMPOSITE"},We.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},We.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=We;class ze{}ze.COHESION={type:3,value:"COHESION"},ze.FRICTION={type:3,value:"FRICTION"},ze.SUPPORT={type:3,value:"SUPPORT"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=ze;class Ke{}Ke.BEND={type:3,value:"BEND"},Ke.CONNECTOR={type:3,value:"CONNECTOR"},Ke.ENTRY={type:3,value:"ENTRY"},Ke.EXIT={type:3,value:"EXIT"},Ke.JUNCTION={type:3,value:"JUNCTION"},Ke.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ke.TRANSITION={type:3,value:"TRANSITION"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Ke;class Ye{}Ye.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ye.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ye.GUTTER={type:3,value:"GUTTER"},Ye.SPOOL={type:3,value:"SPOOL"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Ye;class Xe{}Xe.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Xe.SHEET={type:3,value:"SHEET"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Xe;class qe{}qe.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},qe.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},qe.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},qe.CALIBRATION={type:3,value:"CALIBRATION"},qe.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},qe.SHUTDOWN={type:3,value:"SHUTDOWN"},qe.STARTUP={type:3,value:"STARTUP"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=qe;class Je{}Je.CURVE={type:3,value:"CURVE"},Je.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Je;class Ze{}Ze.CHANGE={type:3,value:"CHANGE"},Ze.MAINTENANCE={type:3,value:"MAINTENANCE"},Ze.MOVE={type:3,value:"MOVE"},Ze.PURCHASE={type:3,value:"PURCHASE"},Ze.WORK={type:3,value:"WORK"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderRecordTypeEnum=Ze;class $e{}$e.CHANGEORDER={type:3,value:"CHANGEORDER"},$e.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},$e.MOVEORDER={type:3,value:"MOVEORDER"},$e.PURCHASEORDER={type:3,value:"PURCHASEORDER"},$e.WORKORDER={type:3,value:"WORKORDER"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=$e;class et{}et.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},et.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=et;class tt{}tt.DESIGN={type:3,value:"DESIGN"},tt.DESIGNMAXIMUM={type:3,value:"DESIGNMAXIMUM"},tt.DESIGNMINIMUM={type:3,value:"DESIGNMINIMUM"},tt.SIMULATED={type:3,value:"SIMULATED"},tt.ASBUILT={type:3,value:"ASBUILT"},tt.COMMISSIONING={type:3,value:"COMMISSIONING"},tt.MEASURED={type:3,value:"MEASURED"},tt.USERDEFINED={type:3,value:"USERDEFINED"},tt.NOTKNOWN={type:3,value:"NOTKNOWN"},e.IfcPropertySourceEnum=tt;class st{}st.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},st.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},st.EARTHFAILUREDEVICE={type:3,value:"EARTHFAILUREDEVICE"},st.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},st.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},st.VARISTOR={type:3,value:"VARISTOR"},st.USERDEFINED={type:3,value:"USERDEFINED"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=st;class nt{}nt.CIRCULATOR={type:3,value:"CIRCULATOR"},nt.ENDSUCTION={type:3,value:"ENDSUCTION"},nt.SPLITCASE={type:3,value:"SPLITCASE"},nt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},nt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=nt;class it{}it.HANDRAIL={type:3,value:"HANDRAIL"},it.GUARDRAIL={type:3,value:"GUARDRAIL"},it.BALUSTRADE={type:3,value:"BALUSTRADE"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=it;class at{}at.STRAIGHT={type:3,value:"STRAIGHT"},at.SPIRAL={type:3,value:"SPIRAL"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=at;class rt{}rt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},rt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},rt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},rt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},rt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},rt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=rt;class lt{}lt.BLINN={type:3,value:"BLINN"},lt.FLAT={type:3,value:"FLAT"},lt.GLASS={type:3,value:"GLASS"},lt.MATT={type:3,value:"MATT"},lt.METAL={type:3,value:"METAL"},lt.MIRROR={type:3,value:"MIRROR"},lt.PHONG={type:3,value:"PHONG"},lt.PLASTIC={type:3,value:"PLASTIC"},lt.STRAUSS={type:3,value:"STRAUSS"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=lt;class ot{}ot.MAIN={type:3,value:"MAIN"},ot.SHEAR={type:3,value:"SHEAR"},ot.LIGATURE={type:3,value:"LIGATURE"},ot.STUD={type:3,value:"STUD"},ot.PUNCHING={type:3,value:"PUNCHING"},ot.EDGE={type:3,value:"EDGE"},ot.RING={type:3,value:"RING"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=ot;class ct{}ct.PLAIN={type:3,value:"PLAIN"},ct.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=ct;class ut{}ut.CONSUMED={type:3,value:"CONSUMED"},ut.PARTIALLYCONSUMED={type:3,value:"PARTIALLYCONSUMED"},ut.NOTCONSUMED={type:3,value:"NOTCONSUMED"},ut.OCCUPIED={type:3,value:"OCCUPIED"},ut.PARTIALLYOCCUPIED={type:3,value:"PARTIALLYOCCUPIED"},ut.NOTOCCUPIED={type:3,value:"NOTOCCUPIED"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcResourceConsumptionEnum=ut;class ht{}ht.DIRECTION_X={type:3,value:"DIRECTION_X"},ht.DIRECTION_Y={type:3,value:"DIRECTION_Y"},e.IfcRibPlateDirectionEnum=ht;class pt{}pt.SUPPLIER={type:3,value:"SUPPLIER"},pt.MANUFACTURER={type:3,value:"MANUFACTURER"},pt.CONTRACTOR={type:3,value:"CONTRACTOR"},pt.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},pt.ARCHITECT={type:3,value:"ARCHITECT"},pt.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},pt.COSTENGINEER={type:3,value:"COSTENGINEER"},pt.CLIENT={type:3,value:"CLIENT"},pt.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},pt.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},pt.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},pt.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},pt.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},pt.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},pt.CIVILENGINEER={type:3,value:"CIVILENGINEER"},pt.COMISSIONINGENGINEER={type:3,value:"COMISSIONINGENGINEER"},pt.ENGINEER={type:3,value:"ENGINEER"},pt.OWNER={type:3,value:"OWNER"},pt.CONSULTANT={type:3,value:"CONSULTANT"},pt.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},pt.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},pt.RESELLER={type:3,value:"RESELLER"},pt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=pt;class At{}At.FLAT_ROOF={type:3,value:"FLAT_ROOF"},At.SHED_ROOF={type:3,value:"SHED_ROOF"},At.GABLE_ROOF={type:3,value:"GABLE_ROOF"},At.HIP_ROOF={type:3,value:"HIP_ROOF"},At.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},At.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},At.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},At.BARREL_ROOF={type:3,value:"BARREL_ROOF"},At.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},At.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},At.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},At.DOME_ROOF={type:3,value:"DOME_ROOF"},At.FREEFORM={type:3,value:"FREEFORM"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=At;class dt{}dt.EXA={type:3,value:"EXA"},dt.PETA={type:3,value:"PETA"},dt.TERA={type:3,value:"TERA"},dt.GIGA={type:3,value:"GIGA"},dt.MEGA={type:3,value:"MEGA"},dt.KILO={type:3,value:"KILO"},dt.HECTO={type:3,value:"HECTO"},dt.DECA={type:3,value:"DECA"},dt.DECI={type:3,value:"DECI"},dt.CENTI={type:3,value:"CENTI"},dt.MILLI={type:3,value:"MILLI"},dt.MICRO={type:3,value:"MICRO"},dt.NANO={type:3,value:"NANO"},dt.PICO={type:3,value:"PICO"},dt.FEMTO={type:3,value:"FEMTO"},dt.ATTO={type:3,value:"ATTO"},e.IfcSIPrefix=dt;class ft{}ft.AMPERE={type:3,value:"AMPERE"},ft.BECQUEREL={type:3,value:"BECQUEREL"},ft.CANDELA={type:3,value:"CANDELA"},ft.COULOMB={type:3,value:"COULOMB"},ft.CUBIC_METRE={type:3,value:"CUBIC_METRE"},ft.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},ft.FARAD={type:3,value:"FARAD"},ft.GRAM={type:3,value:"GRAM"},ft.GRAY={type:3,value:"GRAY"},ft.HENRY={type:3,value:"HENRY"},ft.HERTZ={type:3,value:"HERTZ"},ft.JOULE={type:3,value:"JOULE"},ft.KELVIN={type:3,value:"KELVIN"},ft.LUMEN={type:3,value:"LUMEN"},ft.LUX={type:3,value:"LUX"},ft.METRE={type:3,value:"METRE"},ft.MOLE={type:3,value:"MOLE"},ft.NEWTON={type:3,value:"NEWTON"},ft.OHM={type:3,value:"OHM"},ft.PASCAL={type:3,value:"PASCAL"},ft.RADIAN={type:3,value:"RADIAN"},ft.SECOND={type:3,value:"SECOND"},ft.SIEMENS={type:3,value:"SIEMENS"},ft.SIEVERT={type:3,value:"SIEVERT"},ft.SQUARE_METRE={type:3,value:"SQUARE_METRE"},ft.STERADIAN={type:3,value:"STERADIAN"},ft.TESLA={type:3,value:"TESLA"},ft.VOLT={type:3,value:"VOLT"},ft.WATT={type:3,value:"WATT"},ft.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=ft;class It{}It.BATH={type:3,value:"BATH"},It.BIDET={type:3,value:"BIDET"},It.CISTERN={type:3,value:"CISTERN"},It.SHOWER={type:3,value:"SHOWER"},It.SINK={type:3,value:"SINK"},It.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},It.TOILETPAN={type:3,value:"TOILETPAN"},It.URINAL={type:3,value:"URINAL"},It.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},It.WCSEAT={type:3,value:"WCSEAT"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=It;class yt{}yt.UNIFORM={type:3,value:"UNIFORM"},yt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=yt;class mt{}mt.CO2SENSOR={type:3,value:"CO2SENSOR"},mt.FIRESENSOR={type:3,value:"FIRESENSOR"},mt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},mt.GASSENSOR={type:3,value:"GASSENSOR"},mt.HEATSENSOR={type:3,value:"HEATSENSOR"},mt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},mt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},mt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},mt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},mt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},mt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},mt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},mt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=mt;class vt{}vt.START_START={type:3,value:"START_START"},vt.START_FINISH={type:3,value:"START_FINISH"},vt.FINISH_START={type:3,value:"FINISH_START"},vt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=vt;class wt{}wt.A_QUALITYOFCOMPONENTS={type:3,value:"A_QUALITYOFCOMPONENTS"},wt.B_DESIGNLEVEL={type:3,value:"B_DESIGNLEVEL"},wt.C_WORKEXECUTIONLEVEL={type:3,value:"C_WORKEXECUTIONLEVEL"},wt.D_INDOORENVIRONMENT={type:3,value:"D_INDOORENVIRONMENT"},wt.E_OUTDOORENVIRONMENT={type:3,value:"E_OUTDOORENVIRONMENT"},wt.F_INUSECONDITIONS={type:3,value:"F_INUSECONDITIONS"},wt.G_MAINTENANCELEVEL={type:3,value:"G_MAINTENANCELEVEL"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcServiceLifeFactorTypeEnum=wt;class gt{}gt.ACTUALSERVICELIFE={type:3,value:"ACTUALSERVICELIFE"},gt.EXPECTEDSERVICELIFE={type:3,value:"EXPECTEDSERVICELIFE"},gt.OPTIMISTICREFERENCESERVICELIFE={type:3,value:"OPTIMISTICREFERENCESERVICELIFE"},gt.PESSIMISTICREFERENCESERVICELIFE={type:3,value:"PESSIMISTICREFERENCESERVICELIFE"},gt.REFERENCESERVICELIFE={type:3,value:"REFERENCESERVICELIFE"},e.IfcServiceLifeTypeEnum=gt;class Et{}Et.FLOOR={type:3,value:"FLOOR"},Et.ROOF={type:3,value:"ROOF"},Et.LANDING={type:3,value:"LANDING"},Et.BASESLAB={type:3,value:"BASESLAB"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Et;class Tt{}Tt.DBA={type:3,value:"DBA"},Tt.DBB={type:3,value:"DBB"},Tt.DBC={type:3,value:"DBC"},Tt.NC={type:3,value:"NC"},Tt.NR={type:3,value:"NR"},Tt.USERDEFINED={type:3,value:"USERDEFINED"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSoundScaleEnum=Tt;class bt{}bt.SECTIONALRADIATOR={type:3,value:"SECTIONALRADIATOR"},bt.PANELRADIATOR={type:3,value:"PANELRADIATOR"},bt.TUBULARRADIATOR={type:3,value:"TUBULARRADIATOR"},bt.CONVECTOR={type:3,value:"CONVECTOR"},bt.BASEBOARDHEATER={type:3,value:"BASEBOARDHEATER"},bt.FINNEDTUBEUNIT={type:3,value:"FINNEDTUBEUNIT"},bt.UNITHEATER={type:3,value:"UNITHEATER"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=bt;class Dt{}Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Dt;class Pt{}Pt.BIRDCAGE={type:3,value:"BIRDCAGE"},Pt.COWL={type:3,value:"COWL"},Pt.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=Pt;class Rt{}Rt.STRAIGHT={type:3,value:"STRAIGHT"},Rt.WINDER={type:3,value:"WINDER"},Rt.SPIRAL={type:3,value:"SPIRAL"},Rt.CURVED={type:3,value:"CURVED"},Rt.FREEFORM={type:3,value:"FREEFORM"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Rt;class Ct{}Ct.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},Ct.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},Ct.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},Ct.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},Ct.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},Ct.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},Ct.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},Ct.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},Ct.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},Ct.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},Ct.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},Ct.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},Ct.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},Ct.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=Ct;class _t{}_t.READWRITE={type:3,value:"READWRITE"},_t.READONLY={type:3,value:"READONLY"},_t.LOCKED={type:3,value:"LOCKED"},_t.READWRITELOCKED={type:3,value:"READWRITELOCKED"},_t.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=_t;class Bt{}Bt.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},Bt.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},Bt.CABLE={type:3,value:"CABLE"},Bt.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},Bt.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveTypeEnum=Bt;class Ot{}Ot.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Ot.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Ot.SHELL={type:3,value:"SHELL"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceTypeEnum=Ot;class St{}St.POSITIVE={type:3,value:"POSITIVE"},St.NEGATIVE={type:3,value:"NEGATIVE"},St.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=St;class Nt{}Nt.BUMP={type:3,value:"BUMP"},Nt.OPACITY={type:3,value:"OPACITY"},Nt.REFLECTION={type:3,value:"REFLECTION"},Nt.SELFILLUMINATION={type:3,value:"SELFILLUMINATION"},Nt.SHININESS={type:3,value:"SHININESS"},Nt.SPECULAR={type:3,value:"SPECULAR"},Nt.TEXTURE={type:3,value:"TEXTURE"},Nt.TRANSPARENCYMAP={type:3,value:"TRANSPARENCYMAP"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceTextureEnum=Nt;class xt{}xt.CONTACTOR={type:3,value:"CONTACTOR"},xt.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},xt.STARTER={type:3,value:"STARTER"},xt.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},xt.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=xt;class Lt{}Lt.PREFORMED={type:3,value:"PREFORMED"},Lt.SECTIONAL={type:3,value:"SECTIONAL"},Lt.EXPANSION={type:3,value:"EXPANSION"},Lt.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Lt;class Mt{}Mt.STRAND={type:3,value:"STRAND"},Mt.WIRE={type:3,value:"WIRE"},Mt.BAR={type:3,value:"BAR"},Mt.COATED={type:3,value:"COATED"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Mt;class Ft{}Ft.LEFT={type:3,value:"LEFT"},Ft.RIGHT={type:3,value:"RIGHT"},Ft.UP={type:3,value:"UP"},Ft.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Ft;class Ht{}Ht.PEOPLE={type:3,value:"PEOPLE"},Ht.LIGHTING={type:3,value:"LIGHTING"},Ht.EQUIPMENT={type:3,value:"EQUIPMENT"},Ht.VENTILATIONINDOORAIR={type:3,value:"VENTILATIONINDOORAIR"},Ht.VENTILATIONOUTSIDEAIR={type:3,value:"VENTILATIONOUTSIDEAIR"},Ht.RECIRCULATEDAIR={type:3,value:"RECIRCULATEDAIR"},Ht.EXHAUSTAIR={type:3,value:"EXHAUSTAIR"},Ht.AIREXCHANGERATE={type:3,value:"AIREXCHANGERATE"},Ht.DRYBULBTEMPERATURE={type:3,value:"DRYBULBTEMPERATURE"},Ht.RELATIVEHUMIDITY={type:3,value:"RELATIVEHUMIDITY"},Ht.INFILTRATION={type:3,value:"INFILTRATION"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadSourceEnum=Ht;class Ut{}Ut.SENSIBLE={type:3,value:"SENSIBLE"},Ut.LATENT={type:3,value:"LATENT"},Ut.RADIANT={type:3,value:"RADIANT"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadTypeEnum=Ut;class Gt{}Gt.CONTINUOUS={type:3,value:"CONTINUOUS"},Gt.DISCRETE={type:3,value:"DISCRETE"},Gt.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Gt.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Gt.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Gt.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=Gt;class jt{}jt.ANNUAL={type:3,value:"ANNUAL"},jt.MONTHLY={type:3,value:"MONTHLY"},jt.WEEKLY={type:3,value:"WEEKLY"},jt.DAILY={type:3,value:"DAILY"},jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesScheduleTypeEnum=jt;class Vt{}Vt.CURRENT={type:3,value:"CURRENT"},Vt.FREQUENCY={type:3,value:"FREQUENCY"},Vt.VOLTAGE={type:3,value:"VOLTAGE"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=Vt;class kt{}kt.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},kt.CONTINUOUS={type:3,value:"CONTINUOUS"},kt.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},kt.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=kt;class Qt{}Qt.ELEVATOR={type:3,value:"ELEVATOR"},Qt.ESCALATOR={type:3,value:"ESCALATOR"},Qt.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},Qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Qt;class Wt{}Wt.CARTESIAN={type:3,value:"CARTESIAN"},Wt.PARAMETER={type:3,value:"PARAMETER"},Wt.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Wt;class zt{}zt.FINNED={type:3,value:"FINNED"},zt.USERDEFINED={type:3,value:"USERDEFINED"},zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=zt;class Kt{}Kt.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Kt.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Kt.AREAUNIT={type:3,value:"AREAUNIT"},Kt.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Kt.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Kt.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Kt.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Kt.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Kt.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Kt.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Kt.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Kt.FORCEUNIT={type:3,value:"FORCEUNIT"},Kt.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Kt.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Kt.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Kt.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Kt.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Kt.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Kt.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Kt.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Kt.MASSUNIT={type:3,value:"MASSUNIT"},Kt.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Kt.POWERUNIT={type:3,value:"POWERUNIT"},Kt.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Kt.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Kt.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Kt.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Kt.TIMEUNIT={type:3,value:"TIMEUNIT"},Kt.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Kt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Kt;class Yt{}Yt.AIRHANDLER={type:3,value:"AIRHANDLER"},Yt.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Yt.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Yt.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=Yt;class Xt{}Xt.AIRRELEASE={type:3,value:"AIRRELEASE"},Xt.ANTIVACUUM={type:3,value:"ANTIVACUUM"},Xt.CHANGEOVER={type:3,value:"CHANGEOVER"},Xt.CHECK={type:3,value:"CHECK"},Xt.COMMISSIONING={type:3,value:"COMMISSIONING"},Xt.DIVERTING={type:3,value:"DIVERTING"},Xt.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},Xt.DOUBLECHECK={type:3,value:"DOUBLECHECK"},Xt.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},Xt.FAUCET={type:3,value:"FAUCET"},Xt.FLUSHING={type:3,value:"FLUSHING"},Xt.GASCOCK={type:3,value:"GASCOCK"},Xt.GASTAP={type:3,value:"GASTAP"},Xt.ISOLATING={type:3,value:"ISOLATING"},Xt.MIXING={type:3,value:"MIXING"},Xt.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},Xt.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},Xt.REGULATING={type:3,value:"REGULATING"},Xt.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},Xt.STEAMTRAP={type:3,value:"STEAMTRAP"},Xt.STOPCOCK={type:3,value:"STOPCOCK"},Xt.USERDEFINED={type:3,value:"USERDEFINED"},Xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=Xt;class qt{}qt.COMPRESSION={type:3,value:"COMPRESSION"},qt.SPRING={type:3,value:"SPRING"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=qt;class Jt{}Jt.STANDARD={type:3,value:"STANDARD"},Jt.POLYGONAL={type:3,value:"POLYGONAL"},Jt.SHEAR={type:3,value:"SHEAR"},Jt.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Jt.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Jt;class Zt{}Zt.FLOORTRAP={type:3,value:"FLOORTRAP"},Zt.FLOORWASTE={type:3,value:"FLOORWASTE"},Zt.GULLYSUMP={type:3,value:"GULLYSUMP"},Zt.GULLYTRAP={type:3,value:"GULLYTRAP"},Zt.GREASEINTERCEPTOR={type:3,value:"GREASEINTERCEPTOR"},Zt.OILINTERCEPTOR={type:3,value:"OILINTERCEPTOR"},Zt.PETROLINTERCEPTOR={type:3,value:"PETROLINTERCEPTOR"},Zt.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Zt.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Zt.WASTETRAP={type:3,value:"WASTETRAP"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Zt;class $t{}$t.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},$t.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},$t.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},$t.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},$t.TOPHUNG={type:3,value:"TOPHUNG"},$t.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},$t.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},$t.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},$t.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},$t.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},$t.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},$t.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},$t.OTHEROPERATION={type:3,value:"OTHEROPERATION"},$t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=$t;class es{}es.LEFT={type:3,value:"LEFT"},es.MIDDLE={type:3,value:"MIDDLE"},es.RIGHT={type:3,value:"RIGHT"},es.BOTTOM={type:3,value:"BOTTOM"},es.TOP={type:3,value:"TOP"},es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=es;class ts{}ts.ALUMINIUM={type:3,value:"ALUMINIUM"},ts.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ts.STEEL={type:3,value:"STEEL"},ts.WOOD={type:3,value:"WOOD"},ts.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ts.PLASTIC={type:3,value:"PLASTIC"},ts.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=ts;class ss{}ss.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},ss.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},ss.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},ss.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},ss.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},ss.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},ss.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},ss.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},ss.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},ss.USERDEFINED={type:3,value:"USERDEFINED"},ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=ss;class ns{}ns.ACTUAL={type:3,value:"ACTUAL"},ns.BASELINE={type:3,value:"BASELINE"},ns.PLANNED={type:3,value:"PLANNED"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkControlTypeEnum=ns;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class is extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=is;e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class as extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.type=411424972}}e.IfcAppliedValue=as;e.IfcAppliedValueRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ComponentOfTotal=t,this.Components=s,this.ArithmeticOperator=n,this.Name=i,this.Description=a,this.type=1110488051}};e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Description=t,this.ApprovalDateTime=s,this.ApprovalStatus=n,this.ApprovalLevel=i,this.ApprovalQualifier=a,this.Name=r,this.Identifier=l,this.type=130549933}};e.IfcApprovalActorRelationship=class extends Kb{constructor(e,t,s,n){super(e),this.Actor=t,this.Approval=s,this.Role=n,this.type=2080292479}};e.IfcApprovalPropertyRelationship=class extends Kb{constructor(e,t,s){super(e),this.ApprovedProperties=t,this.Approval=s,this.type=390851274}};e.IfcApprovalRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.RelatedApproval=t,this.RelatingApproval=s,this.Description=n,this.Name=i,this.type=3869604511}};class rs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=rs;e.IfcBoundaryEdgeCondition=class extends rs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearStiffnessByLengthX=s,this.LinearStiffnessByLengthY=n,this.LinearStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends rs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.LinearStiffnessByAreaX=s,this.LinearStiffnessByAreaY=n,this.LinearStiffnessByAreaZ=i,this.type=3367102660}};class ls extends rs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=n,this.LinearStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=ls;e.IfcBoundaryNodeConditionWarping=class extends ls{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=n,this.LinearStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};e.IfcCalendarDate=class extends Kb{constructor(e,t,s,n){super(e),this.DayComponent=t,this.MonthComponent=s,this.YearComponent=n,this.type=622194075}};e.IfcClassification=class extends Kb{constructor(e,t,s,n,i){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.type=747523909}};e.IfcClassificationItem=class extends Kb{constructor(e,t,s,n){super(e),this.Notation=t,this.ItemOf=s,this.Title=n,this.type=1767535486}};e.IfcClassificationItemRelationship=class extends Kb{constructor(e,t,s){super(e),this.RelatingItem=t,this.RelatedItems=s,this.type=1098599126}};e.IfcClassificationNotation=class extends Kb{constructor(e,t){super(e),this.NotationFacets=t,this.type=938368621}};e.IfcClassificationNotationFacet=class extends Kb{constructor(e,t){super(e),this.NotationValue=t,this.type=3639012971}};class os extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=os;class cs extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=cs;class us extends cs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=us;e.IfcConnectionPortGeometry=class extends cs{constructor(e,t,s,n){super(e),this.LocationAtRelatingElement=t,this.LocationAtRelatedElement=s,this.ProfileOfPort=n,this.type=4257277454}};e.IfcConnectionSurfaceGeometry=class extends cs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};class hs extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=hs;e.IfcConstraintAggregationRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedConstraints=i,this.LogicalAggregator=a,this.type=1658513725}};e.IfcConstraintClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.ClassifiedConstraint=t,this.RelatedClassifications=s,this.type=613356794}};e.IfcConstraintRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedConstraints=i,this.type=347226245}};e.IfcCoordinatedUniversalTimeOffset=class extends Kb{constructor(e,t,s,n){super(e),this.HourOffset=t,this.MinuteOffset=s,this.Sense=n,this.type=1065062679}};e.IfcCostValue=class extends as{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.CostType=l,this.Condition=o,this.type=602808272}};e.IfcCurrencyRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.RelatingMonetaryUnit=t,this.RelatedMonetaryUnit=s,this.ExchangeRate=n,this.RateDateTime=i,this.RateSource=a,this.type=539742890}};e.IfcCurveStyleFont=class extends Kb{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends Kb{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};e.IfcDateAndTime=class extends Kb{constructor(e,t,s){super(e),this.DateComponent=t,this.TimeComponent=s,this.type=1072939445}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};e.IfcDocumentElectronicFormat=class extends Kb{constructor(e,t,s,n){super(e),this.FileExtension=t,this.MimeContentType=s,this.MimeSubtype=n,this.type=1376555844}};e.IfcDocumentInformation=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.DocumentId=t,this.Name=s,this.Description=n,this.DocumentReferences=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends Kb{constructor(e,t,s,n){super(e),this.RelatingDocument=t,this.RelatedDocuments=s,this.RelationshipType=n,this.type=770865208}};class ps extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=3796139169}}e.IfcDraughtingCalloutRelationship=ps;e.IfcEnvironmentalImpactValue=class extends as{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.ImpactType=l,this.Category=o,this.UserDefinedCategory=c,this.type=1648886627}};class As extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=As;e.IfcExternallyDefinedHatchStyle=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedSymbol=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3207319532}};e.IfcExternallyDefinedTextFont=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.LibraryReference=a,this.type=2655187982}};e.IfcLibraryReference=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcLocalTime=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.HourComponent=t,this.MinuteComponent=s,this.SecondComponent=n,this.Zone=i,this.DaylightSavingOffset=a,this.type=30780891}};e.IfcMaterial=class extends Kb{constructor(e,t){super(e),this.Name=t,this.type=1838606355}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};e.IfcMaterialLayer=class extends Kb{constructor(e,t,s,n){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.type=248100487}};e.IfcMaterialLayerSet=class extends Kb{constructor(e,t,s){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.type=3303938423}};e.IfcMaterialLayerSetUsage=class extends Kb{constructor(e,t,s,n,i){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.type=1303795690}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ds extends Kb{constructor(e,t){super(e),this.Material=t,this.type=3265635763}}e.IfcMaterialProperties=ds;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};class fs extends ds{constructor(e,t,s,n,i,a,r){super(e,t),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.type=4256014907}}e.IfcMechanicalMaterialProperties=fs;e.IfcMechanicalSteelMaterialProperties=class extends fs{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.YieldStress=l,this.UltimateStress=o,this.UltimateStrain=c,this.HardeningModule=u,this.ProportionalStress=h,this.PlasticStrain=p,this.Relaxations=A,this.type=677618848}};e.IfcMetric=class extends hs{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Is extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Is;class ys extends Kb{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=ys;e.IfcObjective=class extends hs{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.ResultValues=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOpticalMaterialProperties=class extends ds{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t),this.Material=t,this.VisibleTransmittance=s,this.SolarTransmittance=n,this.ThermalIrTransmittance=i,this.ThermalIrEmissivityBack=a,this.ThermalIrEmissivityFront=r,this.VisibleReflectanceBack=l,this.VisibleReflectanceFront=o,this.SolarReflectanceFront=c,this.SolarReflectanceBack=u,this.type=1227763645}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Id=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOrganizationRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Id=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class ms extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=ms;class vs extends ms{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=vs;e.IfcPostalAddress=class extends is{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class ws extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=ws;class gs extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=990879717}}e.IfcPreDefinedSymbol=gs;e.IfcPreDefinedTerminatorSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=3213052703}};class Es extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=Es;class Ts extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=Ts;e.IfcPresentationLayerWithStyle=class extends Ts{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class bs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=bs;e.IfcPresentationStyleAssignment=class extends Kb{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class Ds extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=Ds;e.IfcProductsOfCombustionProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.N20Content=n,this.COContent=i,this.CO2Content=a,this.type=2267347899}};class Ps extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=Ps;class Rs extends Kb{constructor(e,t,s){super(e),this.ProfileName=t,this.ProfileDefinition=s,this.type=2802850158}}e.IfcProfileProperties=Rs;class Cs extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=Cs;e.IfcPropertyConstraintRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.RelatingConstraint=t,this.RelatedProperties=s,this.Name=n,this.Description=i,this.type=3896028662}};e.IfcPropertyDependencyRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.DependingProperty=t,this.DependantProperty=s,this.Name=n,this.Description=i,this.Expression=a,this.type=148025276}};e.IfcPropertyEnumeration=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.type=2044713172}};e.IfcQuantityCount=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.type=2093928680}};e.IfcQuantityLength=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.type=931644368}};e.IfcQuantityTime=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.type=3252649465}};e.IfcQuantityVolume=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.type=2405470396}};e.IfcQuantityWeight=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.type=825690147}};e.IfcReferencesValueDocument=class extends Kb{constructor(e,t,s,n,i){super(e),this.ReferencedDocument=t,this.ReferencingValues=s,this.Name=n,this.Description=i,this.type=2692823254}};e.IfcReinforcementBarProperties=class extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};e.IfcRelaxation=class extends Kb{constructor(e,t,s){super(e),this.RelaxationValue=t,this.InitialStress=s,this.type=1222501353}};class _s extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=_s;class Bs extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=Bs;class Os extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=Os;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};e.IfcRibPlateProfileProperties=class extends Rs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.Thickness=n,this.RibHeight=i,this.RibWidth=a,this.RibSpacing=r,this.Direction=l,this.type=3679540991}};class Ss extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=Ss;e.IfcSIUnit=class extends Is{constructor(e,t,s,n){super(e,new zb(0),t),this.UnitType=t,this.Prefix=s,this.Name=n,this.type=448429030}};e.IfcSectionProperties=class extends Kb{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Ns extends _s{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Ns;e.IfcShapeRepresentation=class extends Ns{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class xs extends Cs{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=xs;class Ls extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Ls;class Ms extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Ms;class Fs extends Ms{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Fs;e.IfcStructuralLoadTemperature=class extends Fs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaT_Constant=s,this.DeltaT_Y=n,this.DeltaT_Z=i,this.type=3408363356}};class Hs extends _s{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=Hs;class Us extends Os{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}}e.IfcStyledItem=Us;e.IfcStyledRepresentation=class extends Hs{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceStyle=class extends bs{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends Kb{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends Kb{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Gs extends Kb{constructor(e,t){super(e),this.SurfaceColour=t,this.type=846575682}}e.IfcSurfaceStyleShading=Gs;e.IfcSurfaceStyleWithTextures=class extends Kb{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class js extends Kb{constructor(e,t,s,n,i){super(e),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.type=626085974}}e.IfcSurfaceTexture=js;e.IfcSymbolStyle=class extends bs{constructor(e,t,s){super(e,t),this.Name=t,this.StyleOfSymbol=s,this.type=1290481447}};e.IfcTable=class extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Rows=s,this.type=985171141}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};e.IfcTelecomAddress=class extends is{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.type=912023232}};e.IfcTextStyle=class extends bs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.type=1447204868}};e.IfcTextStyleFontModel=class extends Es{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTextStyleForDefinedFont=class extends Kb{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};e.IfcTextStyleWithBoxCharacteristics=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.BoxHeight=t,this.BoxWidth=s,this.BoxSlantAngle=n,this.BoxRotateAngle=i,this.CharacterSpacing=a,this.type=1484833681}};class Vs extends Kb{constructor(e){super(e),this.type=280115917}}e.IfcTextureCoordinate=Vs;e.IfcTextureCoordinateGenerator=class extends Vs{constructor(e,t,s){super(e),this.Mode=t,this.Parameter=s,this.type=1742049831}};e.IfcTextureMap=class extends Vs{constructor(e,t){super(e),this.TextureMaps=t,this.type=2552916305}};e.IfcTextureVertex=class extends Kb{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcThermalMaterialProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.BoilingPoint=n,this.FreezingPoint=i,this.ThermalConductivity=a,this.type=3317419933}};class ks extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=ks;e.IfcTimeSeriesReferenceRelationship=class extends Kb{constructor(e,t,s){super(e),this.ReferencedTimeSeries=t,this.TimeSeriesReferences=s,this.type=1718945513}};e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Qs extends Os{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Qs;e.IfcTopologyRepresentation=class extends Ns{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Ws extends Qs{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Ws;e.IfcVertexBasedTextureMap=class extends Kb{constructor(e,t,s){super(e),this.TextureVertices=t,this.TexturePoints=s,this.type=3304826586}};e.IfcVertexPoint=class extends Ws{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWaterProperties=class extends ds{constructor(e,t,s,n,i,a,r,l,o){super(e,t),this.Material=t,this.IsPotable=s,this.Hardness=n,this.AlkalinityConcentration=i,this.AcidityConcentration=a,this.ImpuritiesContent=r,this.PHLevel=l,this.DissolvedSolidsContent=o,this.type=1065908215}};class zs extends Us{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=2442683028}}e.IfcAnnotationOccurrence=zs;e.IfcAnnotationSurfaceOccurrence=class extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=962685235}};class Ks extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=3612888222}}e.IfcAnnotationSymbolOccurrence=Ks;e.IfcAnnotationTextOccurrence=class extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=2297822566}};class Ys extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ys;class Xs extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Xs;e.IfcArbitraryProfileDefWithVoids=class extends Ys{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends js{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.RasterFormat=a,this.RasterCode=r,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Xs{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassificationReference=class extends As{constructor(e,t,s,n,i){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.ReferencedSource=i,this.type=647927063}};e.IfcColourRgb=class extends os{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends Cs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};e.IfcCompositeProfileDef=class extends Ps{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class qs extends Qs{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=qs;e.IfcConnectionCurveGeometry=class extends cs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends us{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends Is{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};e.IfcConversionBasedUnit=class extends Is{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}};e.IfcCurveStyle=class extends bs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.type=3800577675}};e.IfcDerivedProfileDef=class extends Ps{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}};e.IfcDimensionCalloutRelationship=class extends ps{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=2273265877}};e.IfcDimensionPair=class extends ps{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=1694125774}};e.IfcDocumentReference=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3732053477}};e.IfcDraughtingPreDefinedTextFont=class extends Es{constructor(e,t){super(e,t),this.Name=t,this.type=4170525392}};class Js extends Qs{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Js;e.IfcEdgeCurve=class extends Js{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcExtendedMaterialProperties=class extends ds{constructor(e,t,s,n,i){super(e,t),this.Material=t,this.ExtendedProperties=s,this.Description=n,this.Name=i,this.type=1860660968}};class Zs extends Qs{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Zs;class $s extends Qs{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=$s;e.IfcFaceOuterBound=class extends $s{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};e.IfcFaceSurface=class extends Zs{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}};e.IfcFailureConnectionCondition=class extends Ls{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends bs{constructor(e,t,s){super(e,t),this.Name=t,this.FillStyles=s,this.type=738692330}};e.IfcFuelProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.CombustionTemperature=s,this.CarbonContent=n,this.LowerHeatingValue=i,this.HigherHeatingValue=a,this.type=3857492461}};e.IfcGeneralMaterialProperties=class extends ds{constructor(e,t,s,n,i){super(e,t),this.Material=t,this.MolecularWeight=s,this.Porosity=n,this.MassDensity=i,this.type=803998398}};class en extends Rs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.type=1446786286}}e.IfcGeneralProfileProperties=en;class tn extends Bs{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=tn;class sn extends Os{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=sn;e.IfcGeometricRepresentationSubContext=class extends tn{constructor(e,s,n,i,a,r,l){super(e,s,n,new t(0),null,new zb(0),null),this.ContextIdentifier=s,this.ContextType=n,this.ParentContext=i,this.TargetScale=a,this.TargetView=r,this.UserDefinedTargetView=l,this.type=4142052618}};class nn extends sn{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=nn;e.IfcGridPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class an extends sn{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=an;e.IfcHygroscopicMaterialProperties=class extends ds{constructor(e,t,s,n,i,a,r){super(e,t),this.Material=t,this.UpperVaporResistanceFactor=s,this.LowerVaporResistanceFactor=n,this.IsothermalMoistureCapacity=i,this.VaporPermeability=a,this.MoistureDiffusivity=r,this.type=2445078500}};e.IfcImageTexture=class extends js{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.UrlReference=a,this.type=3905492369}};e.IfcIrregularTimeSeries=class extends ks{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};class rn extends sn{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=rn;e.IfcLightSourceAmbient=class extends rn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends rn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends rn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class ln extends rn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=ln;e.IfcLightSourceSpot=class extends ln{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLocalPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class on extends Qs{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=on;e.IfcMappedItem=class extends Os{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterialDefinitionRepresentation=class extends Ds{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMechanicalConcreteMaterialProperties=class extends fs{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.CompressiveStrength=l,this.MaxAggregateSize=o,this.AdmixturesDescription=c,this.Workability=u,this.ProtectivePoreRatio=h,this.WaterImpermeability=p,this.type=1430189142}};class cn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=cn;class un extends sn{constructor(e,t){super(e),this.RepeatFactor=t,this.type=2833995503}}e.IfcOneDirectionRepeatFactor=un;e.IfcOpenShell=class extends qs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrientedEdge=class extends Js{constructor(e,t,s){super(e,new zb(0),new zb(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class hn extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=hn;e.IfcPath=class extends Qs{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends ms{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends js{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.Width=a,this.Height=r,this.ColourComponents=l,this.Pixel=o,this.type=597895409}};class pn extends sn{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=pn;class An extends sn{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=An;class dn extends sn{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=dn;e.IfcPointOnCurve=class extends dn{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends dn{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends on{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends an{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class fn extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=fn;class In extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=In;e.IfcPreDefinedDimensionSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=433424934}};e.IfcPreDefinedPointMarkerSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=179317114}};e.IfcProductDefinitionShape=class extends Ds{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcPropertyBoundedValue=class extends xs{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.type=871118103}};class yn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=yn;e.IfcPropertyEnumeratedValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};class mn extends yn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=mn;e.IfcPropertySingleValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends xs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.type=110355661}};class vn extends hn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=vn;e.IfcRegularTimeSeries=class extends ks{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementDefinitionProperties=class extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class wn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=wn;e.IfcRoundedRectangleProfileDef=class extends vn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionedSpine=class extends sn{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};e.IfcServiceLifeFactor=class extends mn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PredefinedType=a,this.UpperValue=r,this.MostUsedValue=l,this.LowerValue=o,this.type=2411513650}};e.IfcShellBasedSurfaceModel=class extends sn{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};e.IfcSlippageConnectionCondition=class extends Ls{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class gn extends sn{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=gn;e.IfcSoundProperties=class extends mn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.IsAttenuating=a,this.SoundScale=r,this.SoundValues=l,this.type=2485662743}};e.IfcSoundValue=class extends mn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.SoundLevelTimeSeries=a,this.Frequency=r,this.SoundLevelSingleValue=l,this.type=1202362311}};e.IfcSpaceThermalLoadProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableValueRatio=a,this.ThermalLoadSource=r,this.PropertySource=l,this.SourceDescription=o,this.MaximumValue=c,this.MinimumValue=u,this.ThermalLoadTimeSeriesValues=h,this.UserDefinedThermalLoadSource=p,this.UserDefinedPropertySource=A,this.ThermalLoadType=d,this.type=390701378}};e.IfcStructuralLoadLinearForce=class extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Fs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class En extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=En;e.IfcStructuralLoadSingleDisplacementDistortion=class extends En{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class Tn extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Tn;e.IfcStructuralLoadSingleForceWarping=class extends Tn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};class bn extends en{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T){super(e,t,s,n,i,a,r,l),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.TorsionalConstantX=o,this.MomentOfInertiaYZ=c,this.MomentOfInertiaY=u,this.MomentOfInertiaZ=h,this.WarpingConstant=p,this.ShearCentreZ=A,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=I,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=m,this.MaximumSectionModulusZ=v,this.MinimumSectionModulusZ=w,this.TorsionalSectionModulus=g,this.CentreOfGravityInX=E,this.CentreOfGravityInY=T,this.type=3843319758}}e.IfcStructuralProfileProperties=bn;e.IfcStructuralSteelProfileProperties=class extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b,D,P,R){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.TorsionalConstantX=o,this.MomentOfInertiaYZ=c,this.MomentOfInertiaY=u,this.MomentOfInertiaZ=h,this.WarpingConstant=p,this.ShearCentreZ=A,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=I,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=m,this.MaximumSectionModulusZ=v,this.MinimumSectionModulusZ=w,this.TorsionalSectionModulus=g,this.CentreOfGravityInX=E,this.CentreOfGravityInY=T,this.ShearAreaZ=b,this.ShearAreaY=D,this.PlasticShapeFactorY=P,this.PlasticShapeFactorZ=R,this.type=3653947884}};e.IfcSubedge=class extends Js{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Dn extends sn{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Dn;e.IfcSurfaceStyleRendering=class extends Gs{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class Pn extends gn{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=Pn;e.IfcSweptDiskSolid=class extends gn{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}};class Rn extends Dn{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Rn;e.IfcTShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.CentreOfGravityInY=A,this.type=3071757647}};class Cn extends Ks{constructor(e,t,s,n,i){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.AnnotatedCurve=i,this.type=3028897424}}e.IfcTerminatorSymbol=Cn;class _n extends sn{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=_n;e.IfcTextLiteralWithExtent=class extends _n{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTrapeziumProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};e.IfcTwoDirectionRepeatFactor=class extends un{constructor(e,t,s){super(e,t),this.RepeatFactor=t,this.SecondRepeatFactor=s,this.type=1345879162}};class Bn extends cn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=Bn;class On extends Bn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=On;e.IfcUShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.CentreOfGravityInX=h,this.type=427810014}};e.IfcVector=class extends sn{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends on{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowLiningProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.type=336235671}};e.IfcWindowPanelProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};e.IfcWindowStyle=class extends On{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ConstructionType=c,this.OperationType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=1299126871}};e.IfcZShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};class Sn extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=3288037868}}e.IfcAnnotationCurveOccurrence=Sn;e.IfcAnnotationFillArea=class extends sn{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAnnotationFillAreaOccurrence=class extends zs{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.FillStyleTarget=i,this.GlobalOrLocal=a,this.type=2265737646}};e.IfcAnnotationSurface=class extends sn{constructor(e,t,s){super(e),this.Item=t,this.TextureCoordinates=s,this.type=1302238472}};e.IfcAxis1Placement=class extends pn{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends pn{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends pn{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};class Nn extends sn{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Nn;class xn extends Dn{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=xn;e.IfcBoundingBox=class extends sn{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends an{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.CentreOfGravityInX=c,this.type=2898889636}};e.IfcCartesianPoint=class extends dn{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Ln extends sn{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Ln;class Mn extends Ln{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Mn;e.IfcCartesianTransformationOperator2DnonUniform=class extends Mn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Fn extends Ln{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Fn;e.IfcCartesianTransformationOperator3DnonUniform=class extends Fn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class Hn extends hn{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=Hn;e.IfcClosedShell=class extends qs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcCompositeCurveSegment=class extends sn{constructor(e,t,s,n){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}};e.IfcCraneRailAShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallHeight=i,this.BaseWidth2=a,this.Radius=r,this.HeadWidth=l,this.HeadDepth2=o,this.HeadDepth3=c,this.WebThickness=u,this.BaseWidth4=h,this.BaseDepth1=p,this.BaseDepth2=A,this.BaseDepth3=d,this.CentreOfGravityInY=f,this.type=4133800736}};e.IfcCraneRailFShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallHeight=i,this.HeadWidth=a,this.Radius=r,this.HeadDepth2=l,this.HeadDepth3=o,this.WebThickness=c,this.BaseDepth1=u,this.BaseDepth2=h,this.CentreOfGravityInY=p,this.type=194851669}};class Un extends sn{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Un;e.IfcCsgSolid=class extends gn{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Gn extends sn{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Gn;e.IfcCurveBoundedPlane=class extends xn{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcDefinedSymbol=class extends sn{constructor(e,t,s){super(e),this.Definition=t,this.Target=s,this.type=693772133}};e.IfcDimensionCurve=class extends Sn{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=606661476}};e.IfcDimensionCurveTerminator=class extends Cn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Item=t,this.Styles=s,this.Name=n,this.AnnotatedCurve=i,this.Role=a,this.type=4054601972}};e.IfcDirection=class extends sn{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorLiningProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.type=2963535650}};e.IfcDoorPanelProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorStyle=class extends On{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.OperationType=c,this.ConstructionType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=526551008}};class jn extends sn{constructor(e,t){super(e),this.Contents=t,this.type=3073041342}}e.IfcDraughtingCallout=jn;e.IfcDraughtingPreDefinedColour=class extends fn{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends In{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};e.IfcEdgeLoop=class extends on{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Vn extends On{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Vn;class kn extends Dn{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=kn;e.IfcEllipseProfileDef=class extends hn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};class Qn extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.EnergySequence=a,this.UserDefinedEnergySequence=r,this.type=80994333}}e.IfcEnergyProperties=Qn;e.IfcExtrudedAreaSolid=class extends Pn{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}};e.IfcFaceBasedSurfaceModel=class extends sn{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends sn{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTileSymbolWithStyle=class extends sn{constructor(e,t){super(e),this.Symbol=t,this.type=4203026998}};e.IfcFillAreaStyleTiles=class extends sn{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};e.IfcFluidFlowProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PropertySource=a,this.FlowConditionTimeSeries=r,this.VelocityTimeSeries=l,this.FlowrateTimeSeries=o,this.Fluid=c,this.PressureTimeSeries=u,this.UserDefinedPropertySource=h,this.TemperatureSingleValue=p,this.WetBulbTemperatureSingleValue=A,this.WetBulbTemperatureTimeSeries=d,this.TemperatureTimeSeries=f,this.FlowrateSingleValue=I,this.FlowConditionSingleValue=y,this.VelocitySingleValue=m,this.PressureSingleValue=v,this.type=3455213021}};class Wn extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Wn;e.IfcFurnitureType=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.type=1268542332}};e.IfcGeometricCurveSet=class extends nn{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};class zn extends hn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.type=1484403080}}e.IfcIShapeProfileDef=zn;e.IfcLShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.CentreOfGravityInX=u,this.CentreOfGravityInY=h,this.type=572779678}};e.IfcLine=class extends Gn{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Kn extends gn{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Kn;class Yn extends cn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=Yn;e.IfcOffsetCurve2D=class extends Gn{constructor(e,t,s,n){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Gn{constructor(e,t,s,n,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcPermeableCoveringProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPlanarBox=class extends An{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends kn{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Xn extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2945172077}}e.IfcProcess=Xn;class qn extends Yn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=qn;e.IfcProject=class extends Yn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectionCurve=class extends Sn{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=4194566429}};e.IfcPropertySet=class extends mn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcProxy=class extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.ProxyType=o,this.Tag=c,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends vn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends Un{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends xn{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};class Jn extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=Jn;class Zn extends Jn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}}e.IfcRelAssignsToActor=Zn;class $n extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}}e.IfcRelAssignsToControl=$n;e.IfcRelAssignsToGroup=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}};e.IfcRelAssignsToProcess=class extends Jn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToProjectOrder=class extends $n{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=3372526763}};e.IfcRelAssignsToResource=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class ei extends wn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=ei;e.IfcRelAssociatesAppliedValue=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingAppliedValue=r,this.type=1327628568}};e.IfcRelAssociatesApproval=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};e.IfcRelAssociatesProfileProperties=class extends ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingProfileProperties=r,this.ProfileSectionLocation=l,this.ProfileOrientation=o,this.type=2851387026}};class ti extends wn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=ti;class si extends ti{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=si;e.IfcRelConnectsPathElements=class extends si{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends ti{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};e.IfcRelConnectsStructuralElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralMember=r,this.type=3912681535}};class ni extends ti{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=ni;e.IfcRelConnectsWithEccentricity=class extends ni{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends si{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedSpace=a,this.RelatedCoverings=r,this.type=2802773753}};class ii extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=2551354335}}e.IfcRelDecomposes=ii;class ai extends wn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=693640335}}e.IfcRelDefines=ai;class ri extends ai{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}}e.IfcRelDefinesByProperties=ri;e.IfcRelDefinesByType=class extends ai{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInteractionRequirements=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DailyInteraction=a,this.ImportanceRating=r,this.LocationOfInteraction=l,this.RelatedSpaceProgram=o,this.RelatingSpaceProgram=c,this.type=4189434867}};e.IfcRelNests=class extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelOccupiesSpaces=class extends Zn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=2051452291}};e.IfcRelOverridesProperties=class extends ri{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.OverridingProperties=l,this.type=202636808}};e.IfcRelProjectsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSchedulesCostItems=class extends $n{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=1058617721}};e.IfcRelSequence=class extends ti{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.type=4122056220}};e.IfcRelServicesBuildings=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};e.IfcRelSpaceBoundary=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}};e.IfcRelVoidsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};class li extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2914609552}}e.IfcResource=li;e.IfcRevolvedAreaSolid=class extends Pn{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}};e.IfcRightCircularCone=class extends Un{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Un{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};class oi extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=oi;class ci extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=ci;e.IfcSphere=class extends Un{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};class ui extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=ui;class hi extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=hi;class pi extends hi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=pi;class Ai extends ui{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=Ai;class di extends pi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=di;e.IfcStructuralSurfaceMemberVarying=class extends di{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.SubsequentThickness=u,this.VaryingThicknessLocation=h,this.type=2218152070}};e.IfcStructuredDimensionCallout=class extends jn{constructor(e,t){super(e,t),this.Contents=t,this.type=4070609034}};e.IfcSurfaceCurveSweptAreaSolid=class extends Pn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Rn{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Rn{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1580310250}};class fi extends Xn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.type=3473067441}}e.IfcTask=fi;e.IfcTransportElementType=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};class Ii extends Yn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=Ii;e.IfcAnnotation=class extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1674181508}};e.IfcAsymmetricIShapeProfileDef=class extends zn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.CentreOfGravityInY=p,this.type=3207858831}};e.IfcBlock=class extends Un{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Nn{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class yi extends Gn{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=yi;e.IfcBuilding=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};class mi extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1950629157}}e.IfcBuildingElementType=mi;e.IfcBuildingStorey=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};e.IfcCircleHollowProfileDef=class extends Hn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcColumnType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};class vi extends yi{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=vi;class wi extends Gn{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=wi;class gi extends li{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=gi;class Ei extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3293443760}}e.IfcControl=Ei;e.IfcCostItem=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3895139033}};e.IfcCostSchedule=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.SubmittedBy=r,this.PreparedBy=l,this.SubmittedOn=o,this.Status=c,this.TargetUsers=u,this.UpdateDate=h,this.ID=p,this.PredefinedType=A,this.type=1419761937}};e.IfcCoveringType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=3295246426}};e.IfcCurtainWallType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};class Ti extends jn{constructor(e,t){super(e,t),this.Contents=t,this.type=681481545}}e.IfcDimensionCurveDirectedCallout=Ti;class bi extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=bi;class Di extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Di;e.IfcElectricalBaseProperties=class extends Qn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.EnergySequence=a,this.UserDefinedEnergySequence=r,this.ElectricCurrentType=l,this.InputVoltage=o,this.InputFrequency=c,this.FullLoadCurrent=u,this.MinimumCircuitCurrent=h,this.MaximumPowerInput=p,this.RatedPowerInput=A,this.InputPhase=d,this.type=360485395}};class Pi extends qn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Pi;e.IfcElementAssembly=class extends Pi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};class Ri extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=Ri;class Ci extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Ci;e.IfcEllipse=class extends wi{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class _i extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=_i;e.IfcEquipmentElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1962604670}};e.IfcEquipmentStandard=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3272907226}};e.IfcEvaporativeCoolerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcFacetedBrep=class extends Kn{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}};e.IfcFacetedBrepWithVoids=class extends Kn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Bi extends Ri{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=647756555}}e.IfcFastener=Bi;class Oi extends Ci{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2489546625}}e.IfcFastenerType=Oi;class Si extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=Si;class Ni extends Si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Ni;class xi extends Si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=xi;class Li extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Li;class Mi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=Mi;e.IfcFlowMeterType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Fi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Fi;class Hi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Hi;class Ui extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=Ui;class Gi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=Gi;class ji extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=ji;e.IfcFurnishingElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}};e.IfcFurnitureStandard=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=814719939}};e.IfcGasTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=200128114}};e.IfcGrid=class extends qn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.type=3009204131}};class Vi extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=Vi;e.IfcHeatExchangerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcInventory=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.InventoryType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcLaborResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.SkillSet=u,this.type=3827777499}};e.IfcLampType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};e.IfcLinearDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=2506943328}};e.IfcMechanicalFastener=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2108223431}};e.IfcMemberType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMotorConnectionType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcMove=class extends fi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.MoveFrom=h,this.MoveTo=p,this.PunchList=A,this.type=1916936684}};e.IfcOccupant=class extends Ii{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};e.IfcOpeningElement=class extends xi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3588315303}};e.IfcOrderAction=class extends fi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.ActionID=h,this.type=3425660407}};e.IfcOutletType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPerformanceHistory=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LifeCyclePhase=r,this.type=2382730787}};e.IfcPermit=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PermitID=r,this.type=3327091369}};e.IfcPipeFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolyline=class extends yi{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class ki extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=ki;e.IfcProcedure=class extends Xn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ProcedureID=r,this.ProcedureType=l,this.UserDefinedProcedureType=o,this.type=2744685151}};e.IfcProjectOrder=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ID=r,this.PredefinedType=l,this.Status=o,this.type=2904328755}};e.IfcProjectOrderRecord=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Records=r,this.PredefinedType=l,this.type=3642467123}};e.IfcProjectionElement=class extends Ni{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRadiusDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=3248260540}};e.IfcRailingType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRampFlightType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRelAggregates=class extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRelAssignsTasks=class extends $n{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.TimeForTask=o,this.type=2863920197}};e.IfcSanitaryTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcScheduleTimeControl=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ActualStart=r,this.EarlyStart=l,this.LateStart=o,this.ScheduleStart=c,this.ActualFinish=u,this.EarlyFinish=h,this.LateFinish=p,this.ScheduleFinish=A,this.ScheduleDuration=d,this.ActualDuration=f,this.RemainingTime=I,this.FreeFloat=y,this.TotalFloat=m,this.IsCritical=v,this.StatusTime=w,this.StartFloat=g,this.FinishFloat=E,this.Completion=T,this.type=3517283431}};e.IfcServiceLife=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ServiceLifeType=r,this.ServiceLifeDuration=l,this.type=4105383287}};e.IfcSite=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSpace=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.InteriorOrExteriorSpace=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceProgram=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.SpaceProgramIdentifier=r,this.MaxRequiredArea=l,this.MinRequiredArea=o,this.RequestedLocation=c,this.StandardRequiredArea=u,this.type=652456506}};e.IfcSpaceType=class extends ci{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3812236995}};e.IfcStackTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};class Qi extends ui{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.type=682877961}}e.IfcStructuralAction=Qi;class Wi extends hi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=Wi;e.IfcStructuralCurveConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=4243806635}};class zi extends pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=214636428}}e.IfcStructuralCurveMember=zi;e.IfcStructuralCurveMemberVarying=class extends zi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=2445595289}};class Ki extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.type=1807405624}}e.IfcStructuralLinearAction=Ki;e.IfcStructuralLinearActionVarying=class extends Ki{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.VaryingAppliedLoadLocation=A,this.SubsequentAppliedLoads=d,this.type=1721250024}};e.IfcStructuralLoadGroup=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}};class Yi extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.type=1621171031}}e.IfcStructuralPlanarAction=Yi;e.IfcStructuralPlanarActionVarying=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.VaryingAppliedLoadLocation=A,this.SubsequentAppliedLoads=d,this.type=3987759626}};e.IfcStructuralPointAction=class extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends Vi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};e.IfcStructuralSurfaceConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.SubContractor=u,this.JobDescription=h,this.type=148013059}};e.IfcSwitchingDeviceType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class Xi extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=Xi;e.IfcTankType=class extends Ui{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTimeSeriesSchedule=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ApplicableDates=r,this.TimeSeriesScheduleType=l,this.TimeSeries=o,this.type=1637806684}};e.IfcTransformerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OperationType=c,this.CapacityByWeight=u,this.CapacityByNumber=h,this.type=1620046519}};e.IfcTrimmedCurve=class extends yi{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVirtualElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2769231204}};e.IfcWallType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};class qi extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=1028945134}}e.IfcWorkControl=qi;e.IfcWorkPlan=class extends qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=4218914973}};e.IfcWorkSchedule=class extends qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=3342526732}};e.IfcZone=class extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=1033361043}};e.Ifc2DCompositeCurve=class extends vi{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1213861670}};e.IfcActionRequest=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.RequestID=r,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAngularDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=2470393545}};e.IfcAsset=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.AssetID=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};class Ji extends yi{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=Ji;e.IfcBeamType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};class Zi extends Ji{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1916977116}}e.IfcBezierCurve=Zi;e.IfcBoilerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class $i extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3299480353}}e.IfcBuildingElement=$i;class ea extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=52481810}}e.IfcBuildingElementComponent=ea;e.IfcBuildingElementPart=class extends ea{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2979338954}};e.IfcBuildingElementProxy=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.CompositionType=c,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcCableCarrierFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcChillerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcCircle=class extends wi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCoilType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};e.IfcColumn=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=843113511}};e.IfcCompressorType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcCondition=class extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2188551683}};e.IfcConditionCriterion=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Criterion=r,this.CriterionDateTime=l,this.type=1163958913}};e.IfcConstructionEquipmentResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.Suppliers=u,this.UsageRatio=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=488727124}};e.IfcCooledBeamType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCovering=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3495092785}};e.IfcDamperType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};e.IfcDiameterDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=4147604152}};e.IfcDiscreteAccessory=class extends Ri{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1335981549}};class ta extends Ci{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2635815018}}e.IfcDiscreteAccessoryType=ta;e.IfcDistributionChamberElementType=class extends Di{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class sa extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=sa;class na extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=na;class ia extends na{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=ia;e.IfcDistributionPort=class extends ki{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.type=3041715199}};e.IfcDoor=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.type=395920057}};e.IfcDuctFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};class aa extends xi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.type=855621170}}e.IfcEdgeFeature=aa;e.IfcElectricApplianceType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricFlowStorageDeviceType=class extends Ui{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricGeneratorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricHeaterType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1365060375}};e.IfcElectricMotorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};e.IfcElectricalCircuit=class extends Xi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=1634875225}};e.IfcElectricalElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=857184966}};e.IfcEnergyConversionDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}};e.IfcFanType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class ra extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=ra;e.IfcFlowFitting=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}};e.IfcFlowInstrumentType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMovingDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}};e.IfcFlowSegment=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}};e.IfcFlowStorageDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}};e.IfcFlowTerminal=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}};e.IfcFlowTreatmentDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}};e.IfcFooting=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};e.IfcMember=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1073191201}};e.IfcPile=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPlate=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3171933400}};e.IfcRailing=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=3024970846}};e.IfcRampFlight=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3283111854}};e.IfcRationalBezierCurve=class extends Zi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.WeightsData=r,this.type=3055160366}};class la extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=la;e.IfcReinforcingMesh=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.type=2320036040}};e.IfcRoof=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=2016517767}};e.IfcRoundedEdgeFeature=class extends aa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.Radius=u,this.type=1376911519}};e.IfcSensorType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcSlab=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}};e.IfcStair=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=331165859}};e.IfcStairFlight=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRiser=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Xi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.type=2515109513}};e.IfcTendon=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=2347447852}};e.IfcVibrationIsolatorType=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};class oa extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2391406946}}e.IfcWall=oa;e.IfcWallStandardCase=class extends oa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3512223829}};e.IfcWindow=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.type=3304561284}};e.IfcActuatorType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAlarmType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcBeam=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=753842376}};e.IfcChamferEdgeFeature=class extends aa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.Width=u,this.Height=h,this.type=2454782716}};e.IfcControllerType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcDistributionChamberElement=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1052013943}};e.IfcDistributionControlElement=class extends na{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ControlElementId=c,this.type=1062813311}};e.IfcElectricDistributionPoint=class extends ra{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.DistributionPointFunction=c,this.UserDefinedFunction=u,this.type=3700593921}};e.IfcReinforcingBar=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.BarRole=A,this.BarSurface=d,this.type=979691226}}}(cb||(cb={})),eD[2]="IFC4",Yb[2]={3630933823:(e,t)=>new ub.IfcActorRole(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null),618182010:(e,t)=>new ub.IfcAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),639542469:(e,t)=>new ub.IfcApplication(e,new zb(t[0].value),new ub.IfcLabel(t[1].value),new ub.IfcLabel(t[2].value),new ub.IfcIdentifier(t[3].value)),411424972:(e,t)=>new ub.IfcAppliedValue(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),130549933:(e,t)=>new ub.IfcApproval(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),4037036970:(e,t)=>new ub.IfcBoundaryCondition(e,t[0]?new ub.IfcLabel(t[0].value):null),1560379544:(e,t)=>new ub.IfcBoundaryEdgeCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null),3367102660:(e,t)=>new ub.IfcBoundaryFaceCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null),1387855156:(e,t)=>new ub.IfcBoundaryNodeCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null),2069777674:(e,t)=>new ub.IfcBoundaryNodeConditionWarping(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null,t[7]?tD(2,t[7]):null),2859738748:(e,t)=>new ub.IfcConnectionGeometry(e),2614616156:(e,t)=>new ub.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2732653382:(e,t)=>new ub.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),775493141:(e,t)=>new ub.IfcConnectionVolumeGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new ub.IfcConstraint(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null),1785450214:(e,t)=>new ub.IfcCoordinateOperation(e,new zb(t[0].value),new zb(t[1].value)),1466758467:(e,t)=>new ub.IfcCoordinateReferenceSystem(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new ub.IfcIdentifier(t[3].value):null),602808272:(e,t)=>new ub.IfcCostValue(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),1765591967:(e,t)=>new ub.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new ub.IfcLabel(t[2].value):null),1045800335:(e,t)=>new ub.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new ub.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),4294318154:(e,t)=>new ub.IfcExternalInformation(e),3200245327:(e,t)=>new ub.IfcExternalReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),2242383968:(e,t)=>new ub.IfcExternallyDefinedHatchStyle(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),1040185647:(e,t)=>new ub.IfcExternallyDefinedSurfaceStyle(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),3548104201:(e,t)=>new ub.IfcExternallyDefinedTextFont(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),852622518:(e,t)=>new ub.IfcGridAxis(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),new ub.IfcBoolean(t[2].value)),3020489413:(e,t)=>new ub.IfcIrregularTimeSeriesValue(e,new ub.IfcDateTime(t[0].value),t[1].map((e=>tD(2,e)))),2655187982:(e,t)=>new ub.IfcLibraryInformation(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcURIReference(t[4].value):null,t[5]?new ub.IfcText(t[5].value):null),3452421091:(e,t)=>new ub.IfcLibraryReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLanguageId(t[4].value):null,t[5]?new zb(t[5].value):null),4162380809:(e,t)=>new ub.IfcLightDistributionData(e,new ub.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new ub.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new ub.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new ub.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),3057273783:(e,t)=>new ub.IfcMapConversion(e,new zb(t[0].value),new zb(t[1].value),new ub.IfcLengthMeasure(t[2].value),new ub.IfcLengthMeasure(t[3].value),new ub.IfcLengthMeasure(t[4].value),t[5]?new ub.IfcReal(t[5].value):null,t[6]?new ub.IfcReal(t[6].value):null,t[7]?new ub.IfcReal(t[7].value):null),1847130766:(e,t)=>new ub.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),760658860:(e,t)=>new ub.IfcMaterialDefinition(e),248100487:(e,t)=>new ub.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new ub.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new ub.IfcLogical(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null),3303938423:(e,t)=>new ub.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null),1847252529:(e,t)=>new ub.IfcMaterialLayerWithOffsets(e,t[0]?new zb(t[0].value):null,new ub.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new ub.IfcLogical(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null,t[7],new ub.IfcLengthMeasure(t[8].value)),2199411900:(e,t)=>new ub.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),2235152071:(e,t)=>new ub.IfcMaterialProfile(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),164193824:(e,t)=>new ub.IfcMaterialProfileSet(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new zb(t[3].value):null),552965576:(e,t)=>new ub.IfcMaterialProfileWithOffsets(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,new ub.IfcLengthMeasure(t[6].value)),1507914824:(e,t)=>new ub.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new ub.IfcMeasureWithUnit(e,tD(2,t[0]),new zb(t[1].value)),3368373690:(e,t)=>new ub.IfcMetric(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),2706619895:(e,t)=>new ub.IfcMonetaryUnit(e,new ub.IfcLabel(t[0].value)),1918398963:(e,t)=>new ub.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new ub.IfcObjectPlacement(e),2251480897:(e,t)=>new ub.IfcObjective(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8],t[9],t[10]?new ub.IfcLabel(t[10].value):null),4251960020:(e,t)=>new ub.IfcOrganization(e,t[0]?new ub.IfcIdentifier(t[0].value):null,new ub.IfcLabel(t[1].value),t[2]?new ub.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1207048766:(e,t)=>new ub.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new ub.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new ub.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new ub.IfcPerson(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new ub.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new ub.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new ub.IfcPhysicalQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null),2226359599:(e,t)=>new ub.IfcPhysicalSimpleQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new ub.IfcPostalAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null),677532197:(e,t)=>new ub.IfcPresentationItem(e),2022622350:(e,t)=>new ub.IfcPresentationLayerAssignment(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new ub.IfcPresentationLayerWithStyle(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcIdentifier(t[3].value):null,new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new ub.IfcPresentationStyle(e,t[0]?new ub.IfcLabel(t[0].value):null),2417041796:(e,t)=>new ub.IfcPresentationStyleAssignment(e,t[0].map((e=>new zb(e.value)))),2095639259:(e,t)=>new ub.IfcProductRepresentation(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),3958567839:(e,t)=>new ub.IfcProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null),3843373140:(e,t)=>new ub.IfcProjectedCRS(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new ub.IfcIdentifier(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null),986844984:(e,t)=>new ub.IfcPropertyAbstraction(e),3710013099:(e,t)=>new ub.IfcPropertyEnumeration(e,new ub.IfcLabel(t[0].value),t[1].map((e=>tD(2,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new ub.IfcQuantityArea(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcAreaMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),2093928680:(e,t)=>new ub.IfcQuantityCount(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcCountMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),931644368:(e,t)=>new ub.IfcQuantityLength(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcLengthMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),3252649465:(e,t)=>new ub.IfcQuantityTime(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcTimeMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),2405470396:(e,t)=>new ub.IfcQuantityVolume(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcVolumeMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),825690147:(e,t)=>new ub.IfcQuantityWeight(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcMassMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),3915482550:(e,t)=>new ub.IfcRecurrencePattern(e,t[0],t[1]?t[1].map((e=>new ub.IfcDayInMonthNumber(e.value))):null,t[2]?t[2].map((e=>new ub.IfcDayInWeekNumber(e.value))):null,t[3]?t[3].map((e=>new ub.IfcMonthInYearNumber(e.value))):null,t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcInteger(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null),2433181523:(e,t)=>new ub.IfcReference(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcInteger(e.value))):null,t[4]?new zb(t[4].value):null),1076942058:(e,t)=>new ub.IfcRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new ub.IfcRepresentationContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null),3008791417:(e,t)=>new ub.IfcRepresentationItem(e),1660063152:(e,t)=>new ub.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),2439245199:(e,t)=>new ub.IfcResourceLevelRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null),2341007311:(e,t)=>new ub.IfcRoot(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),448429030:(e,t)=>new ub.IfcSIUnit(e,t[0],t[1],t[2]),1054537805:(e,t)=>new ub.IfcSchedulingTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null),867548509:(e,t)=>new ub.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,new ub.IfcLogical(t[3].value),t[4]?new zb(t[4].value):null),3982875396:(e,t)=>new ub.IfcShapeModel(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new ub.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2273995522:(e,t)=>new ub.IfcStructuralConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null),2162789131:(e,t)=>new ub.IfcStructuralLoad(e,t[0]?new ub.IfcLabel(t[0].value):null),3478079324:(e,t)=>new ub.IfcStructuralLoadConfiguration(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?t[2].map((e=>new ub.IfcLengthMeasure(e.value))):null),609421318:(e,t)=>new ub.IfcStructuralLoadOrResult(e,t[0]?new ub.IfcLabel(t[0].value):null),2525727697:(e,t)=>new ub.IfcStructuralLoadStatic(e,t[0]?new ub.IfcLabel(t[0].value):null),3408363356:(e,t)=>new ub.IfcStructuralLoadTemperature(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new ub.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new ub.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new ub.IfcStyleModel(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new ub.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new ub.IfcLabel(t[2].value):null),3049322572:(e,t)=>new ub.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2934153892:(e,t)=>new ub.IfcSurfaceReinforcementArea(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new ub.IfcLengthMeasure(e.value))):null,t[2]?t[2].map((e=>new ub.IfcLengthMeasure(e.value))):null,t[3]?new ub.IfcRatioMeasure(t[3].value):null),1300840506:(e,t)=>new ub.IfcSurfaceStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new ub.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new ub.IfcSurfaceStyleRefraction(e,t[0]?new ub.IfcReal(t[0].value):null,t[1]?new ub.IfcReal(t[1].value):null),846575682:(e,t)=>new ub.IfcSurfaceStyleShading(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null),1351298697:(e,t)=>new ub.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new ub.IfcSurfaceTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null),985171141:(e,t)=>new ub.IfcTable(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new zb(e.value))):null,t[2]?t[2].map((e=>new zb(e.value))):null),2043862942:(e,t)=>new ub.IfcTableColumn(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null),531007025:(e,t)=>new ub.IfcTableRow(e,t[0]?t[0].map((e=>tD(2,e))):null,t[1]?new ub.IfcBoolean(t[1].value):null),1549132990:(e,t)=>new ub.IfcTaskTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3],t[4]?new ub.IfcDuration(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcDateTime(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcDuration(t[12].value):null,t[13]?new ub.IfcBoolean(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcDateTime(t[16].value):null,t[17]?new ub.IfcDateTime(t[17].value):null,t[18]?new ub.IfcDuration(t[18].value):null,t[19]?new ub.IfcPositiveRatioMeasure(t[19].value):null),2771591690:(e,t)=>new ub.IfcTaskTimeRecurring(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3],t[4]?new ub.IfcDuration(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcDateTime(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcDuration(t[12].value):null,t[13]?new ub.IfcBoolean(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcDateTime(t[16].value):null,t[17]?new ub.IfcDateTime(t[17].value):null,t[18]?new ub.IfcDuration(t[18].value):null,t[19]?new ub.IfcPositiveRatioMeasure(t[19].value):null,new zb(t[20].value)),912023232:(e,t)=>new ub.IfcTelecomAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new ub.IfcLabel(e.value))):null,t[7]?new ub.IfcURIReference(t[7].value):null,t[8]?t[8].map((e=>new ub.IfcURIReference(e.value))):null),1447204868:(e,t)=>new ub.IfcTextStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcBoolean(t[4].value):null),2636378356:(e,t)=>new ub.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new ub.IfcTextStyleTextModel(e,t[0]?tD(2,t[0]):null,t[1]?new ub.IfcTextAlignment(t[1].value):null,t[2]?new ub.IfcTextDecoration(t[2].value):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?new ub.IfcTextTransformation(t[5].value):null,t[6]?tD(2,t[6]):null),280115917:(e,t)=>new ub.IfcTextureCoordinate(e,t[0].map((e=>new zb(e.value)))),1742049831:(e,t)=>new ub.IfcTextureCoordinateGenerator(e,t[0].map((e=>new zb(e.value))),new ub.IfcLabel(t[1].value),t[2]?t[2].map((e=>new ub.IfcReal(e.value))):null),2552916305:(e,t)=>new ub.IfcTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new zb(t[2].value)),1210645708:(e,t)=>new ub.IfcTextureVertex(e,t[0].map((e=>new ub.IfcParameterValue(e.value)))),3611470254:(e,t)=>new ub.IfcTextureVertexList(e,t[0].map((e=>new ub.IfcParameterValue(e.value)))),1199560280:(e,t)=>new ub.IfcTimePeriod(e,new ub.IfcTime(t[0].value),new ub.IfcTime(t[1].value)),3101149627:(e,t)=>new ub.IfcTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),581633288:(e,t)=>new ub.IfcTimeSeriesValue(e,t[0].map((e=>tD(2,e)))),1377556343:(e,t)=>new ub.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new ub.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new ub.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new ub.IfcVertex(e),1907098498:(e,t)=>new ub.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new ub.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new ub.IfcLengthMeasure(e.value)))),1236880293:(e,t)=>new ub.IfcWorkTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null),3869604511:(e,t)=>new ub.IfcApprovalRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),3798115385:(e,t)=>new ub.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new ub.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new ub.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new ub.IfcBlobTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcIdentifier(t[5].value),new ub.IfcBinary(t[6].value)),3150382593:(e,t)=>new ub.IfcCenterLineProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),747523909:(e,t)=>new ub.IfcClassification(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcDate(t[2].value):null,new ub.IfcLabel(t[3].value),t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcURIReference(t[5].value):null,t[6]?t[6].map((e=>new ub.IfcIdentifier(e.value))):null),647927063:(e,t)=>new ub.IfcClassificationReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null),3285139300:(e,t)=>new ub.IfcColourRgbList(e,t[0].map((e=>new ub.IfcNormalisedRatioMeasure(e.value)))),3264961684:(e,t)=>new ub.IfcColourSpecification(e,t[0]?new ub.IfcLabel(t[0].value):null),1485152156:(e,t)=>new ub.IfcCompositeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcLabel(t[3].value):null),370225590:(e,t)=>new ub.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new ub.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new ub.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new ub.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value)),2889183280:(e,t)=>new ub.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value),new zb(t[3].value)),2713554722:(e,t)=>new ub.IfcConversionBasedUnitWithOffset(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value),new zb(t[3].value),new ub.IfcReal(t[4].value)),539742890:(e,t)=>new ub.IfcCurrencyRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),new ub.IfcPositiveRatioMeasure(t[4].value),t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new zb(t[6].value):null),3800577675:(e,t)=>new ub.IfcCurveStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcBoolean(t[4].value):null),1105321065:(e,t)=>new ub.IfcCurveStyleFont(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new ub.IfcCurveStyleFontAndScaling(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),new ub.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new ub.IfcCurveStyleFontPattern(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3632507154:(e,t)=>new ub.IfcDerivedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),1154170062:(e,t)=>new ub.IfcDocumentInformation(e,new ub.IfcIdentifier(t[0].value),new ub.IfcLabel(t[1].value),t[2]?new ub.IfcText(t[2].value):null,t[3]?new ub.IfcURIReference(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcText(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDateTime(t[11].value):null,t[12]?new ub.IfcIdentifier(t[12].value):null,t[13]?new ub.IfcDate(t[13].value):null,t[14]?new ub.IfcDate(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new ub.IfcDocumentInformationRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new ub.IfcLabel(t[4].value):null),3732053477:(e,t)=>new ub.IfcDocumentReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null),3900360178:(e,t)=>new ub.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new ub.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new ub.IfcBoolean(t[3].value)),211053100:(e,t)=>new ub.IfcEventTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcDateTime(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null),297599258:(e,t)=>new ub.IfcExtendedProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),1437805879:(e,t)=>new ub.IfcExternalReferenceRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),2556980723:(e,t)=>new ub.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new ub.IfcFaceBound(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),803316827:(e,t)=>new ub.IfcFaceOuterBound(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),3008276851:(e,t)=>new ub.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new ub.IfcBoolean(t[2].value)),4219587988:(e,t)=>new ub.IfcFailureConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcForceMeasure(t[4].value):null,t[5]?new ub.IfcForceMeasure(t[5].value):null,t[6]?new ub.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new ub.IfcFillAreaStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new ub.IfcBoolean(t[2].value):null),3448662350:(e,t)=>new ub.IfcGeometricRepresentationContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,new ub.IfcDimensionCount(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new ub.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new ub.IfcGeometricRepresentationSubContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcPositiveRatioMeasure(t[3].value):null,t[4],t[5]?new ub.IfcLabel(t[5].value):null),3590301190:(e,t)=>new ub.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new ub.IfcGridPlacement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),812098782:(e,t)=>new ub.IfcHalfSpaceSolid(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),3905492369:(e,t)=>new ub.IfcImageTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcURIReference(t[5].value)),3570813810:(e,t)=>new ub.IfcIndexedColourMap(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null,new zb(t[2].value),t[3].map((e=>new ub.IfcPositiveInteger(e.value)))),1437953363:(e,t)=>new ub.IfcIndexedTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value)),2133299955:(e,t)=>new ub.IfcIndexedTriangleTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3]?t[3].map((e=>new ub.IfcPositiveInteger(e.value))):null),3741457305:(e,t)=>new ub.IfcIrregularTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1585845231:(e,t)=>new ub.IfcLagTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,tD(2,t[3]),t[4]),1402838566:(e,t)=>new ub.IfcLightSource(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new ub.IfcLightSourceAmbient(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new ub.IfcLightSourceDirectional(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new ub.IfcLightSourceGoniometric(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new ub.IfcThermodynamicTemperatureMeasure(t[6].value),new ub.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new ub.IfcLightSourcePositional(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcReal(t[6].value),new ub.IfcReal(t[7].value),new ub.IfcReal(t[8].value)),3422422726:(e,t)=>new ub.IfcLightSourceSpot(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcReal(t[6].value),new ub.IfcReal(t[7].value),new ub.IfcReal(t[8].value),new zb(t[9].value),t[10]?new ub.IfcReal(t[10].value):null,new ub.IfcPositivePlaneAngleMeasure(t[11].value),new ub.IfcPositivePlaneAngleMeasure(t[12].value)),2624227202:(e,t)=>new ub.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new ub.IfcLoop(e),2347385850:(e,t)=>new ub.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),1838606355:(e,t)=>new ub.IfcMaterial(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),3708119e3:(e,t)=>new ub.IfcMaterialConstituent(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),2852063980:(e,t)=>new ub.IfcMaterialConstituentSet(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>new zb(e.value))):null),2022407955:(e,t)=>new ub.IfcMaterialDefinitionRepresentation(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1303795690:(e,t)=>new ub.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new ub.IfcLengthMeasure(t[3].value),t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null),3079605661:(e,t)=>new ub.IfcMaterialProfileSetUsage(e,new zb(t[0].value),t[1]?new ub.IfcCardinalPointReference(t[1].value):null,t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null),3404854881:(e,t)=>new ub.IfcMaterialProfileSetUsageTapering(e,new zb(t[0].value),t[1]?new ub.IfcCardinalPointReference(t[1].value):null,t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcCardinalPointReference(t[4].value):null),3265635763:(e,t)=>new ub.IfcMaterialProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),853536259:(e,t)=>new ub.IfcMaterialRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new ub.IfcLabel(t[4].value):null),2998442950:(e,t)=>new ub.IfcMirroredProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcLabel(t[3].value):null),219451334:(e,t)=>new ub.IfcObjectDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2665983363:(e,t)=>new ub.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1411181986:(e,t)=>new ub.IfcOrganizationRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1029017970:(e,t)=>new ub.IfcOrientedEdge(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),2529465313:(e,t)=>new ub.IfcParameterizedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null),2519244187:(e,t)=>new ub.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new ub.IfcPhysicalComplexQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new ub.IfcLabel(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),597895409:(e,t)=>new ub.IfcPixelTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcInteger(t[5].value),new ub.IfcInteger(t[6].value),new ub.IfcInteger(t[7].value),t[8].map((e=>new ub.IfcBinary(e.value)))),2004835150:(e,t)=>new ub.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new ub.IfcPlanarExtent(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new ub.IfcPoint(e),4022376103:(e,t)=>new ub.IfcPointOnCurve(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new ub.IfcPointOnSurface(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value),new ub.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new ub.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new ub.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value),new zb(t[2].value),new zb(t[3].value)),3727388367:(e,t)=>new ub.IfcPreDefinedItem(e,new ub.IfcLabel(t[0].value)),3778827333:(e,t)=>new ub.IfcPreDefinedProperties(e),1775413392:(e,t)=>new ub.IfcPreDefinedTextFont(e,new ub.IfcLabel(t[0].value)),673634403:(e,t)=>new ub.IfcProductDefinitionShape(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2802850158:(e,t)=>new ub.IfcProfileProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),2598011224:(e,t)=>new ub.IfcProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null),1680319473:(e,t)=>new ub.IfcPropertyDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),148025276:(e,t)=>new ub.IfcPropertyDependencyRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new ub.IfcText(t[4].value):null),3357820518:(e,t)=>new ub.IfcPropertySetDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1482703590:(e,t)=>new ub.IfcPropertyTemplateDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2090586900:(e,t)=>new ub.IfcQuantitySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),3615266464:(e,t)=>new ub.IfcRectangleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new ub.IfcRegularTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new ub.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),1580146022:(e,t)=>new ub.IfcReinforcementBarProperties(e,new ub.IfcAreaMeasure(t[0].value),new ub.IfcLabel(t[1].value),t[2],t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcCountMeasure(t[5].value):null),478536968:(e,t)=>new ub.IfcRelationship(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2943643501:(e,t)=>new ub.IfcResourceApprovalRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1608871552:(e,t)=>new ub.IfcResourceConstraintRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1042787934:(e,t)=>new ub.IfcResourceTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcDuration(t[3].value):null,t[4]?new ub.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcDuration(t[8].value):null,t[9]?new ub.IfcBoolean(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcPositiveRatioMeasure(t[12].value):null,t[13]?new ub.IfcDateTime(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new ub.IfcPositiveRatioMeasure(t[17].value):null),2778083089:(e,t)=>new ub.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value)),2042790032:(e,t)=>new ub.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new ub.IfcSectionReinforcementProperties(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value),t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1509187699:(e,t)=>new ub.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),4124623270:(e,t)=>new ub.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),3692461612:(e,t)=>new ub.IfcSimpleProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null),2609359061:(e,t)=>new ub.IfcSlippageConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new ub.IfcSolidModel(e),1595516126:(e,t)=>new ub.IfcStructuralLoadLinearForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLinearForceMeasure(t[1].value):null,t[2]?new ub.IfcLinearForceMeasure(t[2].value):null,t[3]?new ub.IfcLinearForceMeasure(t[3].value):null,t[4]?new ub.IfcLinearMomentMeasure(t[4].value):null,t[5]?new ub.IfcLinearMomentMeasure(t[5].value):null,t[6]?new ub.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new ub.IfcStructuralLoadPlanarForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcPlanarForceMeasure(t[1].value):null,t[2]?new ub.IfcPlanarForceMeasure(t[2].value):null,t[3]?new ub.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new ub.IfcStructuralLoadSingleDisplacement(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new ub.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new ub.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new ub.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new ub.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new ub.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new ub.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new ub.IfcStructuralLoadSingleForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcTorqueMeasure(t[4].value):null,t[5]?new ub.IfcTorqueMeasure(t[5].value):null,t[6]?new ub.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new ub.IfcStructuralLoadSingleForceWarping(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcTorqueMeasure(t[4].value):null,t[5]?new ub.IfcTorqueMeasure(t[5].value):null,t[6]?new ub.IfcTorqueMeasure(t[6].value):null,t[7]?new ub.IfcWarpingMomentMeasure(t[7].value):null),2233826070:(e,t)=>new ub.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new ub.IfcSurface(e),1878645084:(e,t)=>new ub.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(2,t[7]):null,t[8]),2247615214:(e,t)=>new ub.IfcSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1260650574:(e,t)=>new ub.IfcSweptDiskSolid(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null),1096409881:(e,t)=>new ub.IfcSweptDiskSolidPolygonal(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,t[5]?new ub.IfcPositiveLengthMeasure(t[5].value):null),230924584:(e,t)=>new ub.IfcSweptSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3071757647:(e,t)=>new ub.IfcTShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcNonNegativeLengthMeasure(t[9].value):null,t[10]?new ub.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new ub.IfcPlaneAngleMeasure(t[11].value):null),901063453:(e,t)=>new ub.IfcTessellatedItem(e),4282788508:(e,t)=>new ub.IfcTextLiteral(e,new ub.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new ub.IfcTextLiteralWithExtent(e,new ub.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new ub.IfcBoxAlignment(t[4].value)),1983826977:(e,t)=>new ub.IfcTextStyleFontModel(e,new ub.IfcLabel(t[0].value),t[1].map((e=>new ub.IfcTextFontName(e.value))),t[2]?new ub.IfcFontStyle(t[2].value):null,t[3]?new ub.IfcFontVariant(t[3].value):null,t[4]?new ub.IfcFontWeight(t[4].value):null,tD(2,t[5])),2715220739:(e,t)=>new ub.IfcTrapeziumProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcLengthMeasure(t[6].value)),1628702193:(e,t)=>new ub.IfcTypeObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),3736923433:(e,t)=>new ub.IfcTypeProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2347495698:(e,t)=>new ub.IfcTypeProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null),3698973494:(e,t)=>new ub.IfcTypeResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),427810014:(e,t)=>new ub.IfcUShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcPlaneAngleMeasure(t[9].value):null),1417489154:(e,t)=>new ub.IfcVector(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new ub.IfcVertexLoop(e,new zb(t[0].value)),1299126871:(e,t)=>new ub.IfcWindowStyle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],new ub.IfcBoolean(t[10].value),new ub.IfcBoolean(t[11].value)),2543172580:(e,t)=>new ub.IfcZShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null),3406155212:(e,t)=>new ub.IfcAdvancedFace(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new ub.IfcBoolean(t[2].value)),669184980:(e,t)=>new ub.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),3207858831:(e,t)=>new ub.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,new ub.IfcPositiveLengthMeasure(t[8].value),t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcNonNegativeLengthMeasure(t[10].value):null,t[11]?new ub.IfcNonNegativeLengthMeasure(t[11].value):null,t[12]?new ub.IfcPlaneAngleMeasure(t[12].value):null,t[13]?new ub.IfcNonNegativeLengthMeasure(t[13].value):null,t[14]?new ub.IfcPlaneAngleMeasure(t[14].value):null),4261334040:(e,t)=>new ub.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new ub.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new ub.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new ub.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new ub.IfcBoundedSurface(e),2581212453:(e,t)=>new ub.IfcBoundingBox(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new ub.IfcBoxedHalfSpace(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value),new zb(t[2].value)),2898889636:(e,t)=>new ub.IfcCShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null),1123145078:(e,t)=>new ub.IfcCartesianPoint(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),574549367:(e,t)=>new ub.IfcCartesianPointList(e),1675464909:(e,t)=>new ub.IfcCartesianPointList2D(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),2059837836:(e,t)=>new ub.IfcCartesianPointList3D(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),59481748:(e,t)=>new ub.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null),3749851601:(e,t)=>new ub.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null),3486308946:(e,t)=>new ub.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new ub.IfcReal(t[4].value):null),3331915920:(e,t)=>new ub.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new ub.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcReal(t[5].value):null,t[6]?new ub.IfcReal(t[6].value):null),1383045692:(e,t)=>new ub.IfcCircleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new ub.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),776857604:(e,t)=>new ub.IfcColourRgb(e,t[0]?new ub.IfcLabel(t[0].value):null,new ub.IfcNormalisedRatioMeasure(t[1].value),new ub.IfcNormalisedRatioMeasure(t[2].value),new ub.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new ub.IfcComplexProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),2485617015:(e,t)=>new ub.IfcCompositeCurveSegment(e,t[0],new ub.IfcBoolean(t[1].value),new zb(t[2].value)),2574617495:(e,t)=>new ub.IfcConstructionResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null),3419103109:(e,t)=>new ub.IfcContext(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),1815067380:(e,t)=>new ub.IfcCrewResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2506170314:(e,t)=>new ub.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new ub.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new ub.IfcCurve(e),2827736869:(e,t)=>new ub.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2629017746:(e,t)=>new ub.IfcCurveBoundedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new ub.IfcBoolean(t[2].value)),32440307:(e,t)=>new ub.IfcDirection(e,t[0].map((e=>new ub.IfcReal(e.value)))),526551008:(e,t)=>new ub.IfcDoorStyle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],new ub.IfcBoolean(t[10].value),new ub.IfcBoolean(t[11].value)),1472233963:(e,t)=>new ub.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new ub.IfcElementQuantity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new ub.IfcElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2777663545:(e,t)=>new ub.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new ub.IfcEllipseProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),4024345920:(e,t)=>new ub.IfcEventType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcLabel(t[11].value):null),477187591:(e,t)=>new ub.IfcExtrudedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),2804161546:(e,t)=>new ub.IfcExtrudedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value),new zb(t[4].value)),2047409740:(e,t)=>new ub.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new ub.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new ub.IfcPlaneAngleMeasure(t[4].value)),315944413:(e,t)=>new ub.IfcFillAreaStyleTiles(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new ub.IfcPositiveRatioMeasure(t[2].value)),2652556860:(e,t)=>new ub.IfcFixedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,new zb(t[5].value)),4238390223:(e,t)=>new ub.IfcFurnishingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1268542332:(e,t)=>new ub.IfcFurnitureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]),4095422895:(e,t)=>new ub.IfcGeographicElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new ub.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new ub.IfcIShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcPlaneAngleMeasure(t[9].value):null),178912537:(e,t)=>new ub.IfcIndexedPolygonalFace(e,t[0].map((e=>new ub.IfcPositiveInteger(e.value)))),2294589976:(e,t)=>new ub.IfcIndexedPolygonalFaceWithVoids(e,t[0].map((e=>new ub.IfcPositiveInteger(e.value))),t[1].map((e=>new ub.IfcPositiveInteger(e.value)))),572779678:(e,t)=>new ub.IfcLShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,new ub.IfcPositiveLengthMeasure(t[5].value),t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcPlaneAngleMeasure(t[8].value):null),428585644:(e,t)=>new ub.IfcLaborResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1281925730:(e,t)=>new ub.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new ub.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new ub.IfcObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),3388369263:(e,t)=>new ub.IfcOffsetCurve2D(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value),new ub.IfcLogical(t[2].value)),3505215534:(e,t)=>new ub.IfcOffsetCurve3D(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value),new ub.IfcLogical(t[2].value),new zb(t[3].value)),1682466193:(e,t)=>new ub.IfcPcurve(e,new zb(t[0].value),new zb(t[1].value)),603570806:(e,t)=>new ub.IfcPlanarBox(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new ub.IfcPlane(e,new zb(t[0].value)),759155922:(e,t)=>new ub.IfcPreDefinedColour(e,new ub.IfcLabel(t[0].value)),2559016684:(e,t)=>new ub.IfcPreDefinedCurveFont(e,new ub.IfcLabel(t[0].value)),3967405729:(e,t)=>new ub.IfcPreDefinedPropertySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),569719735:(e,t)=>new ub.IfcProcedureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2945172077:(e,t)=>new ub.IfcProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null),4208778838:(e,t)=>new ub.IfcProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new ub.IfcProject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),653396225:(e,t)=>new ub.IfcProjectLibrary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),871118103:(e,t)=>new ub.IfcPropertyBoundedValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?new zb(t[4].value):null,t[5]?tD(2,t[5]):null),4166981789:(e,t)=>new ub.IfcPropertyEnumeratedValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new ub.IfcPropertyListValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?new zb(t[3].value):null),941946838:(e,t)=>new ub.IfcPropertyReferenceValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null),1451395588:(e,t)=>new ub.IfcPropertySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),492091185:(e,t)=>new ub.IfcPropertySetTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5]?new ub.IfcIdentifier(t[5].value):null,t[6].map((e=>new zb(e.value)))),3650150729:(e,t)=>new ub.IfcPropertySingleValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new ub.IfcPropertyTableValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?t[3].map((e=>tD(2,e))):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3521284610:(e,t)=>new ub.IfcPropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),3219374653:(e,t)=>new ub.IfcProxy(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null),2770003689:(e,t)=>new ub.IfcRectangleHollowProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null),2798486643:(e,t)=>new ub.IfcRectangularPyramid(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new ub.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value),new ub.IfcParameterValue(t[2].value),new ub.IfcParameterValue(t[3].value),new ub.IfcParameterValue(t[4].value),new ub.IfcBoolean(t[5].value),new ub.IfcBoolean(t[6].value)),3765753017:(e,t)=>new ub.IfcReinforcementDefinitionProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),3939117080:(e,t)=>new ub.IfcRelAssigns(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new ub.IfcRelAssignsToActor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new ub.IfcRelAssignsToControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new ub.IfcRelAssignsToGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1027710054:(e,t)=>new ub.IfcRelAssignsToGroupByFactor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),new ub.IfcRatioMeasure(t[7].value)),4278684876:(e,t)=>new ub.IfcRelAssignsToProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new ub.IfcRelAssignsToProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new ub.IfcRelAssignsToResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new ub.IfcRelAssociates(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4095574036:(e,t)=>new ub.IfcRelAssociatesApproval(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new ub.IfcRelAssociatesClassification(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new ub.IfcRelAssociatesConstraint(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]?new ub.IfcLabel(t[5].value):null,new zb(t[6].value)),982818633:(e,t)=>new ub.IfcRelAssociatesDocument(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new ub.IfcRelAssociatesLibrary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new ub.IfcRelAssociatesMaterial(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),826625072:(e,t)=>new ub.IfcRelConnects(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1204542856:(e,t)=>new ub.IfcRelConnectsElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new ub.IfcRelConnectsPathElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9],t[10]),4201705270:(e,t)=>new ub.IfcRelConnectsPortToElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new ub.IfcRelConnectsPorts(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new ub.IfcRelConnectsStructuralActivity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new ub.IfcRelConnectsStructuralMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new ub.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new ub.IfcRelConnectsWithEccentricity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new ub.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new ub.IfcRelConnectsWithRealizingElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new ub.IfcLabel(t[8].value):null),3242617779:(e,t)=>new ub.IfcRelContainedInSpatialStructure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new ub.IfcRelCoversBldgElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new ub.IfcRelCoversSpaces(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2565941209:(e,t)=>new ub.IfcRelDeclares(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new ub.IfcRelDecomposes(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),693640335:(e,t)=>new ub.IfcRelDefines(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1462361463:(e,t)=>new ub.IfcRelDefinesByObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4186316022:(e,t)=>new ub.IfcRelDefinesByProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),307848117:(e,t)=>new ub.IfcRelDefinesByTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new ub.IfcRelDefinesByType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new ub.IfcRelFillsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new ub.IfcRelFlowControlElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),427948657:(e,t)=>new ub.IfcRelInterferesElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8].value),3268803585:(e,t)=>new ub.IfcRelNests(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),750771296:(e,t)=>new ub.IfcRelProjectsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new ub.IfcRelReferencedInSpatialStructure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4122056220:(e,t)=>new ub.IfcRelSequence(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null),366585022:(e,t)=>new ub.IfcRelServicesBuildings(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new ub.IfcRelSpaceBoundary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]),3523091289:(e,t)=>new ub.IfcRelSpaceBoundary1stLevel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null),1521410863:(e,t)=>new ub.IfcRelSpaceBoundary2ndLevel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),1401173127:(e,t)=>new ub.IfcRelVoidsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),816062949:(e,t)=>new ub.IfcReparametrisedCompositeCurveSegment(e,t[0],new ub.IfcBoolean(t[1].value),new zb(t[2].value),new ub.IfcParameterValue(t[3].value)),2914609552:(e,t)=>new ub.IfcResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null),1856042241:(e,t)=>new ub.IfcRevolvedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPlaneAngleMeasure(t[3].value)),3243963512:(e,t)=>new ub.IfcRevolvedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPlaneAngleMeasure(t[3].value),new zb(t[4].value)),4158566097:(e,t)=>new ub.IfcRightCircularCone(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new ub.IfcRightCircularCylinder(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),3663146110:(e,t)=>new ub.IfcSimplePropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new ub.IfcLabel(t[10].value):null,t[11]),1412071761:(e,t)=>new ub.IfcSpatialElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null),710998568:(e,t)=>new ub.IfcSpatialElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2706606064:(e,t)=>new ub.IfcSpatialStructureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new ub.IfcSpatialStructureElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),463610769:(e,t)=>new ub.IfcSpatialZone(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),2481509218:(e,t)=>new ub.IfcSpatialZoneType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),451544542:(e,t)=>new ub.IfcSphere(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),4015995234:(e,t)=>new ub.IfcSphericalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3544373492:(e,t)=>new ub.IfcStructuralActivity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new ub.IfcStructuralItem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new ub.IfcStructuralMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new ub.IfcStructuralReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new ub.IfcStructuralSurfaceMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new ub.IfcStructuralSurfaceMemberVarying(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null),603775116:(e,t)=>new ub.IfcStructuralSurfaceReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),4095615324:(e,t)=>new ub.IfcSubContractResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),699246055:(e,t)=>new ub.IfcSurfaceCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2028607225:(e,t)=>new ub.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,new zb(t[5].value)),2809605785:(e,t)=>new ub.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new ub.IfcSurfaceOfRevolution(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),1580310250:(e,t)=>new ub.IfcSystemFurnitureElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3473067441:(e,t)=>new ub.IfcTask(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,new ub.IfcBoolean(t[9].value),t[10]?new ub.IfcInteger(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]),3206491090:(e,t)=>new ub.IfcTaskType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),2387106220:(e,t)=>new ub.IfcTessellatedFaceSet(e,new zb(t[0].value)),1935646853:(e,t)=>new ub.IfcToroidalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),2097647324:(e,t)=>new ub.IfcTransportElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2916149573:(e,t)=>new ub.IfcTriangulatedFaceSet(e,new zb(t[0].value),t[1]?t[1].map((e=>new ub.IfcParameterValue(e.value))):null,t[2]?new ub.IfcBoolean(t[2].value):null,t[3].map((e=>new ub.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new ub.IfcPositiveInteger(e.value))):null),336235671:(e,t)=>new ub.IfcWindowLiningProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new ub.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new ub.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new ub.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new ub.IfcLengthMeasure(t[13].value):null,t[14]?new ub.IfcLengthMeasure(t[14].value):null,t[15]?new ub.IfcLengthMeasure(t[15].value):null),512836454:(e,t)=>new ub.IfcWindowPanelProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5],t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),2296667514:(e,t)=>new ub.IfcActor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,new zb(t[5].value)),1635779807:(e,t)=>new ub.IfcAdvancedBrep(e,new zb(t[0].value)),2603310189:(e,t)=>new ub.IfcAdvancedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1674181508:(e,t)=>new ub.IfcAnnotation(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2887950389:(e,t)=>new ub.IfcBSplineSurface(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value)),167062518:(e,t)=>new ub.IfcBSplineSurfaceWithKnots(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9].map((e=>new ub.IfcParameterValue(e.value))),t[10].map((e=>new ub.IfcParameterValue(e.value))),t[11]),1334484129:(e,t)=>new ub.IfcBlock(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new ub.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new ub.IfcBoundedCurve(e),4031249490:(e,t)=>new ub.IfcBuilding(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcLengthMeasure(t[9].value):null,t[10]?new ub.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),1950629157:(e,t)=>new ub.IfcBuildingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3124254112:(e,t)=>new ub.IfcBuildingStorey(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcLengthMeasure(t[9].value):null),2197970202:(e,t)=>new ub.IfcChimneyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2937912522:(e,t)=>new ub.IfcCircleHollowProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),3893394355:(e,t)=>new ub.IfcCivilElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),300633059:(e,t)=>new ub.IfcColumnType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3875453745:(e,t)=>new ub.IfcComplexPropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?t[6].map((e=>new zb(e.value))):null),3732776249:(e,t)=>new ub.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),15328376:(e,t)=>new ub.IfcCompositeCurveOnSurface(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),2510884976:(e,t)=>new ub.IfcConic(e,new zb(t[0].value)),2185764099:(e,t)=>new ub.IfcConstructionEquipmentResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),4105962743:(e,t)=>new ub.IfcConstructionMaterialResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1525564444:(e,t)=>new ub.IfcConstructionProductResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2559216714:(e,t)=>new ub.IfcConstructionResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),3293443760:(e,t)=>new ub.IfcControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null),3895139033:(e,t)=>new ub.IfcCostItem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),1419761937:(e,t)=>new ub.IfcCostSchedule(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null),1916426348:(e,t)=>new ub.IfcCoveringType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new ub.IfcCrewResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1457835157:(e,t)=>new ub.IfcCurtainWallType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1213902940:(e,t)=>new ub.IfcCylindricalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3256556792:(e,t)=>new ub.IfcDistributionElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3849074793:(e,t)=>new ub.IfcDistributionFlowElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2963535650:(e,t)=>new ub.IfcDoorLiningProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcLengthMeasure(t[9].value):null,t[10]?new ub.IfcLengthMeasure(t[10].value):null,t[11]?new ub.IfcLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?new ub.IfcLengthMeasure(t[15].value):null,t[16]?new ub.IfcLengthMeasure(t[16].value):null),1714330368:(e,t)=>new ub.IfcDoorPanelProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new ub.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),2323601079:(e,t)=>new ub.IfcDoorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcBoolean(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null),445594917:(e,t)=>new ub.IfcDraughtingPreDefinedColour(e,new ub.IfcLabel(t[0].value)),4006246654:(e,t)=>new ub.IfcDraughtingPreDefinedCurveFont(e,new ub.IfcLabel(t[0].value)),1758889154:(e,t)=>new ub.IfcElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new ub.IfcElementAssembly(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8],t[9]),2397081782:(e,t)=>new ub.IfcElementAssemblyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1623761950:(e,t)=>new ub.IfcElementComponent(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new ub.IfcElementComponentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1704287377:(e,t)=>new ub.IfcEllipse(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new ub.IfcEnergyConversionDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),132023988:(e,t)=>new ub.IfcEngineType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3174744832:(e,t)=>new ub.IfcEvaporativeCoolerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new ub.IfcEvaporatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4148101412:(e,t)=>new ub.IfcEvent(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7],t[8],t[9]?new ub.IfcLabel(t[9].value):null,t[10]?new zb(t[10].value):null),2853485674:(e,t)=>new ub.IfcExternalSpatialStructureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null),807026263:(e,t)=>new ub.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new ub.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),647756555:(e,t)=>new ub.IfcFastener(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2489546625:(e,t)=>new ub.IfcFastenerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2827207264:(e,t)=>new ub.IfcFeatureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new ub.IfcFeatureElementAddition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new ub.IfcFeatureElementSubtraction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new ub.IfcFlowControllerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3198132628:(e,t)=>new ub.IfcFlowFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3815607619:(e,t)=>new ub.IfcFlowMeterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new ub.IfcFlowMovingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1834744321:(e,t)=>new ub.IfcFlowSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1339347760:(e,t)=>new ub.IfcFlowStorageDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2297155007:(e,t)=>new ub.IfcFlowTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3009222698:(e,t)=>new ub.IfcFlowTreatmentDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1893162501:(e,t)=>new ub.IfcFootingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),263784265:(e,t)=>new ub.IfcFurnishingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),1509553395:(e,t)=>new ub.IfcFurniture(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3493046030:(e,t)=>new ub.IfcGeographicElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3009204131:(e,t)=>new ub.IfcGrid(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null,t[10]),2706460486:(e,t)=>new ub.IfcGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),1251058090:(e,t)=>new ub.IfcHeatExchangerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new ub.IfcHumidifierType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2571569899:(e,t)=>new ub.IfcIndexedPolyCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>tD(2,e))):null,t[2]?new ub.IfcBoolean(t[2].value):null),3946677679:(e,t)=>new ub.IfcInterceptorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3113134337:(e,t)=>new ub.IfcIntersectionCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2391368822:(e,t)=>new ub.IfcInventory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcDate(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new ub.IfcJunctionBoxType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3827777499:(e,t)=>new ub.IfcLaborResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1051575348:(e,t)=>new ub.IfcLampType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new ub.IfcLightFixtureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),377706215:(e,t)=>new ub.IfcMechanicalFastener(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]),2108223431:(e,t)=>new ub.IfcMechanicalFastenerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null),1114901282:(e,t)=>new ub.IfcMedicalDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3181161470:(e,t)=>new ub.IfcMemberType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new ub.IfcMotorConnectionType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4143007308:(e,t)=>new ub.IfcOccupant(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new ub.IfcOpeningElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3079942009:(e,t)=>new ub.IfcOpeningStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2837617999:(e,t)=>new ub.IfcOutletType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new ub.IfcPerformanceHistory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcLabel(t[6].value),t[7]),3566463478:(e,t)=>new ub.IfcPermeableCoveringProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5],t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),3327091369:(e,t)=>new ub.IfcPermit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),1158309216:(e,t)=>new ub.IfcPileType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),804291784:(e,t)=>new ub.IfcPipeFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new ub.IfcPipeSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new ub.IfcPlateType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2839578677:(e,t)=>new ub.IfcPolygonalFaceSet(e,new zb(t[0].value),t[1]?new ub.IfcBoolean(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?t[3].map((e=>new ub.IfcPositiveInteger(e.value))):null),3724593414:(e,t)=>new ub.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new ub.IfcPort(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new ub.IfcProcedure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]),2904328755:(e,t)=>new ub.IfcProjectOrder(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),3651124850:(e,t)=>new ub.IfcProjectionElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1842657554:(e,t)=>new ub.IfcProtectiveDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new ub.IfcPumpType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2893384427:(e,t)=>new ub.IfcRailingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2324767716:(e,t)=>new ub.IfcRampFlightType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1469900589:(e,t)=>new ub.IfcRampType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),683857671:(e,t)=>new ub.IfcRationalBSplineSurfaceWithKnots(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9].map((e=>new ub.IfcParameterValue(e.value))),t[10].map((e=>new ub.IfcParameterValue(e.value))),t[11],t[12].map((e=>new ub.IfcReal(e.value)))),3027567501:(e,t)=>new ub.IfcReinforcingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),964333572:(e,t)=>new ub.IfcReinforcingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2320036040:(e,t)=>new ub.IfcReinforcingMesh(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcAreaMeasure(t[13].value):null,t[14]?new ub.IfcAreaMeasure(t[14].value):null,t[15]?new ub.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null,t[17]),2310774935:(e,t)=>new ub.IfcReinforcingMeshType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new ub.IfcAreaMeasure(t[14].value):null,t[15]?new ub.IfcAreaMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null,t[17]?new ub.IfcPositiveLengthMeasure(t[17].value):null,t[18]?new ub.IfcLabel(t[18].value):null,t[19]?t[19].map((e=>tD(2,e))):null),160246688:(e,t)=>new ub.IfcRelAggregates(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2781568857:(e,t)=>new ub.IfcRoofType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1768891740:(e,t)=>new ub.IfcSanitaryTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2157484638:(e,t)=>new ub.IfcSeamCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),4074543187:(e,t)=>new ub.IfcShadingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4097777520:(e,t)=>new ub.IfcSite(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new ub.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new ub.IfcLengthMeasure(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new ub.IfcSlabType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1072016465:(e,t)=>new ub.IfcSolarDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new ub.IfcSpace(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new ub.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new ub.IfcSpaceHeaterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3812236995:(e,t)=>new ub.IfcSpaceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),3112655638:(e,t)=>new ub.IfcStackTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new ub.IfcStairFlightType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),338393293:(e,t)=>new ub.IfcStairType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new ub.IfcStructuralAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null),1179482911:(e,t)=>new ub.IfcStructuralConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1004757350:(e,t)=>new ub.IfcStructuralCurveAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),4243806635:(e,t)=>new ub.IfcStructuralCurveConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value)),214636428:(e,t)=>new ub.IfcStructuralCurveMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2445595289:(e,t)=>new ub.IfcStructuralCurveMemberVarying(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2757150158:(e,t)=>new ub.IfcStructuralCurveReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),1807405624:(e,t)=>new ub.IfcStructuralLinearAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1252848954:(e,t)=>new ub.IfcStructuralLoadGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new ub.IfcRatioMeasure(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null),2082059205:(e,t)=>new ub.IfcStructuralPointAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null),734778138:(e,t)=>new ub.IfcStructuralPointConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),1235345126:(e,t)=>new ub.IfcStructuralPointReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new ub.IfcStructuralResultGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,new ub.IfcBoolean(t[7].value)),3657597509:(e,t)=>new ub.IfcStructuralSurfaceAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1975003073:(e,t)=>new ub.IfcStructuralSurfaceConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new ub.IfcSubContractResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),3101698114:(e,t)=>new ub.IfcSurfaceFeature(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2315554128:(e,t)=>new ub.IfcSwitchingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new ub.IfcSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),413509423:(e,t)=>new ub.IfcSystemFurnitureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),5716631:(e,t)=>new ub.IfcTankType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3824725483:(e,t)=>new ub.IfcTendon(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcForceMeasure(t[12].value):null,t[13]?new ub.IfcPressureMeasure(t[13].value):null,t[14]?new ub.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new ub.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new ub.IfcTendonAnchor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3081323446:(e,t)=>new ub.IfcTendonAnchorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2415094496:(e,t)=>new ub.IfcTendonType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null),1692211062:(e,t)=>new ub.IfcTransformerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1620046519:(e,t)=>new ub.IfcTransportElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3593883385:(e,t)=>new ub.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),new ub.IfcBoolean(t[3].value),t[4]),1600972822:(e,t)=>new ub.IfcTubeBundleType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new ub.IfcUnitaryEquipmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new ub.IfcValveType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2391383451:(e,t)=>new ub.IfcVibrationIsolator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3313531582:(e,t)=>new ub.IfcVibrationIsolatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new ub.IfcVirtualElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),926996030:(e,t)=>new ub.IfcVoidingFeature(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1898987631:(e,t)=>new ub.IfcWallType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new ub.IfcWasteTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4009809668:(e,t)=>new ub.IfcWindowType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcBoolean(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null),4088093105:(e,t)=>new ub.IfcWorkCalendar(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]),1028945134:(e,t)=>new ub.IfcWorkControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null),4218914973:(e,t)=>new ub.IfcWorkPlan(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null,t[13]),3342526732:(e,t)=>new ub.IfcWorkSchedule(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null,t[13]),1033361043:(e,t)=>new ub.IfcZone(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),3821786052:(e,t)=>new ub.IfcActionRequest(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),1411407467:(e,t)=>new ub.IfcAirTerminalBoxType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new ub.IfcAirTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new ub.IfcAirToAirHeatRecoveryType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3460190687:(e,t)=>new ub.IfcAsset(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new ub.IfcDate(t[12].value):null,t[13]?new zb(t[13].value):null),1532957894:(e,t)=>new ub.IfcAudioVisualApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1967976161:(e,t)=>new ub.IfcBSplineCurve(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value)),2461110595:(e,t)=>new ub.IfcBSplineCurveWithKnots(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value),t[5].map((e=>new ub.IfcInteger(e.value))),t[6].map((e=>new ub.IfcParameterValue(e.value))),t[7]),819618141:(e,t)=>new ub.IfcBeamType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),231477066:(e,t)=>new ub.IfcBoilerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1136057603:(e,t)=>new ub.IfcBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),3299480353:(e,t)=>new ub.IfcBuildingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2979338954:(e,t)=>new ub.IfcBuildingElementPart(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),39481116:(e,t)=>new ub.IfcBuildingElementPartType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1095909175:(e,t)=>new ub.IfcBuildingElementProxy(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1909888760:(e,t)=>new ub.IfcBuildingElementProxyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1177604601:(e,t)=>new ub.IfcBuildingSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new ub.IfcLabel(t[6].value):null),2188180465:(e,t)=>new ub.IfcBurnerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new ub.IfcCableCarrierFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new ub.IfcCableCarrierSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2674252688:(e,t)=>new ub.IfcCableFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new ub.IfcCableSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new ub.IfcChillerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3296154744:(e,t)=>new ub.IfcChimney(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2611217952:(e,t)=>new ub.IfcCircle(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),1677625105:(e,t)=>new ub.IfcCivilElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2301859152:(e,t)=>new ub.IfcCoilType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new ub.IfcColumn(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),905975707:(e,t)=>new ub.IfcColumnStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),400855858:(e,t)=>new ub.IfcCommunicationsApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3850581409:(e,t)=>new ub.IfcCompressorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new ub.IfcCondenserType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3898045240:(e,t)=>new ub.IfcConstructionEquipmentResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1060000209:(e,t)=>new ub.IfcConstructionMaterialResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),488727124:(e,t)=>new ub.IfcConstructionProductResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),335055490:(e,t)=>new ub.IfcCooledBeamType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new ub.IfcCoolingTowerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1973544240:(e,t)=>new ub.IfcCovering(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new ub.IfcCurtainWall(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3961806047:(e,t)=>new ub.IfcDamperType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1335981549:(e,t)=>new ub.IfcDiscreteAccessory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2635815018:(e,t)=>new ub.IfcDiscreteAccessoryType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1599208980:(e,t)=>new ub.IfcDistributionChamberElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new ub.IfcDistributionControlElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1945004755:(e,t)=>new ub.IfcDistributionElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new ub.IfcDistributionFlowElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new ub.IfcDistributionPort(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8],t[9]),3205830791:(e,t)=>new ub.IfcDistributionSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]),395920057:(e,t)=>new ub.IfcDoor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),3242481149:(e,t)=>new ub.IfcDoorStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),869906466:(e,t)=>new ub.IfcDuctFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new ub.IfcDuctSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new ub.IfcDuctSilencerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),663422040:(e,t)=>new ub.IfcElectricApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2417008758:(e,t)=>new ub.IfcElectricDistributionBoardType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new ub.IfcElectricFlowStorageDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new ub.IfcElectricGeneratorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new ub.IfcElectricMotorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new ub.IfcElectricTimeControlType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1658829314:(e,t)=>new ub.IfcEnergyConversionDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2814081492:(e,t)=>new ub.IfcEngine(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3747195512:(e,t)=>new ub.IfcEvaporativeCooler(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),484807127:(e,t)=>new ub.IfcEvaporator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1209101575:(e,t)=>new ub.IfcExternalSpatialElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),346874300:(e,t)=>new ub.IfcFanType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new ub.IfcFilterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new ub.IfcFireSuppressionTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new ub.IfcFlowController(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new ub.IfcFlowFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new ub.IfcFlowInstrumentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2188021234:(e,t)=>new ub.IfcFlowMeter(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3132237377:(e,t)=>new ub.IfcFlowMovingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new ub.IfcFlowSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new ub.IfcFlowStorageDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new ub.IfcFlowTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new ub.IfcFlowTreatmentDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new ub.IfcFooting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3319311131:(e,t)=>new ub.IfcHeatExchanger(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2068733104:(e,t)=>new ub.IfcHumidifier(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4175244083:(e,t)=>new ub.IfcInterceptor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2176052936:(e,t)=>new ub.IfcJunctionBox(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),76236018:(e,t)=>new ub.IfcLamp(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),629592764:(e,t)=>new ub.IfcLightFixture(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1437502449:(e,t)=>new ub.IfcMedicalDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new ub.IfcMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1911478936:(e,t)=>new ub.IfcMemberStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2474470126:(e,t)=>new ub.IfcMotorConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),144952367:(e,t)=>new ub.IfcOuterBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),3694346114:(e,t)=>new ub.IfcOutlet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1687234759:(e,t)=>new ub.IfcPile(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8],t[9]),310824031:(e,t)=>new ub.IfcPipeFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3612865200:(e,t)=>new ub.IfcPipeSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3171933400:(e,t)=>new ub.IfcPlate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1156407060:(e,t)=>new ub.IfcPlateStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),738039164:(e,t)=>new ub.IfcProtectiveDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),655969474:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnitType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),90941305:(e,t)=>new ub.IfcPump(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2262370178:(e,t)=>new ub.IfcRailing(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new ub.IfcRamp(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new ub.IfcRampFlight(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1232101972:(e,t)=>new ub.IfcRationalBSplineCurveWithKnots(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value),t[5].map((e=>new ub.IfcInteger(e.value))),t[6].map((e=>new ub.IfcParameterValue(e.value))),t[7],t[8].map((e=>new ub.IfcReal(e.value)))),979691226:(e,t)=>new ub.IfcReinforcingBar(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcAreaMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13]),2572171363:(e,t)=>new ub.IfcReinforcingBarType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13],t[14]?new ub.IfcLabel(t[14].value):null,t[15]?t[15].map((e=>tD(2,e))):null),2016517767:(e,t)=>new ub.IfcRoof(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3053780830:(e,t)=>new ub.IfcSanitaryTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1783015770:(e,t)=>new ub.IfcSensorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1329646415:(e,t)=>new ub.IfcShadingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1529196076:(e,t)=>new ub.IfcSlab(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3127900445:(e,t)=>new ub.IfcSlabElementedCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3027962421:(e,t)=>new ub.IfcSlabStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3420628829:(e,t)=>new ub.IfcSolarDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1999602285:(e,t)=>new ub.IfcSpaceHeater(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1404847402:(e,t)=>new ub.IfcStackTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new ub.IfcStair(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new ub.IfcStairFlight(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcInteger(t[8].value):null,t[9]?new ub.IfcInteger(t[9].value):null,t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]),2515109513:(e,t)=>new ub.IfcStructuralAnalysisModel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),385403989:(e,t)=>new ub.IfcStructuralLoadCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new ub.IfcRatioMeasure(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null,t[10]?t[10].map((e=>new ub.IfcRatioMeasure(e.value))):null),1621171031:(e,t)=>new ub.IfcStructuralPlanarAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1162798199:(e,t)=>new ub.IfcSwitchingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),812556717:(e,t)=>new ub.IfcTank(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3825984169:(e,t)=>new ub.IfcTransformer(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3026737570:(e,t)=>new ub.IfcTubeBundle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3179687236:(e,t)=>new ub.IfcUnitaryControlElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4292641817:(e,t)=>new ub.IfcUnitaryEquipment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4207607924:(e,t)=>new ub.IfcValve(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2391406946:(e,t)=>new ub.IfcWall(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4156078855:(e,t)=>new ub.IfcWallElementedCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3512223829:(e,t)=>new ub.IfcWallStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4237592921:(e,t)=>new ub.IfcWasteTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3304561284:(e,t)=>new ub.IfcWindow(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),486154966:(e,t)=>new ub.IfcWindowStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),2874132201:(e,t)=>new ub.IfcActuatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1634111441:(e,t)=>new ub.IfcAirTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),177149247:(e,t)=>new ub.IfcAirTerminalBox(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2056796094:(e,t)=>new ub.IfcAirToAirHeatRecovery(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3001207471:(e,t)=>new ub.IfcAlarmType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),277319702:(e,t)=>new ub.IfcAudioVisualAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),753842376:(e,t)=>new ub.IfcBeam(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2906023776:(e,t)=>new ub.IfcBeamStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),32344328:(e,t)=>new ub.IfcBoiler(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2938176219:(e,t)=>new ub.IfcBurner(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),635142910:(e,t)=>new ub.IfcCableCarrierFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3758799889:(e,t)=>new ub.IfcCableCarrierSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1051757585:(e,t)=>new ub.IfcCableFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4217484030:(e,t)=>new ub.IfcCableSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3902619387:(e,t)=>new ub.IfcChiller(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),639361253:(e,t)=>new ub.IfcCoil(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3221913625:(e,t)=>new ub.IfcCommunicationsAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3571504051:(e,t)=>new ub.IfcCompressor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2272882330:(e,t)=>new ub.IfcCondenser(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),578613899:(e,t)=>new ub.IfcControllerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4136498852:(e,t)=>new ub.IfcCooledBeam(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3640358203:(e,t)=>new ub.IfcCoolingTower(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4074379575:(e,t)=>new ub.IfcDamper(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1052013943:(e,t)=>new ub.IfcDistributionChamberElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),562808652:(e,t)=>new ub.IfcDistributionCircuit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]),1062813311:(e,t)=>new ub.IfcDistributionControlElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),342316401:(e,t)=>new ub.IfcDuctFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3518393246:(e,t)=>new ub.IfcDuctSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1360408905:(e,t)=>new ub.IfcDuctSilencer(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1904799276:(e,t)=>new ub.IfcElectricAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),862014818:(e,t)=>new ub.IfcElectricDistributionBoard(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3310460725:(e,t)=>new ub.IfcElectricFlowStorageDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),264262732:(e,t)=>new ub.IfcElectricGenerator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),402227799:(e,t)=>new ub.IfcElectricMotor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1003880860:(e,t)=>new ub.IfcElectricTimeControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3415622556:(e,t)=>new ub.IfcFan(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),819412036:(e,t)=>new ub.IfcFilter(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1426591983:(e,t)=>new ub.IfcFireSuppressionTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),182646315:(e,t)=>new ub.IfcFlowInstrument(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2295281155:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4086658281:(e,t)=>new ub.IfcSensor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),630975310:(e,t)=>new ub.IfcUnitaryControlElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4288193352:(e,t)=>new ub.IfcActuator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3087945054:(e,t)=>new ub.IfcAlarm(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),25142252:(e,t)=>new ub.IfcController(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8])},qb[2]={618182010:[912023232,3355820592],411424972:[602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],2859738748:[1981873012,775493141,2732653382,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],1785450214:[3057273783],1466758467:[3843373140],4294318154:[1154170062,747523909,2655187982],3200245327:[3732053477,647927063,3452421091,3548104201,1040185647,2242383968],760658860:[2852063980,3708119e3,1838606355,164193824,552965576,2235152071,3303938423,1847252529,248100487],248100487:[1847252529],2235152071:[552965576],1507914824:[3404854881,3079605661,1303795690],1918398963:[2713554722,2889183280,3050246964,448429030],3701648758:[2624227202,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,931644368,2093928680,2044713172],677532197:[4006246654,2559016684,445594917,759155922,1983826977,1775413392,3727388367,3570813810,3510044353,2367409068,1105321065,776857604,3264961684,3285139300,3611470254,1210645708,2133299955,1437953363,2552916305,1742049831,280115917,1640371178,2636378356,597895409,3905492369,616511568,626085974,1351298697,1878645084,846575682,1607154358,3303107099],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,2998442950,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],986844984:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612,2598011224,4165799628,2042790032,1580146022,3778827333,2802850158,3265635763,297599258,3710013099],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,816062949,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,2916149573,2387106220,2294589976,178912537,901063453,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,3958052878],2439245199:[1608871552,2943643501,148025276,1411181986,853536259,1437805879,770865208,539742890,3869604511],2341007311:[781010003,307848117,4186316022,1462361463,693640335,160246688,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080,478536968,3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518,1680319473,Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433,1628702193,219451334],1054537805:[1042787934,1585845231,211053100,1236880293,2771591690,1549132990],3982875396:[1735638870,4240577450],2273995522:[2609359061,4219587988],2162789131:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697,609421318,3478079324],609421318:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],846575682:[1878645084],626085974:[597895409,3905492369,616511568],1549132990:[2771591690],280115917:[2133299955,1437953363,2552916305,1742049831],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],3798115385:[2705031697],1310608509:[3150382593],3264961684:[776857604],370225590:[2205249479,2665983363],2889183280:[2713554722],3632507154:[2998442950],3900360178:[2233826070,1029017970,476780140],297599258:[2802850158,3265635763],2556980723:[3406155212,3008276851],1809719519:[803316827],3008276851:[3406155212],3448662350:[4142052618],2453401579:[315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,816062949,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,2916149573,2387106220,2294589976,178912537,901063453,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1437953363:[2133299955],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],3079605661:[3404854881],219451334:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433,1628702193],2529465313:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103],3727388367:[4006246654,2559016684,445594917,759155922,1983826977,1775413392],3778827333:[4165799628,2042790032,1580146022],1775413392:[1983826977],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1680319473:[3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518],3357820518:[1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900],1482703590:[3875453745,3663146110,3521284610,492091185],2090586900:[1883228015],3615266464:[2770003689,2778083089],478536968:[781010003,307848117,4186316022,1462361463,693640335,160246688,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],723233188:[3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214],2473145415:[1973038258],1597423693:[1190533807],2513912981:[1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[2028607225,3243963512,1856042241,2652556860,2804161546,477187591],1260650574:[1096409881],230924584:[4124788165,2809605785],901063453:[2839578677,2916149573,2387106220,2294589976,178912537],4282788508:[3124975700],1628702193:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433],3736923433:[3206491090,569719735,4024345920],2347495698:[2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871],3698973494:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495],2736907675:[3649129432],4182860854:[683857671,167062518,2887950389,3454111270,2629017746,2827736869],574549367:[2059837836,1675464909],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2485617015:[816062949],2574617495:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380],3419103109:[653396225,103090709],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb],339256511:[2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223],2777663545:[1213902940,1935646853,4015995234,220341763],477187591:[2804161546],4238390223:[1580310250,1268542332],178912537:[2294589976],1425443689:[3737207727,807026263,2603310189,1635779807],3888040117:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077],759155922:[445594917],2559016684:[4006246654],3967405729:[3566463478,1714330368,2963535650,512836454,336235671,3765753017],2945172077:[2744685151,4148101412,Qb],4208778838:[3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653],3521284610:[3875453745,3663146110],3939117080:[205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259],1307041759:[1027710054],1865459582:[2655215786,3840914261,982818633,2728634034,919958153,4095574036],826625072:[1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,1401173127,750771296,3268803585],693640335:[781010003,307848117,4186316022,1462361463],3451746338:[1521410863,3523091289],3523091289:[1521410863],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],1856042241:[3243963512],1412071761:[1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064],710998568:[2481509218,3812236995,3893378262],2706606064:[Gb,jb,3124254112,4031249490],3893378262:[3812236995],3544373492:[1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126,2757150158,603775116],3979015343:[2218152070],699246055:[2157484638,3113134337],2387106220:[2839578677,2916149573],2296667514:[4143007308],1635779807:[2603310189],2887950389:[683857671,167062518],167062518:[683857671],1260505505:[1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249],1950629157:[1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202],3732776249:[144952367,1136057603,15328376],15328376:[144952367,1136057603],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033],3256556792:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793],3849074793:[1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300],1758889154:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466],1623761950:[1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555],2590856083:[2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988],2853485674:[1209101575],807026263:[3737207727],2827207264:[3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[926996030,3079942009,3588315303],3907093117:[712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,2674252688,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348],3009222698:[1810631287,2030761528,3946677679],263784265:[413509423,1509553395],2706460486:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822],3588315303:[3079942009],3740093272:[3041715199],3027567501:[979691226,2347447852,Ob,2320036040],964333572:[2572171363,2415094496,3081323446,2310774935],682877961:[1621171031,3657597509,2082059205,1807405624,1004757350],1179482911:[1975003073,734778138,4243806635],1004757350:[1807405624],214636428:[2445595289],1252848954:[385403989],3657597509:[1621171031],2254336722:[2515109513,562808652,3205830791,1177604601,Ub],1028945134:[3342526732,4218914973],1967976161:[1232101972,2461110595],2461110595:[1232101972],1136057603:[144952367],3299480353:[2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175],843113511:[905975707],2063403501:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832],1945004755:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961],3040386961:[1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314],3205830791:[562808652],395920057:[3242481149],1658829314:[402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492],2058353004:[1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234],4278956645:[342316401,1051757585,635142910,310824031,2176052936],3132237377:[Db,3571504051,90941305],987401354:[3518393246,4217484030,3758799889,3612865200],707683696:[3310460725,Cb],2223149337:[1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018],3508470533:[819412036,1360408905,4175244083],1073191201:[1911478936],3171933400:[1156407060],1529196076:[3027962421,3127900445],2391406946:[3512223829,4156078855],3304561284:[486154966],753842376:[2906023776],1062813311:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315]},Xb[2]={3630933823:[["HasExternalReference",1437805879,3,!0]],618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["HasExternalReference",1437805879,3,!0]],130549933:[["HasExternalReferences",1437805879,3,!0],["ApprovedObjects",4095574036,5,!0],["ApprovedResources",2943643501,3,!0],["IsRelatedWith",3869604511,3,!0],["Relates",3869604511,2,!0]],1959218052:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],1466758467:[["HasCoordinateOperation",1785450214,0,!0]],602808272:[["HasExternalReference",1437805879,3,!0]],3200245327:[["ExternalReferenceForResources",1437805879,2,!0]],2242383968:[["ExternalReferenceForResources",1437805879,2,!0]],1040185647:[["ExternalReferenceForResources",1437805879,2,!0]],3548104201:[["ExternalReferenceForResources",1437805879,2,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],2655187982:[["LibraryInfoForObjects",3840914261,5,!0],["HasLibraryReferences",3452421091,5,!0]],3452421091:[["ExternalReferenceForResources",1437805879,2,!0],["LibraryRefForObjects",3840914261,5,!0]],760658860:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],248100487:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],3303938423:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1847252529:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],2235152071:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],164193824:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],552965576:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],1507914824:[["AssociatedTo",2655215786,5,!0]],3368373690:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],2251480897:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2226359599:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3958567839:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3843373140:[["HasCoordinateOperation",1785450214,0,!0]],986844984:[["HasExternalReferences",1437805879,3,!0]],3710013099:[["HasExternalReferences",1437805879,3,!0]],2044713172:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2093928680:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],931644368:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3252649465:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2405470396:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],825690147:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["HasShapeAspects",867548509,4,!0],["MapUsage",2347385850,0,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],626085974:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3101149627:[["HasExternalReference",1437805879,3,!0]],1377556343:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798115385:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1310608509:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2705031697:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],616511568:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3150382593:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],747523909:[["ClassificationForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],647927063:[["ExternalReferenceForResources",1437805879,2,!0],["ClassificationRefForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],1485152156:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],370225590:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3050246964:[["HasExternalReference",1437805879,3,!0]],2889183280:[["HasExternalReference",1437805879,3,!0]],2713554722:[["HasExternalReference",1437805879,3,!0]],3632507154:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1154170062:[["DocumentInfoForObjects",982818633,5,!0],["HasDocumentReferences",3732053477,4,!0],["IsPointedTo",770865208,3,!0],["IsPointer",770865208,2,!0]],3732053477:[["ExternalReferenceForResources",1437805879,2,!0],["DocumentRefForObjects",982818633,5,!0]],3900360178:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],297599258:[["HasExternalReferences",1437805879,3,!0]],2556980723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],1809719519:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],2453401579:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],3590301190:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],812098782:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3905492369:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3741457305:[["HasExternalReference",1437805879,3,!0]],1402838566:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],1008929658:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1838606355:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["HasRepresentation",2022407955,3,!0],["IsRelatedWith",853536259,3,!0],["RelatesTo",853536259,2,!0]],3708119e3:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialConstituentSet",2852063980,2,!1]],2852063980:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1303795690:[["AssociatedTo",2655215786,5,!0]],3079605661:[["AssociatedTo",2655215786,5,!0]],3404854881:[["AssociatedTo",2655215786,5,!0]],3265635763:[["HasExternalReferences",1437805879,3,!0]],2998442950:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],219451334:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0]],2665983363:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2529465313:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2519244187:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],597895409:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],2004835150:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3778827333:[["HasExternalReferences",1437805879,3,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],2802850158:[["HasExternalReferences",1437805879,3,!0]],2598011224:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1680319473:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],3357820518:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1482703590:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],2090586900:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3615266464:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3413951693:[["HasExternalReference",1437805879,3,!0]],1580146022:[["HasExternalReferences",1437805879,3,!0]],2778083089:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2042790032:[["HasExternalReferences",1437805879,3,!0]],4165799628:[["HasExternalReferences",1437805879,3,!0]],1509187699:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124623270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3692461612:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],723233188:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2233826070:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1096409881:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3071757647:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],901063453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2715220739:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0]],3736923433:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3698973494:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],427810014:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1417489154:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1299126871:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2543172580:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3406155212:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],669184980:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3207858831:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4261334040:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2898889636:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1123145078:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],574549367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1675464909:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2059837836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1383045692:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2205249479:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2485617015:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2574617495:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],3419103109:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],1815067380:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2506170314:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2629017746:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],32440307:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],526551008:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1472233963:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2777663545:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2835456948:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4024345920:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],477187591:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2804161546:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2652556860:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4095422895:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],987898635:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1484403080:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],178912537:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0]],2294589976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0]],572779678:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],428585644:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1281925730:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0]],3388369263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1682466193:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],603570806:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3967405729:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],569719735:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0]],103090709:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],653396225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],871118103:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],4166981789:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2752243245:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],941946838:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1451395588:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],492091185:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["Defines",307848117,5,!0]],3650150729:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],110355661:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],3521284610:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3219374653:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0]],2770003689:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2798486643:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3765753017:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3523091289:[["InnerBoundaries",3523091289,9,!0]],1521410863:[["InnerBoundaries",3523091289,9,!0],["Corresponds",1521410863,10,!0]],816062949:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3243963512:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3663146110:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],1412071761:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],710998568:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],463610769:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2481509218:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],451544542:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4015995234:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],3136571912:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],603775116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],4095615324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],699246055:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2028607225:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],3206491090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2387106220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],1935646853:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2916149573:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],336235671:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],512836454:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],1635779807:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2603310189:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2887950389:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],167062518:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1334484129:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],1950629157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2197970202:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2937912522:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3893394355:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],300633059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3875453745:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3732776249:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],15328376:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2185764099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],4105962743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1525564444:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1213902940:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2963535650:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1714330368:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2323601079:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2397081782:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1704287377:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],132023988:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4148101412:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2853485674:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],807026263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],647756555:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1893162501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],263784265:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1509553395:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3493046030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],1251058090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2571569899:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3946677679:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3113134337:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],4288270099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],377706215:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1114901282:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],977012517:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],3079942009:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3566463478:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1158309216:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2839578677:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3724593414:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1469900589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],683857671:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],964333572:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2310774935:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2781568857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2157484638:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4074543187:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1072016465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],338393293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],682877961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1179482911:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1004757350:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2757150158:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1252848954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],2082059205:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],734778138:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ResultGroupFor",2515109513,8,!0]],3657597509:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3101698114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2315554128:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],413509423:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3081323446:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2415094496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3593883385:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],728799441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2391383451:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],926996030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1]],1898987631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4009809668:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4088093105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],1532957894:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1967976161:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2461110595:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],231477066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1136057603:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3299480353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],39481116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1177604601:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],2188180465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],395041908:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2674252688:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3296154744:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2611217952:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1677625105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],843113511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],905975707:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],400855858:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["CoversSpaces",2802773753,5,!0],["CoversElements",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],3205830791:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3242481149:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],663422040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2417008758:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],712377611:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2814081492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3747195512:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],484807127:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1209101575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["BoundedBy",3451746338,4,!0]],346874300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2188021234:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3319311131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2068733104:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4175244083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2176052936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],76236018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],629592764:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1437502449:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1911478936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2474470126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],144952367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3694346114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],310824031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3612865200:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1156407060:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],738039164:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],655969474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],90941305:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1232101972:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],979691226:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2572171363:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3053780830:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1783015770:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1329646415:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3127900445:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3027962421:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3420628829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1999602285:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1404847402:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],331165859:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],385403989:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1162798199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],812556717:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3825984169:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3026737570:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3179687236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4292641817:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4207607924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4156078855:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4237592921:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],486154966:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1634111441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],177149247:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2056796094:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],277319702:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2906023776:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],32344328:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2938176219:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],635142910:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3758799889:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1051757585:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4217484030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3902619387:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],639361253:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3221913625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3571504051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2272882330:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],578613899:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4136498852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3640358203:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4074379575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],562808652:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],342316401:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3518393246:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1360408905:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1904799276:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],862014818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3310460725:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],264262732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],402227799:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1003880860:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3415622556:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],819412036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1426591983:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],182646315:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],2295281155:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4086658281:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],630975310:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4288193352:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],3087945054:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],25142252:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]]},Jb[2]={3630933823:(e,t)=>new ub.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new ub.IfcAddress(e,t[0],t[1],t[2]),639542469:(e,t)=>new ub.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new ub.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),130549933:(e,t)=>new ub.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4037036970:(e,t)=>new ub.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new ub.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new ub.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new ub.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new ub.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2859738748:(e,t)=>new ub.IfcConnectionGeometry(e),2614616156:(e,t)=>new ub.IfcConnectionPointGeometry(e,t[0],t[1]),2732653382:(e,t)=>new ub.IfcConnectionSurfaceGeometry(e,t[0],t[1]),775493141:(e,t)=>new ub.IfcConnectionVolumeGeometry(e,t[0],t[1]),1959218052:(e,t)=>new ub.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1785450214:(e,t)=>new ub.IfcCoordinateOperation(e,t[0],t[1]),1466758467:(e,t)=>new ub.IfcCoordinateReferenceSystem(e,t[0],t[1],t[2],t[3]),602808272:(e,t)=>new ub.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1765591967:(e,t)=>new ub.IfcDerivedUnit(e,t[0],t[1],t[2]),1045800335:(e,t)=>new ub.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new ub.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4294318154:(e,t)=>new ub.IfcExternalInformation(e),3200245327:(e,t)=>new ub.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new ub.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new ub.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3548104201:(e,t)=>new ub.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new ub.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new ub.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new ub.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4],t[5]),3452421091:(e,t)=>new ub.IfcLibraryReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),4162380809:(e,t)=>new ub.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new ub.IfcLightIntensityDistribution(e,t[0],t[1]),3057273783:(e,t)=>new ub.IfcMapConversion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1847130766:(e,t)=>new ub.IfcMaterialClassificationRelationship(e,t[0],t[1]),760658860:(e,t)=>new ub.IfcMaterialDefinition(e),248100487:(e,t)=>new ub.IfcMaterialLayer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3303938423:(e,t)=>new ub.IfcMaterialLayerSet(e,t[0],t[1],t[2]),1847252529:(e,t)=>new ub.IfcMaterialLayerWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2199411900:(e,t)=>new ub.IfcMaterialList(e,t[0]),2235152071:(e,t)=>new ub.IfcMaterialProfile(e,t[0],t[1],t[2],t[3],t[4],t[5]),164193824:(e,t)=>new ub.IfcMaterialProfileSet(e,t[0],t[1],t[2],t[3]),552965576:(e,t)=>new ub.IfcMaterialProfileWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1507914824:(e,t)=>new ub.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new ub.IfcMeasureWithUnit(e,t[0],t[1]),3368373690:(e,t)=>new ub.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706619895:(e,t)=>new ub.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new ub.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new ub.IfcObjectPlacement(e),2251480897:(e,t)=>new ub.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4251960020:(e,t)=>new ub.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1207048766:(e,t)=>new ub.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new ub.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new ub.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new ub.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new ub.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new ub.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),677532197:(e,t)=>new ub.IfcPresentationItem(e),2022622350:(e,t)=>new ub.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new ub.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new ub.IfcPresentationStyle(e,t[0]),2417041796:(e,t)=>new ub.IfcPresentationStyleAssignment(e,t[0]),2095639259:(e,t)=>new ub.IfcProductRepresentation(e,t[0],t[1],t[2]),3958567839:(e,t)=>new ub.IfcProfileDef(e,t[0],t[1]),3843373140:(e,t)=>new ub.IfcProjectedCRS(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),986844984:(e,t)=>new ub.IfcPropertyAbstraction(e),3710013099:(e,t)=>new ub.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new ub.IfcQuantityArea(e,t[0],t[1],t[2],t[3],t[4]),2093928680:(e,t)=>new ub.IfcQuantityCount(e,t[0],t[1],t[2],t[3],t[4]),931644368:(e,t)=>new ub.IfcQuantityLength(e,t[0],t[1],t[2],t[3],t[4]),3252649465:(e,t)=>new ub.IfcQuantityTime(e,t[0],t[1],t[2],t[3],t[4]),2405470396:(e,t)=>new ub.IfcQuantityVolume(e,t[0],t[1],t[2],t[3],t[4]),825690147:(e,t)=>new ub.IfcQuantityWeight(e,t[0],t[1],t[2],t[3],t[4]),3915482550:(e,t)=>new ub.IfcRecurrencePattern(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2433181523:(e,t)=>new ub.IfcReference(e,t[0],t[1],t[2],t[3],t[4]),1076942058:(e,t)=>new ub.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new ub.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new ub.IfcRepresentationItem(e),1660063152:(e,t)=>new ub.IfcRepresentationMap(e,t[0],t[1]),2439245199:(e,t)=>new ub.IfcResourceLevelRelationship(e,t[0],t[1]),2341007311:(e,t)=>new ub.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new ub.IfcSIUnit(e,t[0],t[1],t[2]),1054537805:(e,t)=>new ub.IfcSchedulingTime(e,t[0],t[1],t[2]),867548509:(e,t)=>new ub.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new ub.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new ub.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),2273995522:(e,t)=>new ub.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new ub.IfcStructuralLoad(e,t[0]),3478079324:(e,t)=>new ub.IfcStructuralLoadConfiguration(e,t[0],t[1],t[2]),609421318:(e,t)=>new ub.IfcStructuralLoadOrResult(e,t[0]),2525727697:(e,t)=>new ub.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new ub.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new ub.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new ub.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new ub.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),2934153892:(e,t)=>new ub.IfcSurfaceReinforcementArea(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new ub.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new ub.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new ub.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new ub.IfcSurfaceStyleShading(e,t[0],t[1]),1351298697:(e,t)=>new ub.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new ub.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3],t[4]),985171141:(e,t)=>new ub.IfcTable(e,t[0],t[1],t[2]),2043862942:(e,t)=>new ub.IfcTableColumn(e,t[0],t[1],t[2],t[3],t[4]),531007025:(e,t)=>new ub.IfcTableRow(e,t[0],t[1]),1549132990:(e,t)=>new ub.IfcTaskTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),2771591690:(e,t)=>new ub.IfcTaskTimeRecurring(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20]),912023232:(e,t)=>new ub.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1447204868:(e,t)=>new ub.IfcTextStyle(e,t[0],t[1],t[2],t[3],t[4]),2636378356:(e,t)=>new ub.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new ub.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),280115917:(e,t)=>new ub.IfcTextureCoordinate(e,t[0]),1742049831:(e,t)=>new ub.IfcTextureCoordinateGenerator(e,t[0],t[1],t[2]),2552916305:(e,t)=>new ub.IfcTextureMap(e,t[0],t[1],t[2]),1210645708:(e,t)=>new ub.IfcTextureVertex(e,t[0]),3611470254:(e,t)=>new ub.IfcTextureVertexList(e,t[0]),1199560280:(e,t)=>new ub.IfcTimePeriod(e,t[0],t[1]),3101149627:(e,t)=>new ub.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),581633288:(e,t)=>new ub.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new ub.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new ub.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new ub.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new ub.IfcVertex(e),1907098498:(e,t)=>new ub.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new ub.IfcVirtualGridIntersection(e,t[0],t[1]),1236880293:(e,t)=>new ub.IfcWorkTime(e,t[0],t[1],t[2],t[3],t[4],t[5]),3869604511:(e,t)=>new ub.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),3798115385:(e,t)=>new ub.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new ub.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new ub.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new ub.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3150382593:(e,t)=>new ub.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),747523909:(e,t)=>new ub.IfcClassification(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),647927063:(e,t)=>new ub.IfcClassificationReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),3285139300:(e,t)=>new ub.IfcColourRgbList(e,t[0]),3264961684:(e,t)=>new ub.IfcColourSpecification(e,t[0]),1485152156:(e,t)=>new ub.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new ub.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new ub.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new ub.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new ub.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new ub.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),2713554722:(e,t)=>new ub.IfcConversionBasedUnitWithOffset(e,t[0],t[1],t[2],t[3],t[4]),539742890:(e,t)=>new ub.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3800577675:(e,t)=>new ub.IfcCurveStyle(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new ub.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new ub.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new ub.IfcCurveStyleFontPattern(e,t[0],t[1]),3632507154:(e,t)=>new ub.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),1154170062:(e,t)=>new ub.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new ub.IfcDocumentInformationRelationship(e,t[0],t[1],t[2],t[3],t[4]),3732053477:(e,t)=>new ub.IfcDocumentReference(e,t[0],t[1],t[2],t[3],t[4]),3900360178:(e,t)=>new ub.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new ub.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),211053100:(e,t)=>new ub.IfcEventTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),297599258:(e,t)=>new ub.IfcExtendedProperties(e,t[0],t[1],t[2]),1437805879:(e,t)=>new ub.IfcExternalReferenceRelationship(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new ub.IfcFace(e,t[0]),1809719519:(e,t)=>new ub.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new ub.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new ub.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new ub.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new ub.IfcFillAreaStyle(e,t[0],t[1],t[2]),3448662350:(e,t)=>new ub.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new ub.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new ub.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),3590301190:(e,t)=>new ub.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new ub.IfcGridPlacement(e,t[0],t[1]),812098782:(e,t)=>new ub.IfcHalfSpaceSolid(e,t[0],t[1]),3905492369:(e,t)=>new ub.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3570813810:(e,t)=>new ub.IfcIndexedColourMap(e,t[0],t[1],t[2],t[3]),1437953363:(e,t)=>new ub.IfcIndexedTextureMap(e,t[0],t[1],t[2]),2133299955:(e,t)=>new ub.IfcIndexedTriangleTextureMap(e,t[0],t[1],t[2],t[3]),3741457305:(e,t)=>new ub.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1585845231:(e,t)=>new ub.IfcLagTime(e,t[0],t[1],t[2],t[3],t[4]),1402838566:(e,t)=>new ub.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new ub.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new ub.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new ub.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new ub.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new ub.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2624227202:(e,t)=>new ub.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new ub.IfcLoop(e),2347385850:(e,t)=>new ub.IfcMappedItem(e,t[0],t[1]),1838606355:(e,t)=>new ub.IfcMaterial(e,t[0],t[1],t[2]),3708119e3:(e,t)=>new ub.IfcMaterialConstituent(e,t[0],t[1],t[2],t[3],t[4]),2852063980:(e,t)=>new ub.IfcMaterialConstituentSet(e,t[0],t[1],t[2]),2022407955:(e,t)=>new ub.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1303795690:(e,t)=>new ub.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3],t[4]),3079605661:(e,t)=>new ub.IfcMaterialProfileSetUsage(e,t[0],t[1],t[2]),3404854881:(e,t)=>new ub.IfcMaterialProfileSetUsageTapering(e,t[0],t[1],t[2],t[3],t[4]),3265635763:(e,t)=>new ub.IfcMaterialProperties(e,t[0],t[1],t[2],t[3]),853536259:(e,t)=>new ub.IfcMaterialRelationship(e,t[0],t[1],t[2],t[3],t[4]),2998442950:(e,t)=>new ub.IfcMirroredProfileDef(e,t[0],t[1],t[2],t[3]),219451334:(e,t)=>new ub.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),2665983363:(e,t)=>new ub.IfcOpenShell(e,t[0]),1411181986:(e,t)=>new ub.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1029017970:(e,t)=>new ub.IfcOrientedEdge(e,t[0],t[1]),2529465313:(e,t)=>new ub.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new ub.IfcPath(e,t[0]),3021840470:(e,t)=>new ub.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new ub.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2004835150:(e,t)=>new ub.IfcPlacement(e,t[0]),1663979128:(e,t)=>new ub.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new ub.IfcPoint(e),4022376103:(e,t)=>new ub.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new ub.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new ub.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new ub.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),3727388367:(e,t)=>new ub.IfcPreDefinedItem(e,t[0]),3778827333:(e,t)=>new ub.IfcPreDefinedProperties(e),1775413392:(e,t)=>new ub.IfcPreDefinedTextFont(e,t[0]),673634403:(e,t)=>new ub.IfcProductDefinitionShape(e,t[0],t[1],t[2]),2802850158:(e,t)=>new ub.IfcProfileProperties(e,t[0],t[1],t[2],t[3]),2598011224:(e,t)=>new ub.IfcProperty(e,t[0],t[1]),1680319473:(e,t)=>new ub.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new ub.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3357820518:(e,t)=>new ub.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),1482703590:(e,t)=>new ub.IfcPropertyTemplateDefinition(e,t[0],t[1],t[2],t[3]),2090586900:(e,t)=>new ub.IfcQuantitySet(e,t[0],t[1],t[2],t[3]),3615266464:(e,t)=>new ub.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new ub.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1580146022:(e,t)=>new ub.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new ub.IfcRelationship(e,t[0],t[1],t[2],t[3]),2943643501:(e,t)=>new ub.IfcResourceApprovalRelationship(e,t[0],t[1],t[2],t[3]),1608871552:(e,t)=>new ub.IfcResourceConstraintRelationship(e,t[0],t[1],t[2],t[3]),1042787934:(e,t)=>new ub.IfcResourceTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2778083089:(e,t)=>new ub.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),2042790032:(e,t)=>new ub.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new ub.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new ub.IfcSectionedSpine(e,t[0],t[1],t[2]),4124623270:(e,t)=>new ub.IfcShellBasedSurfaceModel(e,t[0]),3692461612:(e,t)=>new ub.IfcSimpleProperty(e,t[0],t[1]),2609359061:(e,t)=>new ub.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new ub.IfcSolidModel(e),1595516126:(e,t)=>new ub.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new ub.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new ub.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new ub.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new ub.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new ub.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2233826070:(e,t)=>new ub.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new ub.IfcSurface(e),1878645084:(e,t)=>new ub.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new ub.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new ub.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),1096409881:(e,t)=>new ub.IfcSweptDiskSolidPolygonal(e,t[0],t[1],t[2],t[3],t[4],t[5]),230924584:(e,t)=>new ub.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new ub.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),901063453:(e,t)=>new ub.IfcTessellatedItem(e),4282788508:(e,t)=>new ub.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new ub.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),1983826977:(e,t)=>new ub.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2715220739:(e,t)=>new ub.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1628702193:(e,t)=>new ub.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),3736923433:(e,t)=>new ub.IfcTypeProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2347495698:(e,t)=>new ub.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3698973494:(e,t)=>new ub.IfcTypeResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),427810014:(e,t)=>new ub.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1417489154:(e,t)=>new ub.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new ub.IfcVertexLoop(e,t[0]),1299126871:(e,t)=>new ub.IfcWindowStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2543172580:(e,t)=>new ub.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3406155212:(e,t)=>new ub.IfcAdvancedFace(e,t[0],t[1],t[2]),669184980:(e,t)=>new ub.IfcAnnotationFillArea(e,t[0],t[1]),3207858831:(e,t)=>new ub.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4261334040:(e,t)=>new ub.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new ub.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new ub.IfcAxis2Placement3D(e,t[0],t[1],t[2]),2736907675:(e,t)=>new ub.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new ub.IfcBoundedSurface(e),2581212453:(e,t)=>new ub.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new ub.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new ub.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1123145078:(e,t)=>new ub.IfcCartesianPoint(e,t[0]),574549367:(e,t)=>new ub.IfcCartesianPointList(e),1675464909:(e,t)=>new ub.IfcCartesianPointList2D(e,t[0]),2059837836:(e,t)=>new ub.IfcCartesianPointList3D(e,t[0]),59481748:(e,t)=>new ub.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new ub.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new ub.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new ub.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new ub.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new ub.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new ub.IfcClosedShell(e,t[0]),776857604:(e,t)=>new ub.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new ub.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),2485617015:(e,t)=>new ub.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),2574617495:(e,t)=>new ub.IfcConstructionResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3419103109:(e,t)=>new ub.IfcContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1815067380:(e,t)=>new ub.IfcCrewResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new ub.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new ub.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new ub.IfcCurve(e),2827736869:(e,t)=>new ub.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),2629017746:(e,t)=>new ub.IfcCurveBoundedSurface(e,t[0],t[1],t[2]),32440307:(e,t)=>new ub.IfcDirection(e,t[0]),526551008:(e,t)=>new ub.IfcDoorStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1472233963:(e,t)=>new ub.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new ub.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new ub.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new ub.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new ub.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),4024345920:(e,t)=>new ub.IfcEventType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),477187591:(e,t)=>new ub.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2804161546:(e,t)=>new ub.IfcExtrudedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),2047409740:(e,t)=>new ub.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new ub.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),315944413:(e,t)=>new ub.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),2652556860:(e,t)=>new ub.IfcFixedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),4238390223:(e,t)=>new ub.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new ub.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4095422895:(e,t)=>new ub.IfcGeographicElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new ub.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new ub.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),178912537:(e,t)=>new ub.IfcIndexedPolygonalFace(e,t[0]),2294589976:(e,t)=>new ub.IfcIndexedPolygonalFaceWithVoids(e,t[0],t[1]),572779678:(e,t)=>new ub.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),428585644:(e,t)=>new ub.IfcLaborResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1281925730:(e,t)=>new ub.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new ub.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new ub.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),3388369263:(e,t)=>new ub.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new ub.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),1682466193:(e,t)=>new ub.IfcPcurve(e,t[0],t[1]),603570806:(e,t)=>new ub.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new ub.IfcPlane(e,t[0]),759155922:(e,t)=>new ub.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new ub.IfcPreDefinedCurveFont(e,t[0]),3967405729:(e,t)=>new ub.IfcPreDefinedPropertySet(e,t[0],t[1],t[2],t[3]),569719735:(e,t)=>new ub.IfcProcedureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2945172077:(e,t)=>new ub.IfcProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4208778838:(e,t)=>new ub.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new ub.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),653396225:(e,t)=>new ub.IfcProjectLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),871118103:(e,t)=>new ub.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4166981789:(e,t)=>new ub.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new ub.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new ub.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),1451395588:(e,t)=>new ub.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),492091185:(e,t)=>new ub.IfcPropertySetTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3650150729:(e,t)=>new ub.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new ub.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3521284610:(e,t)=>new ub.IfcPropertyTemplate(e,t[0],t[1],t[2],t[3]),3219374653:(e,t)=>new ub.IfcProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2770003689:(e,t)=>new ub.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new ub.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new ub.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3765753017:(e,t)=>new ub.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3939117080:(e,t)=>new ub.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new ub.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new ub.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new ub.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1027710054:(e,t)=>new ub.IfcRelAssignsToGroupByFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278684876:(e,t)=>new ub.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new ub.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new ub.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new ub.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),4095574036:(e,t)=>new ub.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new ub.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new ub.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new ub.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new ub.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new ub.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),826625072:(e,t)=>new ub.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new ub.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new ub.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new ub.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new ub.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new ub.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new ub.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new ub.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new ub.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new ub.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new ub.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new ub.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2565941209:(e,t)=>new ub.IfcRelDeclares(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new ub.IfcRelDecomposes(e,t[0],t[1],t[2],t[3]),693640335:(e,t)=>new ub.IfcRelDefines(e,t[0],t[1],t[2],t[3]),1462361463:(e,t)=>new ub.IfcRelDefinesByObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),4186316022:(e,t)=>new ub.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),307848117:(e,t)=>new ub.IfcRelDefinesByTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new ub.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new ub.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new ub.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),427948657:(e,t)=>new ub.IfcRelInterferesElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3268803585:(e,t)=>new ub.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),750771296:(e,t)=>new ub.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new ub.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),4122056220:(e,t)=>new ub.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),366585022:(e,t)=>new ub.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new ub.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3523091289:(e,t)=>new ub.IfcRelSpaceBoundary1stLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1521410863:(e,t)=>new ub.IfcRelSpaceBoundary2ndLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1401173127:(e,t)=>new ub.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),816062949:(e,t)=>new ub.IfcReparametrisedCompositeCurveSegment(e,t[0],t[1],t[2],t[3]),2914609552:(e,t)=>new ub.IfcResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1856042241:(e,t)=>new ub.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),3243963512:(e,t)=>new ub.IfcRevolvedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),4158566097:(e,t)=>new ub.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new ub.IfcRightCircularCylinder(e,t[0],t[1],t[2]),3663146110:(e,t)=>new ub.IfcSimplePropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1412071761:(e,t)=>new ub.IfcSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),710998568:(e,t)=>new ub.IfcSpatialElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2706606064:(e,t)=>new ub.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new ub.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),463610769:(e,t)=>new ub.IfcSpatialZone(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2481509218:(e,t)=>new ub.IfcSpatialZoneType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),451544542:(e,t)=>new ub.IfcSphere(e,t[0],t[1]),4015995234:(e,t)=>new ub.IfcSphericalSurface(e,t[0],t[1]),3544373492:(e,t)=>new ub.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new ub.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new ub.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new ub.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new ub.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new ub.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603775116:(e,t)=>new ub.IfcStructuralSurfaceReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4095615324:(e,t)=>new ub.IfcSubContractResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),699246055:(e,t)=>new ub.IfcSurfaceCurve(e,t[0],t[1],t[2]),2028607225:(e,t)=>new ub.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new ub.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new ub.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new ub.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3473067441:(e,t)=>new ub.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3206491090:(e,t)=>new ub.IfcTaskType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2387106220:(e,t)=>new ub.IfcTessellatedFaceSet(e,t[0]),1935646853:(e,t)=>new ub.IfcToroidalSurface(e,t[0],t[1],t[2]),2097647324:(e,t)=>new ub.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2916149573:(e,t)=>new ub.IfcTriangulatedFaceSet(e,t[0],t[1],t[2],t[3],t[4]),336235671:(e,t)=>new ub.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),512836454:(e,t)=>new ub.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2296667514:(e,t)=>new ub.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1635779807:(e,t)=>new ub.IfcAdvancedBrep(e,t[0]),2603310189:(e,t)=>new ub.IfcAdvancedBrepWithVoids(e,t[0],t[1]),1674181508:(e,t)=>new ub.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2887950389:(e,t)=>new ub.IfcBSplineSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),167062518:(e,t)=>new ub.IfcBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new ub.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new ub.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new ub.IfcBoundedCurve(e),4031249490:(e,t)=>new ub.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1950629157:(e,t)=>new ub.IfcBuildingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3124254112:(e,t)=>new ub.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2197970202:(e,t)=>new ub.IfcChimneyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new ub.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3893394355:(e,t)=>new ub.IfcCivilElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),300633059:(e,t)=>new ub.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3875453745:(e,t)=>new ub.IfcComplexPropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3732776249:(e,t)=>new ub.IfcCompositeCurve(e,t[0],t[1]),15328376:(e,t)=>new ub.IfcCompositeCurveOnSurface(e,t[0],t[1]),2510884976:(e,t)=>new ub.IfcConic(e,t[0]),2185764099:(e,t)=>new ub.IfcConstructionEquipmentResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4105962743:(e,t)=>new ub.IfcConstructionMaterialResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1525564444:(e,t)=>new ub.IfcConstructionProductResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2559216714:(e,t)=>new ub.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293443760:(e,t)=>new ub.IfcControl(e,t[0],t[1],t[2],t[3],t[4],t[5]),3895139033:(e,t)=>new ub.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1419761937:(e,t)=>new ub.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916426348:(e,t)=>new ub.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new ub.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1457835157:(e,t)=>new ub.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1213902940:(e,t)=>new ub.IfcCylindricalSurface(e,t[0],t[1]),3256556792:(e,t)=>new ub.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new ub.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2963535650:(e,t)=>new ub.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),1714330368:(e,t)=>new ub.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2323601079:(e,t)=>new ub.IfcDoorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),445594917:(e,t)=>new ub.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new ub.IfcDraughtingPreDefinedCurveFont(e,t[0]),1758889154:(e,t)=>new ub.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new ub.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2397081782:(e,t)=>new ub.IfcElementAssemblyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new ub.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new ub.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new ub.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new ub.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),132023988:(e,t)=>new ub.IfcEngineType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3174744832:(e,t)=>new ub.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new ub.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4148101412:(e,t)=>new ub.IfcEvent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2853485674:(e,t)=>new ub.IfcExternalSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),807026263:(e,t)=>new ub.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new ub.IfcFacetedBrepWithVoids(e,t[0],t[1]),647756555:(e,t)=>new ub.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2489546625:(e,t)=>new ub.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2827207264:(e,t)=>new ub.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new ub.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new ub.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new ub.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new ub.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new ub.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new ub.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new ub.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new ub.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new ub.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new ub.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1893162501:(e,t)=>new ub.IfcFootingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),263784265:(e,t)=>new ub.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1509553395:(e,t)=>new ub.IfcFurniture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3493046030:(e,t)=>new ub.IfcGeographicElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009204131:(e,t)=>new ub.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706460486:(e,t)=>new ub.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new ub.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new ub.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2571569899:(e,t)=>new ub.IfcIndexedPolyCurve(e,t[0],t[1],t[2]),3946677679:(e,t)=>new ub.IfcInterceptorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3113134337:(e,t)=>new ub.IfcIntersectionCurve(e,t[0],t[1],t[2]),2391368822:(e,t)=>new ub.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new ub.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new ub.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1051575348:(e,t)=>new ub.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new ub.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),377706215:(e,t)=>new ub.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2108223431:(e,t)=>new ub.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1114901282:(e,t)=>new ub.IfcMedicalDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3181161470:(e,t)=>new ub.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new ub.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4143007308:(e,t)=>new ub.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new ub.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3079942009:(e,t)=>new ub.IfcOpeningStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2837617999:(e,t)=>new ub.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new ub.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3566463478:(e,t)=>new ub.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3327091369:(e,t)=>new ub.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1158309216:(e,t)=>new ub.IfcPileType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),804291784:(e,t)=>new ub.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new ub.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new ub.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2839578677:(e,t)=>new ub.IfcPolygonalFaceSet(e,t[0],t[1],t[2],t[3]),3724593414:(e,t)=>new ub.IfcPolyline(e,t[0]),3740093272:(e,t)=>new ub.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new ub.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new ub.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3651124850:(e,t)=>new ub.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1842657554:(e,t)=>new ub.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new ub.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2893384427:(e,t)=>new ub.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2324767716:(e,t)=>new ub.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1469900589:(e,t)=>new ub.IfcRampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),683857671:(e,t)=>new ub.IfcRationalBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3027567501:(e,t)=>new ub.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),964333572:(e,t)=>new ub.IfcReinforcingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new ub.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2310774935:(e,t)=>new ub.IfcReinforcingMeshType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),160246688:(e,t)=>new ub.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),2781568857:(e,t)=>new ub.IfcRoofType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1768891740:(e,t)=>new ub.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2157484638:(e,t)=>new ub.IfcSeamCurve(e,t[0],t[1],t[2]),4074543187:(e,t)=>new ub.IfcShadingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4097777520:(e,t)=>new ub.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new ub.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1072016465:(e,t)=>new ub.IfcSolarDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new ub.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new ub.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new ub.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3112655638:(e,t)=>new ub.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new ub.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),338393293:(e,t)=>new ub.IfcStairType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new ub.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1179482911:(e,t)=>new ub.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1004757350:(e,t)=>new ub.IfcStructuralCurveAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4243806635:(e,t)=>new ub.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),214636428:(e,t)=>new ub.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2445595289:(e,t)=>new ub.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2757150158:(e,t)=>new ub.IfcStructuralCurveReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1807405624:(e,t)=>new ub.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1252848954:(e,t)=>new ub.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2082059205:(e,t)=>new ub.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),734778138:(e,t)=>new ub.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1235345126:(e,t)=>new ub.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new ub.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3657597509:(e,t)=>new ub.IfcStructuralSurfaceAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1975003073:(e,t)=>new ub.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new ub.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3101698114:(e,t)=>new ub.IfcSurfaceFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2315554128:(e,t)=>new ub.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new ub.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),413509423:(e,t)=>new ub.IfcSystemFurnitureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),5716631:(e,t)=>new ub.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3824725483:(e,t)=>new ub.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new ub.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3081323446:(e,t)=>new ub.IfcTendonAnchorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2415094496:(e,t)=>new ub.IfcTendonType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),1692211062:(e,t)=>new ub.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1620046519:(e,t)=>new ub.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3593883385:(e,t)=>new ub.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new ub.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new ub.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new ub.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391383451:(e,t)=>new ub.IfcVibrationIsolator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new ub.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new ub.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),926996030:(e,t)=>new ub.IfcVoidingFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1898987631:(e,t)=>new ub.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new ub.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4009809668:(e,t)=>new ub.IfcWindowType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4088093105:(e,t)=>new ub.IfcWorkCalendar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1028945134:(e,t)=>new ub.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4218914973:(e,t)=>new ub.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),3342526732:(e,t)=>new ub.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1033361043:(e,t)=>new ub.IfcZone(e,t[0],t[1],t[2],t[3],t[4],t[5]),3821786052:(e,t)=>new ub.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1411407467:(e,t)=>new ub.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new ub.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new ub.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3460190687:(e,t)=>new ub.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1532957894:(e,t)=>new ub.IfcAudioVisualApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1967976161:(e,t)=>new ub.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),2461110595:(e,t)=>new ub.IfcBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),819618141:(e,t)=>new ub.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),231477066:(e,t)=>new ub.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1136057603:(e,t)=>new ub.IfcBoundaryCurve(e,t[0],t[1]),3299480353:(e,t)=>new ub.IfcBuildingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2979338954:(e,t)=>new ub.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),39481116:(e,t)=>new ub.IfcBuildingElementPartType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1095909175:(e,t)=>new ub.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1909888760:(e,t)=>new ub.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1177604601:(e,t)=>new ub.IfcBuildingSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2188180465:(e,t)=>new ub.IfcBurnerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new ub.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new ub.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2674252688:(e,t)=>new ub.IfcCableFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new ub.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new ub.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3296154744:(e,t)=>new ub.IfcChimney(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2611217952:(e,t)=>new ub.IfcCircle(e,t[0],t[1]),1677625105:(e,t)=>new ub.IfcCivilElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2301859152:(e,t)=>new ub.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new ub.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),905975707:(e,t)=>new ub.IfcColumnStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),400855858:(e,t)=>new ub.IfcCommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3850581409:(e,t)=>new ub.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new ub.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3898045240:(e,t)=>new ub.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1060000209:(e,t)=>new ub.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new ub.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),335055490:(e,t)=>new ub.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new ub.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1973544240:(e,t)=>new ub.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new ub.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3961806047:(e,t)=>new ub.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1335981549:(e,t)=>new ub.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2635815018:(e,t)=>new ub.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1599208980:(e,t)=>new ub.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new ub.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new ub.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new ub.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new ub.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3205830791:(e,t)=>new ub.IfcDistributionSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),395920057:(e,t)=>new ub.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3242481149:(e,t)=>new ub.IfcDoorStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),869906466:(e,t)=>new ub.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new ub.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new ub.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),663422040:(e,t)=>new ub.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2417008758:(e,t)=>new ub.IfcElectricDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new ub.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new ub.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new ub.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new ub.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1658829314:(e,t)=>new ub.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2814081492:(e,t)=>new ub.IfcEngine(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3747195512:(e,t)=>new ub.IfcEvaporativeCooler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),484807127:(e,t)=>new ub.IfcEvaporator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1209101575:(e,t)=>new ub.IfcExternalSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),346874300:(e,t)=>new ub.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new ub.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new ub.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new ub.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new ub.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new ub.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188021234:(e,t)=>new ub.IfcFlowMeter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3132237377:(e,t)=>new ub.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new ub.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new ub.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new ub.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new ub.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new ub.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3319311131:(e,t)=>new ub.IfcHeatExchanger(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2068733104:(e,t)=>new ub.IfcHumidifier(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4175244083:(e,t)=>new ub.IfcInterceptor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2176052936:(e,t)=>new ub.IfcJunctionBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),76236018:(e,t)=>new ub.IfcLamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),629592764:(e,t)=>new ub.IfcLightFixture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1437502449:(e,t)=>new ub.IfcMedicalDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new ub.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1911478936:(e,t)=>new ub.IfcMemberStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2474470126:(e,t)=>new ub.IfcMotorConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),144952367:(e,t)=>new ub.IfcOuterBoundaryCurve(e,t[0],t[1]),3694346114:(e,t)=>new ub.IfcOutlet(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1687234759:(e,t)=>new ub.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),310824031:(e,t)=>new ub.IfcPipeFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3612865200:(e,t)=>new ub.IfcPipeSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3171933400:(e,t)=>new ub.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1156407060:(e,t)=>new ub.IfcPlateStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),738039164:(e,t)=>new ub.IfcProtectiveDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),655969474:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),90941305:(e,t)=>new ub.IfcPump(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2262370178:(e,t)=>new ub.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new ub.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new ub.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1232101972:(e,t)=>new ub.IfcRationalBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),979691226:(e,t)=>new ub.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2572171363:(e,t)=>new ub.IfcReinforcingBarType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),2016517767:(e,t)=>new ub.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3053780830:(e,t)=>new ub.IfcSanitaryTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1783015770:(e,t)=>new ub.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1329646415:(e,t)=>new ub.IfcShadingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1529196076:(e,t)=>new ub.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3127900445:(e,t)=>new ub.IfcSlabElementedCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3027962421:(e,t)=>new ub.IfcSlabStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3420628829:(e,t)=>new ub.IfcSolarDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1999602285:(e,t)=>new ub.IfcSpaceHeater(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1404847402:(e,t)=>new ub.IfcStackTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new ub.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new ub.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2515109513:(e,t)=>new ub.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),385403989:(e,t)=>new ub.IfcStructuralLoadCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1621171031:(e,t)=>new ub.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1162798199:(e,t)=>new ub.IfcSwitchingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),812556717:(e,t)=>new ub.IfcTank(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3825984169:(e,t)=>new ub.IfcTransformer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3026737570:(e,t)=>new ub.IfcTubeBundle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3179687236:(e,t)=>new ub.IfcUnitaryControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4292641817:(e,t)=>new ub.IfcUnitaryEquipment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4207607924:(e,t)=>new ub.IfcValve(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2391406946:(e,t)=>new ub.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4156078855:(e,t)=>new ub.IfcWallElementedCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3512223829:(e,t)=>new ub.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4237592921:(e,t)=>new ub.IfcWasteTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3304561284:(e,t)=>new ub.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),486154966:(e,t)=>new ub.IfcWindowStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2874132201:(e,t)=>new ub.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634111441:(e,t)=>new ub.IfcAirTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),177149247:(e,t)=>new ub.IfcAirTerminalBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2056796094:(e,t)=>new ub.IfcAirToAirHeatRecovery(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3001207471:(e,t)=>new ub.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),277319702:(e,t)=>new ub.IfcAudioVisualAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),753842376:(e,t)=>new ub.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2906023776:(e,t)=>new ub.IfcBeamStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),32344328:(e,t)=>new ub.IfcBoiler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2938176219:(e,t)=>new ub.IfcBurner(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),635142910:(e,t)=>new ub.IfcCableCarrierFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3758799889:(e,t)=>new ub.IfcCableCarrierSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1051757585:(e,t)=>new ub.IfcCableFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4217484030:(e,t)=>new ub.IfcCableSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3902619387:(e,t)=>new ub.IfcChiller(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639361253:(e,t)=>new ub.IfcCoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3221913625:(e,t)=>new ub.IfcCommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3571504051:(e,t)=>new ub.IfcCompressor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2272882330:(e,t)=>new ub.IfcCondenser(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),578613899:(e,t)=>new ub.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4136498852:(e,t)=>new ub.IfcCooledBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3640358203:(e,t)=>new ub.IfcCoolingTower(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074379575:(e,t)=>new ub.IfcDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1052013943:(e,t)=>new ub.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),562808652:(e,t)=>new ub.IfcDistributionCircuit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1062813311:(e,t)=>new ub.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),342316401:(e,t)=>new ub.IfcDuctFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3518393246:(e,t)=>new ub.IfcDuctSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1360408905:(e,t)=>new ub.IfcDuctSilencer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1904799276:(e,t)=>new ub.IfcElectricAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),862014818:(e,t)=>new ub.IfcElectricDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3310460725:(e,t)=>new ub.IfcElectricFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),264262732:(e,t)=>new ub.IfcElectricGenerator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),402227799:(e,t)=>new ub.IfcElectricMotor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1003880860:(e,t)=>new ub.IfcElectricTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3415622556:(e,t)=>new ub.IfcFan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),819412036:(e,t)=>new ub.IfcFilter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1426591983:(e,t)=>new ub.IfcFireSuppressionTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),182646315:(e,t)=>new ub.IfcFlowInstrument(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2295281155:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4086658281:(e,t)=>new ub.IfcSensor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),630975310:(e,t)=>new ub.IfcUnitaryControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4288193352:(e,t)=>new ub.IfcActuator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3087945054:(e,t)=>new ub.IfcAlarm(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),25142252:(e,t)=>new ub.IfcController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},Zb[2]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],130549933:e=>[e.Identifier,e.Name,e.Description,e.TimeOfApproval,e.Status,e.Level,e.Qualifier,e.RequestingApproval,e.GivingApproval],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.TranslationalStiffnessByLengthX?sD(e.TranslationalStiffnessByLengthX):null,e.TranslationalStiffnessByLengthY?sD(e.TranslationalStiffnessByLengthY):null,e.TranslationalStiffnessByLengthZ?sD(e.TranslationalStiffnessByLengthZ):null,e.RotationalStiffnessByLengthX?sD(e.RotationalStiffnessByLengthX):null,e.RotationalStiffnessByLengthY?sD(e.RotationalStiffnessByLengthY):null,e.RotationalStiffnessByLengthZ?sD(e.RotationalStiffnessByLengthZ):null],3367102660:e=>[e.Name,e.TranslationalStiffnessByAreaX?sD(e.TranslationalStiffnessByAreaX):null,e.TranslationalStiffnessByAreaY?sD(e.TranslationalStiffnessByAreaY):null,e.TranslationalStiffnessByAreaZ?sD(e.TranslationalStiffnessByAreaZ):null],1387855156:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null],2069777674:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null,e.WarpingStiffness?sD(e.WarpingStiffness):null],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],775493141:e=>[e.VolumeOnRelatingElement,e.VolumeOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1785450214:e=>[e.SourceCRS,e.TargetCRS],1466758467:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],4294318154:e=>[],3200245327:e=>[e.Location,e.Identification,e.Name],2242383968:e=>[e.Location,e.Identification,e.Name],1040185647:e=>[e.Location,e.Identification,e.Name],3548104201:e=>[e.Location,e.Identification,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.Location,e.Description],3452421091:e=>[e.Location,e.Identification,e.Name,e.Description,e.Language,e.ReferencedLibrary],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],3057273783:e=>[e.SourceCRS,e.TargetCRS,e.Eastings,e.Northings,e.OrthogonalHeight,e.XAxisAbscissa,e.XAxisOrdinate,e.Scale],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],760658860:e=>[],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority]},3303938423:e=>[e.MaterialLayers,e.LayerSetName,e.Description],1847252529:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority,e.OffsetDirection,e.OffsetValues]},2199411900:e=>[e.Materials],2235152071:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category],164193824:e=>[e.Name,e.Description,e.MaterialProfiles,e.CompositeProfile],552965576:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category,e.OffsetValues],1507914824:e=>[],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue,e.ReferencePath],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.LogicalAggregator,e.ObjectiveQualifier,e.UserDefinedQualifier],4251960020:e=>[e.Identification,e.Name,e.Description,e.Roles,e.Addresses],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Identification,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],677532197:e=>[],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>{var t,s,n;return[e.Name,e.Description,e.AssignedItems,e.Identifier,null==(t=e.LayerOn)?void 0:t.toString(),null==(s=e.LayerFrozen)?void 0:s.toString(),null==(n=e.LayerBlocked)?void 0:n.toString(),e.LayerStyles]},3119450353:e=>[e.Name],2417041796:e=>[e.Styles],2095639259:e=>[e.Name,e.Description,e.Representations],3958567839:e=>[e.ProfileType,e.ProfileName],3843373140:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum,e.MapProjection,e.MapZone,e.MapUnit],986844984:e=>[],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue,e.Formula],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue,e.Formula],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue,e.Formula],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue,e.Formula],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue,e.Formula],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue,e.Formula],3915482550:e=>[e.RecurrenceType,e.DayComponent,e.WeekdayComponent,e.MonthComponent,e.Position,e.Interval,e.Occurrences,e.TimePeriods],2433181523:e=>[e.TypeIdentifier,e.AttributeIdentifier,e.InstanceName,e.ListPositions,e.InnerReference],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],2439245199:e=>[e.Name,e.Description],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],1054537805:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin],867548509:e=>{var t;return[e.ShapeRepresentations,e.Name,e.Description,null==(t=e.ProductDefinitional)?void 0:t.toString(),e.PartOfProductDefinitionShape]},3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2273995522:e=>[e.Name],2162789131:e=>[e.Name],3478079324:e=>[e.Name,e.Values,e.Locations],609421318:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaTConstant,e.DeltaTY,e.DeltaTZ],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2934153892:e=>[e.Name,e.SurfaceReinforcement1,e.SurfaceReinforcement2,e.ShearReinforcement],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour,e.Transparency],1351298697:e=>[e.Textures],626085974:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter]},985171141:e=>[e.Name,e.Rows,e.Columns],2043862942:e=>[e.Identifier,e.Name,e.Description,e.Unit,e.ReferencePath],531007025:e=>{var t;return[e.RowCells?e.RowCells.map((e=>sD(e))):null,null==(t=e.IsHeading)?void 0:t.toString()]},1549132990:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion]},2771591690:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion,e.Recurrence]},912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL,e.MessagingIDs],1447204868:e=>{var t;return[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],280115917:e=>[e.Maps],1742049831:e=>[e.Maps,e.Mode,e.Parameter],2552916305:e=>[e.Maps,e.Vertices,e.MappedTo],1210645708:e=>[e.Coordinates],3611470254:e=>[e.TexCoordsList],1199560280:e=>[e.StartTime,e.EndTime],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1236880293:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.RecurrencePattern,e.Start,e.Finish],3869604511:e=>[e.Name,e.Description,e.RelatingApproval,e.RelatedApprovals],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.RasterFormat,e.RasterCode]},3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name,e.Description,e.Location,e.ReferenceTokens],647927063:e=>[e.Location,e.Identification,e.Name,e.ReferencedSource,e.Description,e.Sort],3285139300:e=>[e.ColourList],3264961684:e=>[e.Name],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],2713554722:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor,e.ConversionOffset],539742890:e=>[e.Name,e.Description,e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],3800577675:e=>{var t;return[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],1154170062:e=>[e.Identification,e.Name,e.Description,e.Location,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.Name,e.Description,e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3732053477:e=>[e.Location,e.Identification,e.Name,e.Description,e.ReferencedDocument],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,null==(t=e.SameSense)?void 0:t.toString()]},211053100:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ActualDate,e.EarlyDate,e.LateDate,e.ScheduleDate],297599258:e=>[e.Name,e.Description,e.Properties],1437805879:e=>[e.Name,e.Description,e.RelatingReference,e.RelatedResourceObjects],2556980723:e=>[e.Bounds],1809719519:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},803316827:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},3008276851:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>{var t;return[e.Name,e.FillStyles,null==(t=e.ModelorDraughting)?void 0:t.toString()]},3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementLocation,e.PlacementRefDirection],812098782:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString()]},3905492369:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.URLReference]},3570813810:e=>[e.MappedTo,e.Opacity,e.Colours,e.ColourIndex],1437953363:e=>[e.Maps,e.MappedTo,e.TexCoords],2133299955:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndex],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1585845231:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,sD(e.LagValue),e.DurationType],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],1838606355:e=>[e.Name,e.Description,e.Category],3708119e3:e=>[e.Name,e.Description,e.Material,e.Fraction,e.Category],2852063980:e=>[e.Name,e.Description,e.MaterialConstituents],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine,e.ReferenceExtent],3079605661:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent],3404854881:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent,e.ForProfileEndSet,e.CardinalEndPoint],3265635763:e=>[e.Name,e.Description,e.Properties,e.Material],853536259:e=>[e.Name,e.Description,e.RelatingMaterial,e.RelatedMaterials,e.Expression],2998442950:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2665983363:e=>[e.CfsFaces],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1029017970:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeElement,null==(t=e.Orientation)?void 0:t.toString()]},2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.Width,e.Height,e.ColourComponents,e.Pixel]},2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Position,e.PolygonalBoundary]},3727388367:e=>[e.Name],3778827333:e=>[],1775413392:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],2802850158:e=>[e.Name,e.Description,e.Properties,e.ProfileDefinition],2598011224:e=>[e.Name,e.Description],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],148025276:e=>[e.Name,e.Description,e.DependingProperty,e.DependantProperty,e.Expression],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1482703590:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2090586900:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2943643501:e=>[e.Name,e.Description,e.RelatedResourceObjects,e.RelatingApproval],1608871552:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedResourceObjects],1042787934:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ScheduleWork,e.ScheduleUsage,e.ScheduleStart,e.ScheduleFinish,e.ScheduleContour,e.LevelingDelay,null==(t=e.IsOverAllocated)?void 0:t.toString(),e.StatusTime,e.ActualWork,e.ActualUsage,e.ActualStart,e.ActualFinish,e.RemainingWork,e.RemainingUsage,e.Completion]},2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],4124623270:e=>[e.SbsmBoundary],3692461612:e=>[e.Name,e.Description],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],1096409881:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam,e.FilletRadius],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope],901063453:e=>[],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],3736923433:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],3698973494:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],1299126871:e=>{var t,s;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ConstructionType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),null==(s=e.Sizeable)?void 0:s.toString()]},2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3406155212:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},669184980:e=>[e.OuterBoundary,e.InnerBoundaries],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomFlangeWidth,e.OverallDepth,e.WebThickness,e.BottomFlangeThickness,e.BottomFlangeFilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.BottomFlangeEdgeRadius,e.BottomFlangeSlope,e.TopFlangeEdgeRadius,e.TopFlangeSlope],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Enclosure]},2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius],1123145078:e=>[e.Coordinates],574549367:e=>[],1675464909:e=>[e.CoordList],2059837836:e=>[e.CoordList],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Description,e.UsageName,e.HasProperties],2485617015:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve]},2574617495:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity],3419103109:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],1815067380:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],2629017746:e=>{var t;return[e.BasisSurface,e.Boundaries,null==(t=e.ImplicitOuter)?void 0:t.toString()]},32440307:e=>[e.DirectionRatios],526551008:e=>{var t,s;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.OperationType,e.ConstructionType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),null==(s=e.Sizeable)?void 0:s.toString()]},1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],4024345920:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2804161546:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth,e.EndSweptArea],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],2652556860:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.FixedReference],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace,e.PredefinedType],4095422895:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.FlangeSlope],178912537:e=>[e.CoordIndex],2294589976:e=>[e.CoordIndex,e.InnerCoordIndices],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope],428585644:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3388369263:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString()]},3505215534:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString(),e.RefDirection]},1682466193:e=>[e.BasisSurface,e.ReferenceCurve],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],759155922:e=>[e.Name],2559016684:e=>[e.Name],3967405729:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],569719735:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],653396225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],871118103:e=>[e.Name,e.Description,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit,e.SetPointValue?sD(e.SetPointValue):null],4166981789:e=>[e.Name,e.Description,e.EnumerationValues?e.EnumerationValues.map((e=>sD(e))):null,e.EnumerationReference],2752243245:e=>[e.Name,e.Description,e.ListValues?e.ListValues.map((e=>sD(e))):null,e.Unit],941946838:e=>[e.Name,e.Description,e.UsageName,e.PropertyReference],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],492091185:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.ApplicableEntity,e.HasPropertyTemplates],3650150729:e=>[e.Name,e.Description,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Description,e.DefiningValues?e.DefiningValues.map((e=>sD(e))):null,e.DefinedValues?e.DefinedValues.map((e=>sD(e))):null,e.Expression,e.DefiningUnit,e.DefinedUnit,e.CurveInterpolation],3521284610:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3219374653:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.ProxyType,e.Tag],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>{var t,s;return[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,null==(t=e.Usense)?void 0:t.toString(),null==(s=e.Vsense)?void 0:s.toString()]},3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],1027710054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup,e.Factor],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedCoverings],2565941209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingContext,e.RelatedDefinitions],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1462361463:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingObject],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],307848117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedPropertySets,e.RelatingTemplate],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],427948657:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedElement,e.InterferenceGeometry,e.InterferenceType,e.ImpliedOrder],3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType,e.UserDefinedSequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],3523091289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary],1521410863:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary,e.CorrespondingBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],816062949:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve,e.ParamLength]},2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],3243963512:e=>[e.SweptArea,e.Position,e.Axis,e.Angle,e.EndSweptArea],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],3663146110:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.PrimaryMeasureType,e.SecondaryMeasureType,e.Enumerators,e.PrimaryUnit,e.SecondaryUnit,e.Expression,e.AccessState],1412071761:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],710998568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],463610769:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],2481509218:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],451544542:e=>[e.Position,e.Radius],4015995234:e=>[e.Position,e.Radius],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],603775116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],4095615324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],699246055:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3473067441:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Status,e.WorkMethod,null==(t=e.IsMilestone)?void 0:t.toString(),e.Priority,e.TaskTime,e.PredefinedType]},3206491090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.WorkMethod],2387106220:e=>[e.Coordinates],1935646853:e=>[e.Position,e.MajorRadius,e.MinorRadius],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2916149573:e=>{var t;return[e.Coordinates,e.Normals,null==(t=e.Closed)?void 0:t.toString(),e.CoordIndex,e.PnIndex]},336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle,e.LiningOffset,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1635779807:e=>[e.Outer],2603310189:e=>[e.Outer,e.Voids],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2887950389:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString()]},167062518:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec]},1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],1950629157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],2197970202:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],3893394355:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3875453745:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.UsageName,e.TemplateType,e.HasPropertyTemplates],3732776249:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},15328376:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},2510884976:e=>[e.Position],2185764099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],4105962743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1525564444:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.CostValues,e.CostQuantities],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.SubmittedOn,e.UpdateDate],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1213902940:e=>[e.Position,e.Radius],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],2323601079:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedOperationType]},445594917:e=>[e.Name],4006246654:e=>[e.Name],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],2397081782:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],132023988:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4148101412:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType,e.EventOccurenceTime],2853485674:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1893162501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1509553395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3493046030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes,e.PredefinedType],2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2571569899:e=>{var t;return[e.Points,e.Segments?e.Segments.map((e=>sD(e))):null,null==(t=e.SelfIntersect)?void 0:t.toString()]},3946677679:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3113134337:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength,e.PredefinedType],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.NominalLength],1114901282:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3079942009:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LifeCyclePhase,e.PredefinedType],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1158309216:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2839578677:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Faces,e.PnIndex]},3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1469900589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],683857671:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec,e.WeightsData]},3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],964333572:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.PredefinedType],2310774935:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2781568857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2157484638:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],4074543187:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1072016465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],338393293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1004757350:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.Axis],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2757150158:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],1807405624:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],2082059205:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.ConditionCoordinateSystem],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,null==(t=e.IsLinear)?void 0:t.toString()]},3657597509:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],3101698114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],413509423:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],3081323446:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2415094496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.SheathDiameter],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3593883385:e=>{var t;return[e.BasisCurve,e.Trim1,e.Trim2,null==(t=e.SenseAgreement)?void 0:t.toString(),e.MasterRepresentation]},1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391383451:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],926996030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4009809668:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.PartitioningType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedPartitioningType]},4088093105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.WorkingTimes,e.ExceptionTimes,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1532957894:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1967976161:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString()]},2461110595:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec]},819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1136057603:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3299480353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],39481116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1177604601:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],2188180465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2674252688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3296154744:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],1677625105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],905975707:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],400855858:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection,e.PredefinedType,e.SystemType],3205830791:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],3242481149:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2417008758:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2814081492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3747195512:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],484807127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1209101575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188021234:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3319311131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2068733104:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4175244083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2176052936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],76236018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],629592764:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1437502449:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1911478936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2474470126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],144952367:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3694346114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],310824031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3612865200:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1156407060:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],738039164:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],655969474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],90941305:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1232101972:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec,e.WeightsData]},979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.PredefinedType,e.BarSurface],2572171363:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarSurface,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3053780830:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1329646415:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3127900445:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3027962421:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3420628829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1999602285:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1404847402:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRisers,e.NumberOfTreads,e.RiserHeight,e.TreadLength,e.PredefinedType],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults,e.SharedPlacement],385403989:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose,e.SelfWeightCoefficients],1621171031:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1162798199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],812556717:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3825984169:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3026737570:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3179687236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4292641817:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4207607924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4156078855:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4237592921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],486154966:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634111441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],177149247:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2056796094:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],277319702:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2906023776:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],32344328:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2938176219:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],635142910:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3758799889:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1051757585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4217484030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3902619387:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],639361253:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3221913625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3571504051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2272882330:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4136498852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3640358203:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4074379575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],562808652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],342316401:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3518393246:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1360408905:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1904799276:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],862014818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3310460725:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],264262732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],402227799:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1003880860:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3415622556:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],819412036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1426591983:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],182646315:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2295281155:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4086658281:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],630975310:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4288193352:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3087945054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],25142252:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType]},$b[2]={3699917729:e=>new ub.IfcAbsorbedDoseMeasure(e),4182062534:e=>new ub.IfcAccelerationMeasure(e),360377573:e=>new ub.IfcAmountOfSubstanceMeasure(e),632304761:e=>new ub.IfcAngularVelocityMeasure(e),3683503648:e=>new ub.IfcArcIndex(e),1500781891:e=>new ub.IfcAreaDensityMeasure(e),2650437152:e=>new ub.IfcAreaMeasure(e),2314439260:e=>new ub.IfcBinary(e),2735952531:e=>new ub.IfcBoolean(e),1867003952:e=>new ub.IfcBoxAlignment(e),1683019596:e=>new ub.IfcCardinalPointReference(e),2991860651:e=>new ub.IfcComplexNumber(e),3812528620:e=>new ub.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new ub.IfcContextDependentMeasure(e),1778710042:e=>new ub.IfcCountMeasure(e),94842927:e=>new ub.IfcCurvatureMeasure(e),937566702:e=>new ub.IfcDate(e),2195413836:e=>new ub.IfcDateTime(e),86635668:e=>new ub.IfcDayInMonthNumber(e),3701338814:e=>new ub.IfcDayInWeekNumber(e),1514641115:e=>new ub.IfcDescriptiveMeasure(e),4134073009:e=>new ub.IfcDimensionCount(e),524656162:e=>new ub.IfcDoseEquivalentMeasure(e),2541165894:e=>new ub.IfcDuration(e),69416015:e=>new ub.IfcDynamicViscosityMeasure(e),1827137117:e=>new ub.IfcElectricCapacitanceMeasure(e),3818826038:e=>new ub.IfcElectricChargeMeasure(e),2093906313:e=>new ub.IfcElectricConductanceMeasure(e),3790457270:e=>new ub.IfcElectricCurrentMeasure(e),2951915441:e=>new ub.IfcElectricResistanceMeasure(e),2506197118:e=>new ub.IfcElectricVoltageMeasure(e),2078135608:e=>new ub.IfcEnergyMeasure(e),1102727119:e=>new ub.IfcFontStyle(e),2715512545:e=>new ub.IfcFontVariant(e),2590844177:e=>new ub.IfcFontWeight(e),1361398929:e=>new ub.IfcForceMeasure(e),3044325142:e=>new ub.IfcFrequencyMeasure(e),3064340077:e=>new ub.IfcGloballyUniqueId(e),3113092358:e=>new ub.IfcHeatFluxDensityMeasure(e),1158859006:e=>new ub.IfcHeatingValueMeasure(e),983778844:e=>new ub.IfcIdentifier(e),3358199106:e=>new ub.IfcIlluminanceMeasure(e),2679005408:e=>new ub.IfcInductanceMeasure(e),1939436016:e=>new ub.IfcInteger(e),3809634241:e=>new ub.IfcIntegerCountRateMeasure(e),3686016028:e=>new ub.IfcIonConcentrationMeasure(e),3192672207:e=>new ub.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new ub.IfcKinematicViscosityMeasure(e),3258342251:e=>new ub.IfcLabel(e),1275358634:e=>new ub.IfcLanguageId(e),1243674935:e=>new ub.IfcLengthMeasure(e),1774176899:e=>new ub.IfcLineIndex(e),191860431:e=>new ub.IfcLinearForceMeasure(e),2128979029:e=>new ub.IfcLinearMomentMeasure(e),1307019551:e=>new ub.IfcLinearStiffnessMeasure(e),3086160713:e=>new ub.IfcLinearVelocityMeasure(e),503418787:e=>new ub.IfcLogical(e),2095003142:e=>new ub.IfcLuminousFluxMeasure(e),2755797622:e=>new ub.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new ub.IfcLuminousIntensityMeasure(e),286949696:e=>new ub.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new ub.IfcMagneticFluxMeasure(e),1477762836:e=>new ub.IfcMassDensityMeasure(e),4017473158:e=>new ub.IfcMassFlowRateMeasure(e),3124614049:e=>new ub.IfcMassMeasure(e),3531705166:e=>new ub.IfcMassPerLengthMeasure(e),3341486342:e=>new ub.IfcModulusOfElasticityMeasure(e),2173214787:e=>new ub.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new ub.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new ub.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new ub.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new ub.IfcMolecularWeightMeasure(e),3114022597:e=>new ub.IfcMomentOfInertiaMeasure(e),2615040989:e=>new ub.IfcMonetaryMeasure(e),765770214:e=>new ub.IfcMonthInYearNumber(e),525895558:e=>new ub.IfcNonNegativeLengthMeasure(e),2095195183:e=>new ub.IfcNormalisedRatioMeasure(e),2395907400:e=>new ub.IfcNumericMeasure(e),929793134:e=>new ub.IfcPHMeasure(e),2260317790:e=>new ub.IfcParameterValue(e),2642773653:e=>new ub.IfcPlanarForceMeasure(e),4042175685:e=>new ub.IfcPlaneAngleMeasure(e),1790229001:e=>new ub.IfcPositiveInteger(e),2815919920:e=>new ub.IfcPositiveLengthMeasure(e),3054510233:e=>new ub.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new ub.IfcPositiveRatioMeasure(e),1364037233:e=>new ub.IfcPowerMeasure(e),2169031380:e=>new ub.IfcPresentableText(e),3665567075:e=>new ub.IfcPressureMeasure(e),2798247006:e=>new ub.IfcPropertySetDefinitionSet(e),3972513137:e=>new ub.IfcRadioActivityMeasure(e),96294661:e=>new ub.IfcRatioMeasure(e),200335297:e=>new ub.IfcReal(e),2133746277:e=>new ub.IfcRotationalFrequencyMeasure(e),1755127002:e=>new ub.IfcRotationalMassMeasure(e),3211557302:e=>new ub.IfcRotationalStiffnessMeasure(e),3467162246:e=>new ub.IfcSectionModulusMeasure(e),2190458107:e=>new ub.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new ub.IfcShearModulusMeasure(e),3471399674:e=>new ub.IfcSolidAngleMeasure(e),4157543285:e=>new ub.IfcSoundPowerLevelMeasure(e),846465480:e=>new ub.IfcSoundPowerMeasure(e),3457685358:e=>new ub.IfcSoundPressureLevelMeasure(e),993287707:e=>new ub.IfcSoundPressureMeasure(e),3477203348:e=>new ub.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new ub.IfcSpecularExponent(e),361837227:e=>new ub.IfcSpecularRoughness(e),58845555:e=>new ub.IfcTemperatureGradientMeasure(e),1209108979:e=>new ub.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new ub.IfcText(e),1460886941:e=>new ub.IfcTextAlignment(e),3490877962:e=>new ub.IfcTextDecoration(e),603696268:e=>new ub.IfcTextFontName(e),296282323:e=>new ub.IfcTextTransformation(e),232962298:e=>new ub.IfcThermalAdmittanceMeasure(e),2645777649:e=>new ub.IfcThermalConductivityMeasure(e),2281867870:e=>new ub.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new ub.IfcThermalResistanceMeasure(e),2016195849:e=>new ub.IfcThermalTransmittanceMeasure(e),743184107:e=>new ub.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new ub.IfcTime(e),2726807636:e=>new ub.IfcTimeMeasure(e),2591213694:e=>new ub.IfcTimeStamp(e),1278329552:e=>new ub.IfcTorqueMeasure(e),950732822:e=>new ub.IfcURIReference(e),3345633955:e=>new ub.IfcVaporPermeabilityMeasure(e),3458127941:e=>new ub.IfcVolumeMeasure(e),2593997549:e=>new ub.IfcVolumetricFlowRateMeasure(e),51269191:e=>new ub.IfcWarpingConstantMeasure(e),1718600412:e=>new ub.IfcWarpingMomentMeasure(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcArcIndex=class{constructor(e){this.value=e}};e.IfcAreaDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBinary=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcCardinalPointReference=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDate=class{constructor(e){this.value=e,this.type=1}};e.IfcDateTime=class{constructor(e){this.value=e,this.type=1}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInWeekNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDuration=class{constructor(e){this.value=e,this.type=1}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLanguageId=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLineIndex=class{constructor(e){this.value=e}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNonNegativeLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPropertySetDefinitionSet=class{constructor(e){this.value=e}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureRateOfChangeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTime=class{constructor(e){this.value=e,this.type=1}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcURIReference=class{constructor(e){this.value=e,this.type=1}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.EMAIL={type:3,value:"EMAIL"},s.FAX={type:3,value:"FAX"},s.PHONE={type:3,value:"PHONE"},s.POST={type:3,value:"POST"},s.VERBAL={type:3,value:"VERBAL"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionRequestTypeEnum=s;class n{}n.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},n.COMPLETION_G1={type:3,value:"COMPLETION_G1"},n.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},n.SNOW_S={type:3,value:"SNOW_S"},n.WIND_W={type:3,value:"WIND_W"},n.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},n.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},n.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},n.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},n.FIRE={type:3,value:"FIRE"},n.IMPULSE={type:3,value:"IMPULSE"},n.IMPACT={type:3,value:"IMPACT"},n.TRANSPORT={type:3,value:"TRANSPORT"},n.ERECTION={type:3,value:"ERECTION"},n.PROPPING={type:3,value:"PROPPING"},n.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},n.SHRINKAGE={type:3,value:"SHRINKAGE"},n.CREEP={type:3,value:"CREEP"},n.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},n.BUOYANCY={type:3,value:"BUOYANCY"},n.ICE={type:3,value:"ICE"},n.CURRENT={type:3,value:"CURRENT"},n.WAVE={type:3,value:"WAVE"},n.RAIN={type:3,value:"RAIN"},n.BRAKES={type:3,value:"BRAKES"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=n;class i{}i.PERMANENT_G={type:3,value:"PERMANENT_G"},i.VARIABLE_Q={type:3,value:"VARIABLE_Q"},i.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=i;class a{}a.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},a.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},a.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},a.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},a.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=a;class r{}r.OFFICE={type:3,value:"OFFICE"},r.SITE={type:3,value:"SITE"},r.HOME={type:3,value:"HOME"},r.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},r.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.DIFFUSER={type:3,value:"DIFFUSER"},o.GRILLE={type:3,value:"GRILLE"},o.LOUVRE={type:3,value:"LOUVRE"},o.REGISTER={type:3,value:"REGISTER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},h.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},h.LOADING_3D={type:3,value:"LOADING_3D"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=h;class p{}p.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},p.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},p.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},p.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=p;class A{}A.ADD={type:3,value:"ADD"},A.DIVIDE={type:3,value:"DIVIDE"},A.MULTIPLY={type:3,value:"MULTIPLY"},A.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=A;class d{}d.SITE={type:3,value:"SITE"},d.FACTORY={type:3,value:"FACTORY"},d.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=d;class f{}f.AMPLIFIER={type:3,value:"AMPLIFIER"},f.CAMERA={type:3,value:"CAMERA"},f.DISPLAY={type:3,value:"DISPLAY"},f.MICROPHONE={type:3,value:"MICROPHONE"},f.PLAYER={type:3,value:"PLAYER"},f.PROJECTOR={type:3,value:"PROJECTOR"},f.RECEIVER={type:3,value:"RECEIVER"},f.SPEAKER={type:3,value:"SPEAKER"},f.SWITCHER={type:3,value:"SWITCHER"},f.TELEPHONE={type:3,value:"TELEPHONE"},f.TUNER={type:3,value:"TUNER"},f.USERDEFINED={type:3,value:"USERDEFINED"},f.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=f;class I{}I.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},I.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},I.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},I.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},I.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},I.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=I;class y{}y.PLANE_SURF={type:3,value:"PLANE_SURF"},y.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},y.CONICAL_SURF={type:3,value:"CONICAL_SURF"},y.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},y.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},y.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},y.RULED_SURF={type:3,value:"RULED_SURF"},y.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},y.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},y.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},y.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=y;class m{}m.BEAM={type:3,value:"BEAM"},m.JOIST={type:3,value:"JOIST"},m.HOLLOWCORE={type:3,value:"HOLLOWCORE"},m.LINTEL={type:3,value:"LINTEL"},m.SPANDREL={type:3,value:"SPANDREL"},m.T_BEAM={type:3,value:"T_BEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=m;class v{}v.GREATERTHAN={type:3,value:"GREATERTHAN"},v.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},v.LESSTHAN={type:3,value:"LESSTHAN"},v.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},v.EQUALTO={type:3,value:"EQUALTO"},v.NOTEQUALTO={type:3,value:"NOTEQUALTO"},v.INCLUDES={type:3,value:"INCLUDES"},v.NOTINCLUDES={type:3,value:"NOTINCLUDES"},v.INCLUDEDIN={type:3,value:"INCLUDEDIN"},v.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},e.IfcBenchmarkEnum=v;class w{}w.WATER={type:3,value:"WATER"},w.STEAM={type:3,value:"STEAM"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=w;class g{}g.UNION={type:3,value:"UNION"},g.INTERSECTION={type:3,value:"INTERSECTION"},g.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=g;class E{}E.INSULATION={type:3,value:"INSULATION"},E.PRECASTPANEL={type:3,value:"PRECASTPANEL"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=E;class T{}T.COMPLEX={type:3,value:"COMPLEX"},T.ELEMENT={type:3,value:"ELEMENT"},T.PARTIAL={type:3,value:"PARTIAL"},T.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},T.PROVISIONFORSPACE={type:3,value:"PROVISIONFORSPACE"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=T;class b{}b.FENESTRATION={type:3,value:"FENESTRATION"},b.FOUNDATION={type:3,value:"FOUNDATION"},b.LOADBEARING={type:3,value:"LOADBEARING"},b.OUTERSHELL={type:3,value:"OUTERSHELL"},b.SHADING={type:3,value:"SHADING"},b.TRANSPORT={type:3,value:"TRANSPORT"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=b;class D{}D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=D;class P{}P.BEND={type:3,value:"BEND"},P.CROSS={type:3,value:"CROSS"},P.REDUCER={type:3,value:"REDUCER"},P.TEE={type:3,value:"TEE"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=P;class R{}R.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},R.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},R.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},R.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=R;class C{}C.CONNECTOR={type:3,value:"CONNECTOR"},C.ENTRY={type:3,value:"ENTRY"},C.EXIT={type:3,value:"EXIT"},C.JUNCTION={type:3,value:"JUNCTION"},C.TRANSITION={type:3,value:"TRANSITION"},C.USERDEFINED={type:3,value:"USERDEFINED"},C.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=C;class _{}_.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},_.CABLESEGMENT={type:3,value:"CABLESEGMENT"},_.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},_.CORESEGMENT={type:3,value:"CORESEGMENT"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=_;class B{}B.NOCHANGE={type:3,value:"NOCHANGE"},B.MODIFIED={type:3,value:"MODIFIED"},B.ADDED={type:3,value:"ADDED"},B.DELETED={type:3,value:"DELETED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=B;class O{}O.AIRCOOLED={type:3,value:"AIRCOOLED"},O.WATERCOOLED={type:3,value:"WATERCOOLED"},O.HEATRECOVERY={type:3,value:"HEATRECOVERY"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=O;class S{}S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=S;class N{}N.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},N.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},N.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},N.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},N.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},N.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},N.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=N;class x{}x.COLUMN={type:3,value:"COLUMN"},x.PILASTER={type:3,value:"PILASTER"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=x;class L{}L.ANTENNA={type:3,value:"ANTENNA"},L.COMPUTER={type:3,value:"COMPUTER"},L.FAX={type:3,value:"FAX"},L.GATEWAY={type:3,value:"GATEWAY"},L.MODEM={type:3,value:"MODEM"},L.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},L.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},L.NETWORKHUB={type:3,value:"NETWORKHUB"},L.PRINTER={type:3,value:"PRINTER"},L.REPEATER={type:3,value:"REPEATER"},L.ROUTER={type:3,value:"ROUTER"},L.SCANNER={type:3,value:"SCANNER"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=L;class M{}M.P_COMPLEX={type:3,value:"P_COMPLEX"},M.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=M;class F{}F.DYNAMIC={type:3,value:"DYNAMIC"},F.RECIPROCATING={type:3,value:"RECIPROCATING"},F.ROTARY={type:3,value:"ROTARY"},F.SCROLL={type:3,value:"SCROLL"},F.TROCHOIDAL={type:3,value:"TROCHOIDAL"},F.SINGLESTAGE={type:3,value:"SINGLESTAGE"},F.BOOSTER={type:3,value:"BOOSTER"},F.OPENTYPE={type:3,value:"OPENTYPE"},F.HERMETIC={type:3,value:"HERMETIC"},F.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},F.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},F.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},F.ROTARYVANE={type:3,value:"ROTARYVANE"},F.SINGLESCREW={type:3,value:"SINGLESCREW"},F.TWINSCREW={type:3,value:"TWINSCREW"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=F;class H{}H.AIRCOOLED={type:3,value:"AIRCOOLED"},H.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},H.WATERCOOLED={type:3,value:"WATERCOOLED"},H.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},H.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},H.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},H.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=H;class U{}U.ATPATH={type:3,value:"ATPATH"},U.ATSTART={type:3,value:"ATSTART"},U.ATEND={type:3,value:"ATEND"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=U;class G{}G.HARD={type:3,value:"HARD"},G.SOFT={type:3,value:"SOFT"},G.ADVISORY={type:3,value:"ADVISORY"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=G;class j{}j.DEMOLISHING={type:3,value:"DEMOLISHING"},j.EARTHMOVING={type:3,value:"EARTHMOVING"},j.ERECTING={type:3,value:"ERECTING"},j.HEATING={type:3,value:"HEATING"},j.LIGHTING={type:3,value:"LIGHTING"},j.PAVING={type:3,value:"PAVING"},j.PUMPING={type:3,value:"PUMPING"},j.TRANSPORTING={type:3,value:"TRANSPORTING"},j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=j;class V{}V.AGGREGATES={type:3,value:"AGGREGATES"},V.CONCRETE={type:3,value:"CONCRETE"},V.DRYWALL={type:3,value:"DRYWALL"},V.FUEL={type:3,value:"FUEL"},V.GYPSUM={type:3,value:"GYPSUM"},V.MASONRY={type:3,value:"MASONRY"},V.METAL={type:3,value:"METAL"},V.PLASTIC={type:3,value:"PLASTIC"},V.WOOD={type:3,value:"WOOD"},V.NOTDEFINED={type:3,value:"NOTDEFINED"},V.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcConstructionMaterialResourceTypeEnum=V;class k{}k.ASSEMBLY={type:3,value:"ASSEMBLY"},k.FORMWORK={type:3,value:"FORMWORK"},k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=k;class Q{}Q.FLOATING={type:3,value:"FLOATING"},Q.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},Q.PROPORTIONAL={type:3,value:"PROPORTIONAL"},Q.MULTIPOSITION={type:3,value:"MULTIPOSITION"},Q.TWOPOSITION={type:3,value:"TWOPOSITION"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=Q;class W{}W.ACTIVE={type:3,value:"ACTIVE"},W.PASSIVE={type:3,value:"PASSIVE"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=W;class z{}z.NATURALDRAFT={type:3,value:"NATURALDRAFT"},z.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},z.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},z.USERDEFINED={type:3,value:"USERDEFINED"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=z;class K{}K.USERDEFINED={type:3,value:"USERDEFINED"},K.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=K;class Y{}Y.BUDGET={type:3,value:"BUDGET"},Y.COSTPLAN={type:3,value:"COSTPLAN"},Y.ESTIMATE={type:3,value:"ESTIMATE"},Y.TENDER={type:3,value:"TENDER"},Y.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},Y.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},Y.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},Y.USERDEFINED={type:3,value:"USERDEFINED"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=Y;class X{}X.CEILING={type:3,value:"CEILING"},X.FLOORING={type:3,value:"FLOORING"},X.CLADDING={type:3,value:"CLADDING"},X.ROOFING={type:3,value:"ROOFING"},X.MOLDING={type:3,value:"MOLDING"},X.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},X.INSULATION={type:3,value:"INSULATION"},X.MEMBRANE={type:3,value:"MEMBRANE"},X.SLEEVING={type:3,value:"SLEEVING"},X.WRAPPING={type:3,value:"WRAPPING"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=X;class q{}q.OFFICE={type:3,value:"OFFICE"},q.SITE={type:3,value:"SITE"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=q;class J{}J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=J;class Z{}Z.LINEAR={type:3,value:"LINEAR"},Z.LOG_LINEAR={type:3,value:"LOG_LINEAR"},Z.LOG_LOG={type:3,value:"LOG_LOG"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=Z;class ${}$.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},$.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},$.BLASTDAMPER={type:3,value:"BLASTDAMPER"},$.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},$.FIREDAMPER={type:3,value:"FIREDAMPER"},$.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},$.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},$.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},$.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},$.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},$.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=$;class ee{}ee.MEASURED={type:3,value:"MEASURED"},ee.PREDICTED={type:3,value:"PREDICTED"},ee.SIMULATED={type:3,value:"SIMULATED"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=ee;class te{}te.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},te.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},te.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},te.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},te.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},te.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},te.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},te.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},te.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},te.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},te.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},te.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},te.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},te.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},te.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},te.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},te.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},te.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},te.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},te.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},te.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},te.TORQUEUNIT={type:3,value:"TORQUEUNIT"},te.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},te.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},te.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},te.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},te.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},te.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},te.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},te.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},te.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},te.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},te.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},te.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},te.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},te.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},te.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},te.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},te.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},te.PHUNIT={type:3,value:"PHUNIT"},te.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},te.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},te.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},te.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},te.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},te.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},te.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},te.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},te.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},te.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},te.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},te.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},te.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=te;class se{}se.POSITIVE={type:3,value:"POSITIVE"},se.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=se;class ne{}ne.ANCHORPLATE={type:3,value:"ANCHORPLATE"},ne.BRACKET={type:3,value:"BRACKET"},ne.SHOE={type:3,value:"SHOE"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=ne;class ie{}ie.FORMEDDUCT={type:3,value:"FORMEDDUCT"},ie.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},ie.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},ie.MANHOLE={type:3,value:"MANHOLE"},ie.METERCHAMBER={type:3,value:"METERCHAMBER"},ie.SUMP={type:3,value:"SUMP"},ie.TRENCH={type:3,value:"TRENCH"},ie.VALVECHAMBER={type:3,value:"VALVECHAMBER"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=ie;class ae{}ae.CABLE={type:3,value:"CABLE"},ae.CABLECARRIER={type:3,value:"CABLECARRIER"},ae.DUCT={type:3,value:"DUCT"},ae.PIPE={type:3,value:"PIPE"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ae;class re{}re.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},re.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},re.CHEMICAL={type:3,value:"CHEMICAL"},re.CHILLEDWATER={type:3,value:"CHILLEDWATER"},re.COMMUNICATION={type:3,value:"COMMUNICATION"},re.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},re.CONDENSERWATER={type:3,value:"CONDENSERWATER"},re.CONTROL={type:3,value:"CONTROL"},re.CONVEYING={type:3,value:"CONVEYING"},re.DATA={type:3,value:"DATA"},re.DISPOSAL={type:3,value:"DISPOSAL"},re.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},re.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},re.DRAINAGE={type:3,value:"DRAINAGE"},re.EARTHING={type:3,value:"EARTHING"},re.ELECTRICAL={type:3,value:"ELECTRICAL"},re.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},re.EXHAUST={type:3,value:"EXHAUST"},re.FIREPROTECTION={type:3,value:"FIREPROTECTION"},re.FUEL={type:3,value:"FUEL"},re.GAS={type:3,value:"GAS"},re.HAZARDOUS={type:3,value:"HAZARDOUS"},re.HEATING={type:3,value:"HEATING"},re.LIGHTING={type:3,value:"LIGHTING"},re.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},re.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},re.OIL={type:3,value:"OIL"},re.OPERATIONAL={type:3,value:"OPERATIONAL"},re.POWERGENERATION={type:3,value:"POWERGENERATION"},re.RAINWATER={type:3,value:"RAINWATER"},re.REFRIGERATION={type:3,value:"REFRIGERATION"},re.SECURITY={type:3,value:"SECURITY"},re.SEWAGE={type:3,value:"SEWAGE"},re.SIGNAL={type:3,value:"SIGNAL"},re.STORMWATER={type:3,value:"STORMWATER"},re.TELEPHONE={type:3,value:"TELEPHONE"},re.TV={type:3,value:"TV"},re.VACUUM={type:3,value:"VACUUM"},re.VENT={type:3,value:"VENT"},re.VENTILATION={type:3,value:"VENTILATION"},re.WASTEWATER={type:3,value:"WASTEWATER"},re.WATERSUPPLY={type:3,value:"WATERSUPPLY"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=re;class le{}le.PUBLIC={type:3,value:"PUBLIC"},le.RESTRICTED={type:3,value:"RESTRICTED"},le.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},le.PERSONAL={type:3,value:"PERSONAL"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=le;class oe{}oe.DRAFT={type:3,value:"DRAFT"},oe.FINALDRAFT={type:3,value:"FINALDRAFT"},oe.FINAL={type:3,value:"FINAL"},oe.REVISION={type:3,value:"REVISION"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=oe;class ce{}ce.SWINGING={type:3,value:"SWINGING"},ce.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},ce.SLIDING={type:3,value:"SLIDING"},ce.FOLDING={type:3,value:"FOLDING"},ce.REVOLVING={type:3,value:"REVOLVING"},ce.ROLLINGUP={type:3,value:"ROLLINGUP"},ce.FIXEDPANEL={type:3,value:"FIXEDPANEL"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=ce;class ue{}ue.LEFT={type:3,value:"LEFT"},ue.MIDDLE={type:3,value:"MIDDLE"},ue.RIGHT={type:3,value:"RIGHT"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=ue;class he{}he.ALUMINIUM={type:3,value:"ALUMINIUM"},he.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},he.STEEL={type:3,value:"STEEL"},he.WOOD={type:3,value:"WOOD"},he.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},he.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},he.PLASTIC={type:3,value:"PLASTIC"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=he;class pe{}pe.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},pe.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},pe.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},pe.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},pe.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},pe.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},pe.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},pe.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},pe.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},pe.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},pe.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},pe.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},pe.REVOLVING={type:3,value:"REVOLVING"},pe.ROLLINGUP={type:3,value:"ROLLINGUP"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=pe;class Ae{}Ae.DOOR={type:3,value:"DOOR"},Ae.GATE={type:3,value:"GATE"},Ae.TRAPDOOR={type:3,value:"TRAPDOOR"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=Ae;class de{}de.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},de.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},de.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},de.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},de.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},de.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},de.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},de.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},de.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},de.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},de.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},de.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},de.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},de.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},de.REVOLVING={type:3,value:"REVOLVING"},de.ROLLINGUP={type:3,value:"ROLLINGUP"},de.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},de.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},de.USERDEFINED={type:3,value:"USERDEFINED"},de.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeOperationEnum=de;class fe{}fe.BEND={type:3,value:"BEND"},fe.CONNECTOR={type:3,value:"CONNECTOR"},fe.ENTRY={type:3,value:"ENTRY"},fe.EXIT={type:3,value:"EXIT"},fe.JUNCTION={type:3,value:"JUNCTION"},fe.OBSTRUCTION={type:3,value:"OBSTRUCTION"},fe.TRANSITION={type:3,value:"TRANSITION"},fe.USERDEFINED={type:3,value:"USERDEFINED"},fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=fe;class Ie{}Ie.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ie.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Ie;class ye{}ye.FLATOVAL={type:3,value:"FLATOVAL"},ye.RECTANGULAR={type:3,value:"RECTANGULAR"},ye.ROUND={type:3,value:"ROUND"},ye.USERDEFINED={type:3,value:"USERDEFINED"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=ye;class me{}me.DISHWASHER={type:3,value:"DISHWASHER"},me.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},me.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},me.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},me.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},me.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},me.FREEZER={type:3,value:"FREEZER"},me.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},me.HANDDRYER={type:3,value:"HANDDRYER"},me.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},me.MICROWAVE={type:3,value:"MICROWAVE"},me.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},me.REFRIGERATOR={type:3,value:"REFRIGERATOR"},me.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},me.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},me.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=me;class ve{}ve.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ve.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ve.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ve.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=ve;class we{}we.BATTERY={type:3,value:"BATTERY"},we.CAPACITORBANK={type:3,value:"CAPACITORBANK"},we.HARMONICFILTER={type:3,value:"HARMONICFILTER"},we.INDUCTORBANK={type:3,value:"INDUCTORBANK"},we.UPS={type:3,value:"UPS"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=we;class ge{}ge.CHP={type:3,value:"CHP"},ge.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},ge.STANDALONE={type:3,value:"STANDALONE"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=ge;class Ee{}Ee.DC={type:3,value:"DC"},Ee.INDUCTION={type:3,value:"INDUCTION"},Ee.POLYPHASE={type:3,value:"POLYPHASE"},Ee.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Ee.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=Ee;class Te{}Te.TIMECLOCK={type:3,value:"TIMECLOCK"},Te.TIMEDELAY={type:3,value:"TIMEDELAY"},Te.RELAY={type:3,value:"RELAY"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=Te;class be{}be.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},be.ARCH={type:3,value:"ARCH"},be.BEAM_GRID={type:3,value:"BEAM_GRID"},be.BRACED_FRAME={type:3,value:"BRACED_FRAME"},be.GIRDER={type:3,value:"GIRDER"},be.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},be.RIGID_FRAME={type:3,value:"RIGID_FRAME"},be.SLAB_FIELD={type:3,value:"SLAB_FIELD"},be.TRUSS={type:3,value:"TRUSS"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=be;class De{}De.COMPLEX={type:3,value:"COMPLEX"},De.ELEMENT={type:3,value:"ELEMENT"},De.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=De;class Pe{}Pe.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Pe.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=Pe;class Re{}Re.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Re.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Re.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Re.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Re.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Re.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Re.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Re.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Re.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Re;class Ce{}Ce.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},Ce.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Ce.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Ce.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Ce.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Ce.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=Ce;class _e{}_e.EVENTRULE={type:3,value:"EVENTRULE"},_e.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},_e.EVENTTIME={type:3,value:"EVENTTIME"},_e.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=_e;class Be{}Be.STARTEVENT={type:3,value:"STARTEVENT"},Be.ENDEVENT={type:3,value:"ENDEVENT"},Be.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Be;class Oe{}Oe.EXTERNAL={type:3,value:"EXTERNAL"},Oe.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Oe.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Oe.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=Oe;class Se{}Se.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},Se.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},Se.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},Se.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},Se.TUBEAXIAL={type:3,value:"TUBEAXIAL"},Se.VANEAXIAL={type:3,value:"VANEAXIAL"},Se.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},Se.USERDEFINED={type:3,value:"USERDEFINED"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=Se;class Ne{}Ne.GLUE={type:3,value:"GLUE"},Ne.MORTAR={type:3,value:"MORTAR"},Ne.WELD={type:3,value:"WELD"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Ne;class xe{}xe.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},xe.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},xe.ODORFILTER={type:3,value:"ODORFILTER"},xe.OILFILTER={type:3,value:"OILFILTER"},xe.STRAINER={type:3,value:"STRAINER"},xe.WATERFILTER={type:3,value:"WATERFILTER"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=xe;class Le{}Le.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Le.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Le.HOSEREEL={type:3,value:"HOSEREEL"},Le.SPRINKLER={type:3,value:"SPRINKLER"},Le.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Le;class Me{}Me.SOURCE={type:3,value:"SOURCE"},Me.SINK={type:3,value:"SINK"},Me.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=Me;class Fe{}Fe.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Fe.THERMOMETER={type:3,value:"THERMOMETER"},Fe.AMMETER={type:3,value:"AMMETER"},Fe.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Fe.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Fe.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Fe.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Fe.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Fe;class He{}He.ENERGYMETER={type:3,value:"ENERGYMETER"},He.GASMETER={type:3,value:"GASMETER"},He.OILMETER={type:3,value:"OILMETER"},He.WATERMETER={type:3,value:"WATERMETER"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=He;class Ue{}Ue.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},Ue.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},Ue.PAD_FOOTING={type:3,value:"PAD_FOOTING"},Ue.PILE_CAP={type:3,value:"PILE_CAP"},Ue.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=Ue;class Ge{}Ge.CHAIR={type:3,value:"CHAIR"},Ge.TABLE={type:3,value:"TABLE"},Ge.DESK={type:3,value:"DESK"},Ge.BED={type:3,value:"BED"},Ge.FILECABINET={type:3,value:"FILECABINET"},Ge.SHELF={type:3,value:"SHELF"},Ge.SOFA={type:3,value:"SOFA"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=Ge;class je{}je.TERRAIN={type:3,value:"TERRAIN"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=je;class Ve{}Ve.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},Ve.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},Ve.MODEL_VIEW={type:3,value:"MODEL_VIEW"},Ve.PLAN_VIEW={type:3,value:"PLAN_VIEW"},Ve.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},Ve.SECTION_VIEW={type:3,value:"SECTION_VIEW"},Ve.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},Ve.USERDEFINED={type:3,value:"USERDEFINED"},Ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=Ve;class ke{}ke.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ke.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ke;class Qe{}Qe.RECTANGULAR={type:3,value:"RECTANGULAR"},Qe.RADIAL={type:3,value:"RADIAL"},Qe.TRIANGULAR={type:3,value:"TRIANGULAR"},Qe.IRREGULAR={type:3,value:"IRREGULAR"},Qe.USERDEFINED={type:3,value:"USERDEFINED"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=Qe;class We{}We.PLATE={type:3,value:"PLATE"},We.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=We;class ze{}ze.STEAMINJECTION={type:3,value:"STEAMINJECTION"},ze.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},ze.ADIABATICPAN={type:3,value:"ADIABATICPAN"},ze.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},ze.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},ze.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},ze.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},ze.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},ze.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},ze.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},ze.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},ze.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},ze.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=ze;class Ke{}Ke.CYCLONIC={type:3,value:"CYCLONIC"},Ke.GREASE={type:3,value:"GREASE"},Ke.OIL={type:3,value:"OIL"},Ke.PETROL={type:3,value:"PETROL"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInterceptorTypeEnum=Ke;class Ye{}Ye.INTERNAL={type:3,value:"INTERNAL"},Ye.EXTERNAL={type:3,value:"EXTERNAL"},Ye.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Ye.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Ye.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Ye;class Xe{}Xe.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},Xe.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},Xe.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=Xe;class qe{}qe.DATA={type:3,value:"DATA"},qe.POWER={type:3,value:"POWER"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=qe;class Je{}Je.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},Je.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},Je.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},Je.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=Je;class Ze{}Ze.ADMINISTRATION={type:3,value:"ADMINISTRATION"},Ze.CARPENTRY={type:3,value:"CARPENTRY"},Ze.CLEANING={type:3,value:"CLEANING"},Ze.CONCRETE={type:3,value:"CONCRETE"},Ze.DRYWALL={type:3,value:"DRYWALL"},Ze.ELECTRIC={type:3,value:"ELECTRIC"},Ze.FINISHING={type:3,value:"FINISHING"},Ze.FLOORING={type:3,value:"FLOORING"},Ze.GENERAL={type:3,value:"GENERAL"},Ze.HVAC={type:3,value:"HVAC"},Ze.LANDSCAPING={type:3,value:"LANDSCAPING"},Ze.MASONRY={type:3,value:"MASONRY"},Ze.PAINTING={type:3,value:"PAINTING"},Ze.PAVING={type:3,value:"PAVING"},Ze.PLUMBING={type:3,value:"PLUMBING"},Ze.ROOFING={type:3,value:"ROOFING"},Ze.SITEGRADING={type:3,value:"SITEGRADING"},Ze.STEELWORK={type:3,value:"STEELWORK"},Ze.SURVEYING={type:3,value:"SURVEYING"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=Ze;class $e{}$e.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},$e.FLUORESCENT={type:3,value:"FLUORESCENT"},$e.HALOGEN={type:3,value:"HALOGEN"},$e.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},$e.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},$e.LED={type:3,value:"LED"},$e.METALHALIDE={type:3,value:"METALHALIDE"},$e.OLED={type:3,value:"OLED"},$e.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=$e;class et{}et.AXIS1={type:3,value:"AXIS1"},et.AXIS2={type:3,value:"AXIS2"},et.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=et;class tt{}tt.TYPE_A={type:3,value:"TYPE_A"},tt.TYPE_B={type:3,value:"TYPE_B"},tt.TYPE_C={type:3,value:"TYPE_C"},tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=tt;class st{}st.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},st.FLUORESCENT={type:3,value:"FLUORESCENT"},st.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},st.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},st.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},st.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},st.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},st.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},st.METALHALIDE={type:3,value:"METALHALIDE"},st.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=st;class nt{}nt.POINTSOURCE={type:3,value:"POINTSOURCE"},nt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},nt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=nt;class it{}it.LOAD_GROUP={type:3,value:"LOAD_GROUP"},it.LOAD_CASE={type:3,value:"LOAD_CASE"},it.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=it;class at{}at.LOGICALAND={type:3,value:"LOGICALAND"},at.LOGICALOR={type:3,value:"LOGICALOR"},at.LOGICALXOR={type:3,value:"LOGICALXOR"},at.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},at.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},e.IfcLogicalOperatorEnum=at;class rt{}rt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},rt.BOLT={type:3,value:"BOLT"},rt.DOWEL={type:3,value:"DOWEL"},rt.NAIL={type:3,value:"NAIL"},rt.NAILPLATE={type:3,value:"NAILPLATE"},rt.RIVET={type:3,value:"RIVET"},rt.SCREW={type:3,value:"SCREW"},rt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},rt.STAPLE={type:3,value:"STAPLE"},rt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=rt;class lt{}lt.AIRSTATION={type:3,value:"AIRSTATION"},lt.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},lt.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},lt.OXYGENPLANT={type:3,value:"OXYGENPLANT"},lt.VACUUMSTATION={type:3,value:"VACUUMSTATION"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=lt;class ot{}ot.BRACE={type:3,value:"BRACE"},ot.CHORD={type:3,value:"CHORD"},ot.COLLAR={type:3,value:"COLLAR"},ot.MEMBER={type:3,value:"MEMBER"},ot.MULLION={type:3,value:"MULLION"},ot.PLATE={type:3,value:"PLATE"},ot.POST={type:3,value:"POST"},ot.PURLIN={type:3,value:"PURLIN"},ot.RAFTER={type:3,value:"RAFTER"},ot.STRINGER={type:3,value:"STRINGER"},ot.STRUT={type:3,value:"STRUT"},ot.STUD={type:3,value:"STUD"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=ot;class ct{}ct.BELTDRIVE={type:3,value:"BELTDRIVE"},ct.COUPLING={type:3,value:"COUPLING"},ct.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=ct;class ut{}ut.NULL={type:3,value:"NULL"},e.IfcNullStyle=ut;class ht{}ht.PRODUCT={type:3,value:"PRODUCT"},ht.PROCESS={type:3,value:"PROCESS"},ht.CONTROL={type:3,value:"CONTROL"},ht.RESOURCE={type:3,value:"RESOURCE"},ht.ACTOR={type:3,value:"ACTOR"},ht.GROUP={type:3,value:"GROUP"},ht.PROJECT={type:3,value:"PROJECT"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=ht;class pt{}pt.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},pt.CODEWAIVER={type:3,value:"CODEWAIVER"},pt.DESIGNINTENT={type:3,value:"DESIGNINTENT"},pt.EXTERNAL={type:3,value:"EXTERNAL"},pt.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},pt.MERGECONFLICT={type:3,value:"MERGECONFLICT"},pt.MODELVIEW={type:3,value:"MODELVIEW"},pt.PARAMETER={type:3,value:"PARAMETER"},pt.REQUIREMENT={type:3,value:"REQUIREMENT"},pt.SPECIFICATION={type:3,value:"SPECIFICATION"},pt.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=pt;class At{}At.ASSIGNEE={type:3,value:"ASSIGNEE"},At.ASSIGNOR={type:3,value:"ASSIGNOR"},At.LESSEE={type:3,value:"LESSEE"},At.LESSOR={type:3,value:"LESSOR"},At.LETTINGAGENT={type:3,value:"LETTINGAGENT"},At.OWNER={type:3,value:"OWNER"},At.TENANT={type:3,value:"TENANT"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=At;class dt{}dt.OPENING={type:3,value:"OPENING"},dt.RECESS={type:3,value:"RECESS"},dt.USERDEFINED={type:3,value:"USERDEFINED"},dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOpeningElementTypeEnum=dt;class ft{}ft.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},ft.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},ft.POWEROUTLET={type:3,value:"POWEROUTLET"},ft.DATAOUTLET={type:3,value:"DATAOUTLET"},ft.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},ft.USERDEFINED={type:3,value:"USERDEFINED"},ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=ft;class It{}It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=It;class yt{}yt.GRILL={type:3,value:"GRILL"},yt.LOUVER={type:3,value:"LOUVER"},yt.SCREEN={type:3,value:"SCREEN"},yt.USERDEFINED={type:3,value:"USERDEFINED"},yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=yt;class mt{}mt.ACCESS={type:3,value:"ACCESS"},mt.BUILDING={type:3,value:"BUILDING"},mt.WORK={type:3,value:"WORK"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=mt;class vt{}vt.PHYSICAL={type:3,value:"PHYSICAL"},vt.VIRTUAL={type:3,value:"VIRTUAL"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=vt;class wt{}wt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},wt.COMPOSITE={type:3,value:"COMPOSITE"},wt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},wt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=wt;class gt{}gt.BORED={type:3,value:"BORED"},gt.DRIVEN={type:3,value:"DRIVEN"},gt.JETGROUTING={type:3,value:"JETGROUTING"},gt.COHESION={type:3,value:"COHESION"},gt.FRICTION={type:3,value:"FRICTION"},gt.SUPPORT={type:3,value:"SUPPORT"},gt.USERDEFINED={type:3,value:"USERDEFINED"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=gt;class Et{}Et.BEND={type:3,value:"BEND"},Et.CONNECTOR={type:3,value:"CONNECTOR"},Et.ENTRY={type:3,value:"ENTRY"},Et.EXIT={type:3,value:"EXIT"},Et.JUNCTION={type:3,value:"JUNCTION"},Et.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Et.TRANSITION={type:3,value:"TRANSITION"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Et;class Tt{}Tt.CULVERT={type:3,value:"CULVERT"},Tt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Tt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Tt.GUTTER={type:3,value:"GUTTER"},Tt.SPOOL={type:3,value:"SPOOL"},Tt.USERDEFINED={type:3,value:"USERDEFINED"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Tt;class bt{}bt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},bt.SHEET={type:3,value:"SHEET"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=bt;class Dt{}Dt.CURVE3D={type:3,value:"CURVE3D"},Dt.PCURVE_S1={type:3,value:"PCURVE_S1"},Dt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Dt;class Pt{}Pt.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Pt.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Pt.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Pt.CALIBRATION={type:3,value:"CALIBRATION"},Pt.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Pt.SHUTDOWN={type:3,value:"SHUTDOWN"},Pt.STARTUP={type:3,value:"STARTUP"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Pt;class Rt{}Rt.CURVE={type:3,value:"CURVE"},Rt.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Rt;class Ct{}Ct.CHANGEORDER={type:3,value:"CHANGEORDER"},Ct.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},Ct.MOVEORDER={type:3,value:"MOVEORDER"},Ct.PURCHASEORDER={type:3,value:"PURCHASEORDER"},Ct.WORKORDER={type:3,value:"WORKORDER"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=Ct;class _t{}_t.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},_t.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=_t;class Bt{}Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=Bt;class Ot{}Ot.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},Ot.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},Ot.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},Ot.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},Ot.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},Ot.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},Ot.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=Ot;class St{}St.ELECTRONIC={type:3,value:"ELECTRONIC"},St.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},St.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},St.THERMAL={type:3,value:"THERMAL"},St.USERDEFINED={type:3,value:"USERDEFINED"},St.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=St;class Nt{}Nt.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},Nt.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},Nt.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},Nt.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},Nt.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},Nt.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},Nt.VARISTOR={type:3,value:"VARISTOR"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=Nt;class xt{}xt.CIRCULATOR={type:3,value:"CIRCULATOR"},xt.ENDSUCTION={type:3,value:"ENDSUCTION"},xt.SPLITCASE={type:3,value:"SPLITCASE"},xt.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},xt.SUMPPUMP={type:3,value:"SUMPPUMP"},xt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},xt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=xt;class Lt{}Lt.HANDRAIL={type:3,value:"HANDRAIL"},Lt.GUARDRAIL={type:3,value:"GUARDRAIL"},Lt.BALUSTRADE={type:3,value:"BALUSTRADE"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=Lt;class Mt{}Mt.STRAIGHT={type:3,value:"STRAIGHT"},Mt.SPIRAL={type:3,value:"SPIRAL"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=Mt;class Ft{}Ft.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Ft.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Ft.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Ft.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Ft.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Ft.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=Ft;class Ht{}Ht.DAILY={type:3,value:"DAILY"},Ht.WEEKLY={type:3,value:"WEEKLY"},Ht.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Ht.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Ht.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Ht.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Ht.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Ht.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=Ht;class Ut{}Ut.BLINN={type:3,value:"BLINN"},Ut.FLAT={type:3,value:"FLAT"},Ut.GLASS={type:3,value:"GLASS"},Ut.MATT={type:3,value:"MATT"},Ut.METAL={type:3,value:"METAL"},Ut.MIRROR={type:3,value:"MIRROR"},Ut.PHONG={type:3,value:"PHONG"},Ut.PLASTIC={type:3,value:"PLASTIC"},Ut.STRAUSS={type:3,value:"STRAUSS"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Ut;class Gt{}Gt.MAIN={type:3,value:"MAIN"},Gt.SHEAR={type:3,value:"SHEAR"},Gt.LIGATURE={type:3,value:"LIGATURE"},Gt.STUD={type:3,value:"STUD"},Gt.PUNCHING={type:3,value:"PUNCHING"},Gt.EDGE={type:3,value:"EDGE"},Gt.RING={type:3,value:"RING"},Gt.ANCHORING={type:3,value:"ANCHORING"},Gt.USERDEFINED={type:3,value:"USERDEFINED"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=Gt;class jt{}jt.PLAIN={type:3,value:"PLAIN"},jt.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=jt;class Vt{}Vt.ANCHORING={type:3,value:"ANCHORING"},Vt.EDGE={type:3,value:"EDGE"},Vt.LIGATURE={type:3,value:"LIGATURE"},Vt.MAIN={type:3,value:"MAIN"},Vt.PUNCHING={type:3,value:"PUNCHING"},Vt.RING={type:3,value:"RING"},Vt.SHEAR={type:3,value:"SHEAR"},Vt.STUD={type:3,value:"STUD"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=Vt;class kt{}kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=kt;class Qt{}Qt.SUPPLIER={type:3,value:"SUPPLIER"},Qt.MANUFACTURER={type:3,value:"MANUFACTURER"},Qt.CONTRACTOR={type:3,value:"CONTRACTOR"},Qt.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Qt.ARCHITECT={type:3,value:"ARCHITECT"},Qt.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Qt.COSTENGINEER={type:3,value:"COSTENGINEER"},Qt.CLIENT={type:3,value:"CLIENT"},Qt.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Qt.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Qt.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Qt.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Qt.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Qt.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Qt.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Qt.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Qt.ENGINEER={type:3,value:"ENGINEER"},Qt.OWNER={type:3,value:"OWNER"},Qt.CONSULTANT={type:3,value:"CONSULTANT"},Qt.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Qt.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Qt.RESELLER={type:3,value:"RESELLER"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=Qt;class Wt{}Wt.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Wt.SHED_ROOF={type:3,value:"SHED_ROOF"},Wt.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Wt.HIP_ROOF={type:3,value:"HIP_ROOF"},Wt.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Wt.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Wt.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Wt.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Wt.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Wt.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Wt.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Wt.DOME_ROOF={type:3,value:"DOME_ROOF"},Wt.FREEFORM={type:3,value:"FREEFORM"},Wt.USERDEFINED={type:3,value:"USERDEFINED"},Wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=Wt;class zt{}zt.EXA={type:3,value:"EXA"},zt.PETA={type:3,value:"PETA"},zt.TERA={type:3,value:"TERA"},zt.GIGA={type:3,value:"GIGA"},zt.MEGA={type:3,value:"MEGA"},zt.KILO={type:3,value:"KILO"},zt.HECTO={type:3,value:"HECTO"},zt.DECA={type:3,value:"DECA"},zt.DECI={type:3,value:"DECI"},zt.CENTI={type:3,value:"CENTI"},zt.MILLI={type:3,value:"MILLI"},zt.MICRO={type:3,value:"MICRO"},zt.NANO={type:3,value:"NANO"},zt.PICO={type:3,value:"PICO"},zt.FEMTO={type:3,value:"FEMTO"},zt.ATTO={type:3,value:"ATTO"},e.IfcSIPrefix=zt;class Kt{}Kt.AMPERE={type:3,value:"AMPERE"},Kt.BECQUEREL={type:3,value:"BECQUEREL"},Kt.CANDELA={type:3,value:"CANDELA"},Kt.COULOMB={type:3,value:"COULOMB"},Kt.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Kt.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Kt.FARAD={type:3,value:"FARAD"},Kt.GRAM={type:3,value:"GRAM"},Kt.GRAY={type:3,value:"GRAY"},Kt.HENRY={type:3,value:"HENRY"},Kt.HERTZ={type:3,value:"HERTZ"},Kt.JOULE={type:3,value:"JOULE"},Kt.KELVIN={type:3,value:"KELVIN"},Kt.LUMEN={type:3,value:"LUMEN"},Kt.LUX={type:3,value:"LUX"},Kt.METRE={type:3,value:"METRE"},Kt.MOLE={type:3,value:"MOLE"},Kt.NEWTON={type:3,value:"NEWTON"},Kt.OHM={type:3,value:"OHM"},Kt.PASCAL={type:3,value:"PASCAL"},Kt.RADIAN={type:3,value:"RADIAN"},Kt.SECOND={type:3,value:"SECOND"},Kt.SIEMENS={type:3,value:"SIEMENS"},Kt.SIEVERT={type:3,value:"SIEVERT"},Kt.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Kt.STERADIAN={type:3,value:"STERADIAN"},Kt.TESLA={type:3,value:"TESLA"},Kt.VOLT={type:3,value:"VOLT"},Kt.WATT={type:3,value:"WATT"},Kt.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Kt;class Yt{}Yt.BATH={type:3,value:"BATH"},Yt.BIDET={type:3,value:"BIDET"},Yt.CISTERN={type:3,value:"CISTERN"},Yt.SHOWER={type:3,value:"SHOWER"},Yt.SINK={type:3,value:"SINK"},Yt.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Yt.TOILETPAN={type:3,value:"TOILETPAN"},Yt.URINAL={type:3,value:"URINAL"},Yt.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Yt.WCSEAT={type:3,value:"WCSEAT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=Yt;class Xt{}Xt.UNIFORM={type:3,value:"UNIFORM"},Xt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=Xt;class qt{}qt.COSENSOR={type:3,value:"COSENSOR"},qt.CO2SENSOR={type:3,value:"CO2SENSOR"},qt.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},qt.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},qt.FIRESENSOR={type:3,value:"FIRESENSOR"},qt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},qt.FROSTSENSOR={type:3,value:"FROSTSENSOR"},qt.GASSENSOR={type:3,value:"GASSENSOR"},qt.HEATSENSOR={type:3,value:"HEATSENSOR"},qt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},qt.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},qt.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},qt.LEVELSENSOR={type:3,value:"LEVELSENSOR"},qt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},qt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},qt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},qt.PHSENSOR={type:3,value:"PHSENSOR"},qt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},qt.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},qt.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},qt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},qt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},qt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},qt.WINDSENSOR={type:3,value:"WINDSENSOR"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=qt;class Jt{}Jt.START_START={type:3,value:"START_START"},Jt.START_FINISH={type:3,value:"START_FINISH"},Jt.FINISH_START={type:3,value:"FINISH_START"},Jt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=Jt;class Zt{}Zt.JALOUSIE={type:3,value:"JALOUSIE"},Zt.SHUTTER={type:3,value:"SHUTTER"},Zt.AWNING={type:3,value:"AWNING"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Zt;class $t{}$t.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},$t.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},$t.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},$t.P_LISTVALUE={type:3,value:"P_LISTVALUE"},$t.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},$t.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},$t.Q_LENGTH={type:3,value:"Q_LENGTH"},$t.Q_AREA={type:3,value:"Q_AREA"},$t.Q_VOLUME={type:3,value:"Q_VOLUME"},$t.Q_COUNT={type:3,value:"Q_COUNT"},$t.Q_WEIGHT={type:3,value:"Q_WEIGHT"},$t.Q_TIME={type:3,value:"Q_TIME"},e.IfcSimplePropertyTemplateTypeEnum=$t;class es{}es.FLOOR={type:3,value:"FLOOR"},es.ROOF={type:3,value:"ROOF"},es.LANDING={type:3,value:"LANDING"},es.BASESLAB={type:3,value:"BASESLAB"},es.USERDEFINED={type:3,value:"USERDEFINED"},es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=es;class ts{}ts.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},ts.SOLARPANEL={type:3,value:"SOLARPANEL"},ts.USERDEFINED={type:3,value:"USERDEFINED"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=ts;class ss{}ss.CONVECTOR={type:3,value:"CONVECTOR"},ss.RADIATOR={type:3,value:"RADIATOR"},ss.USERDEFINED={type:3,value:"USERDEFINED"},ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=ss;class ns{}ns.SPACE={type:3,value:"SPACE"},ns.PARKING={type:3,value:"PARKING"},ns.GFA={type:3,value:"GFA"},ns.INTERNAL={type:3,value:"INTERNAL"},ns.EXTERNAL={type:3,value:"EXTERNAL"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=ns;class is{}is.CONSTRUCTION={type:3,value:"CONSTRUCTION"},is.FIRESAFETY={type:3,value:"FIRESAFETY"},is.LIGHTING={type:3,value:"LIGHTING"},is.OCCUPANCY={type:3,value:"OCCUPANCY"},is.SECURITY={type:3,value:"SECURITY"},is.THERMAL={type:3,value:"THERMAL"},is.TRANSPORT={type:3,value:"TRANSPORT"},is.VENTILATION={type:3,value:"VENTILATION"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=is;class as{}as.BIRDCAGE={type:3,value:"BIRDCAGE"},as.COWL={type:3,value:"COWL"},as.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=as;class rs{}rs.STRAIGHT={type:3,value:"STRAIGHT"},rs.WINDER={type:3,value:"WINDER"},rs.SPIRAL={type:3,value:"SPIRAL"},rs.CURVED={type:3,value:"CURVED"},rs.FREEFORM={type:3,value:"FREEFORM"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=rs;class ls{}ls.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},ls.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},ls.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},ls.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},ls.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},ls.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},ls.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},ls.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},ls.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},ls.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},ls.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},ls.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},ls.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},ls.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=ls;class os{}os.READWRITE={type:3,value:"READWRITE"},os.READONLY={type:3,value:"READONLY"},os.LOCKED={type:3,value:"LOCKED"},os.READWRITELOCKED={type:3,value:"READWRITELOCKED"},os.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=os;class cs{}cs.CONST={type:3,value:"CONST"},cs.LINEAR={type:3,value:"LINEAR"},cs.POLYGONAL={type:3,value:"POLYGONAL"},cs.EQUIDISTANT={type:3,value:"EQUIDISTANT"},cs.SINUS={type:3,value:"SINUS"},cs.PARABOLA={type:3,value:"PARABOLA"},cs.DISCRETE={type:3,value:"DISCRETE"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=cs;class us{}us.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},us.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},us.CABLE={type:3,value:"CABLE"},us.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},us.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=us;class hs{}hs.CONST={type:3,value:"CONST"},hs.BILINEAR={type:3,value:"BILINEAR"},hs.DISCRETE={type:3,value:"DISCRETE"},hs.ISOCONTOUR={type:3,value:"ISOCONTOUR"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=hs;class ps{}ps.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},ps.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},ps.SHELL={type:3,value:"SHELL"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=ps;class As{}As.PURCHASE={type:3,value:"PURCHASE"},As.WORK={type:3,value:"WORK"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=As;class ds{}ds.MARK={type:3,value:"MARK"},ds.TAG={type:3,value:"TAG"},ds.TREATMENT={type:3,value:"TREATMENT"},ds.USERDEFINED={type:3,value:"USERDEFINED"},ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=ds;class fs{}fs.POSITIVE={type:3,value:"POSITIVE"},fs.NEGATIVE={type:3,value:"NEGATIVE"},fs.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=fs;class Is{}Is.CONTACTOR={type:3,value:"CONTACTOR"},Is.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Is.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Is.KEYPAD={type:3,value:"KEYPAD"},Is.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Is.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Is.STARTER={type:3,value:"STARTER"},Is.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Is.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Is;class ys{}ys.PANEL={type:3,value:"PANEL"},ys.WORKSURFACE={type:3,value:"WORKSURFACE"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSystemFurnitureElementTypeEnum=ys;class ms{}ms.BASIN={type:3,value:"BASIN"},ms.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},ms.EXPANSION={type:3,value:"EXPANSION"},ms.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},ms.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},ms.STORAGE={type:3,value:"STORAGE"},ms.VESSEL={type:3,value:"VESSEL"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=ms;class vs{}vs.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},vs.WORKTIME={type:3,value:"WORKTIME"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=vs;class ws{}ws.ATTENDANCE={type:3,value:"ATTENDANCE"},ws.CONSTRUCTION={type:3,value:"CONSTRUCTION"},ws.DEMOLITION={type:3,value:"DEMOLITION"},ws.DISMANTLE={type:3,value:"DISMANTLE"},ws.DISPOSAL={type:3,value:"DISPOSAL"},ws.INSTALLATION={type:3,value:"INSTALLATION"},ws.LOGISTIC={type:3,value:"LOGISTIC"},ws.MAINTENANCE={type:3,value:"MAINTENANCE"},ws.MOVE={type:3,value:"MOVE"},ws.OPERATION={type:3,value:"OPERATION"},ws.REMOVAL={type:3,value:"REMOVAL"},ws.RENOVATION={type:3,value:"RENOVATION"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=ws;class gs{}gs.COUPLER={type:3,value:"COUPLER"},gs.FIXED_END={type:3,value:"FIXED_END"},gs.TENSIONING_END={type:3,value:"TENSIONING_END"},gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=gs;class Es{}Es.BAR={type:3,value:"BAR"},Es.COATED={type:3,value:"COATED"},Es.STRAND={type:3,value:"STRAND"},Es.WIRE={type:3,value:"WIRE"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Es;class Ts{}Ts.LEFT={type:3,value:"LEFT"},Ts.RIGHT={type:3,value:"RIGHT"},Ts.UP={type:3,value:"UP"},Ts.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Ts;class bs{}bs.CONTINUOUS={type:3,value:"CONTINUOUS"},bs.DISCRETE={type:3,value:"DISCRETE"},bs.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},bs.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},bs.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},bs.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=bs;class Ds{}Ds.CURRENT={type:3,value:"CURRENT"},Ds.FREQUENCY={type:3,value:"FREQUENCY"},Ds.INVERTER={type:3,value:"INVERTER"},Ds.RECTIFIER={type:3,value:"RECTIFIER"},Ds.VOLTAGE={type:3,value:"VOLTAGE"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=Ds;class Ps{}Ps.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},Ps.CONTINUOUS={type:3,value:"CONTINUOUS"},Ps.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},Ps.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=Ps;class Rs{}Rs.ELEVATOR={type:3,value:"ELEVATOR"},Rs.ESCALATOR={type:3,value:"ESCALATOR"},Rs.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Rs.CRANEWAY={type:3,value:"CRANEWAY"},Rs.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},Rs.USERDEFINED={type:3,value:"USERDEFINED"},Rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Rs;class Cs{}Cs.CARTESIAN={type:3,value:"CARTESIAN"},Cs.PARAMETER={type:3,value:"PARAMETER"},Cs.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Cs;class _s{}_s.FINNED={type:3,value:"FINNED"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=_s;class Bs{}Bs.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Bs.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Bs.AREAUNIT={type:3,value:"AREAUNIT"},Bs.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Bs.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Bs.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Bs.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Bs.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Bs.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Bs.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Bs.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Bs.FORCEUNIT={type:3,value:"FORCEUNIT"},Bs.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Bs.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Bs.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Bs.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Bs.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Bs.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Bs.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Bs.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Bs.MASSUNIT={type:3,value:"MASSUNIT"},Bs.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Bs.POWERUNIT={type:3,value:"POWERUNIT"},Bs.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Bs.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Bs.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Bs.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Bs.TIMEUNIT={type:3,value:"TIMEUNIT"},Bs.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Bs;class Os{}Os.ALARMPANEL={type:3,value:"ALARMPANEL"},Os.CONTROLPANEL={type:3,value:"CONTROLPANEL"},Os.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},Os.INDICATORPANEL={type:3,value:"INDICATORPANEL"},Os.MIMICPANEL={type:3,value:"MIMICPANEL"},Os.HUMIDISTAT={type:3,value:"HUMIDISTAT"},Os.THERMOSTAT={type:3,value:"THERMOSTAT"},Os.WEATHERSTATION={type:3,value:"WEATHERSTATION"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=Os;class Ss{}Ss.AIRHANDLER={type:3,value:"AIRHANDLER"},Ss.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Ss.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},Ss.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Ss.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=Ss;class Ns{}Ns.AIRRELEASE={type:3,value:"AIRRELEASE"},Ns.ANTIVACUUM={type:3,value:"ANTIVACUUM"},Ns.CHANGEOVER={type:3,value:"CHANGEOVER"},Ns.CHECK={type:3,value:"CHECK"},Ns.COMMISSIONING={type:3,value:"COMMISSIONING"},Ns.DIVERTING={type:3,value:"DIVERTING"},Ns.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},Ns.DOUBLECHECK={type:3,value:"DOUBLECHECK"},Ns.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},Ns.FAUCET={type:3,value:"FAUCET"},Ns.FLUSHING={type:3,value:"FLUSHING"},Ns.GASCOCK={type:3,value:"GASCOCK"},Ns.GASTAP={type:3,value:"GASTAP"},Ns.ISOLATING={type:3,value:"ISOLATING"},Ns.MIXING={type:3,value:"MIXING"},Ns.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},Ns.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},Ns.REGULATING={type:3,value:"REGULATING"},Ns.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},Ns.STEAMTRAP={type:3,value:"STEAMTRAP"},Ns.STOPCOCK={type:3,value:"STOPCOCK"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=Ns;class xs{}xs.COMPRESSION={type:3,value:"COMPRESSION"},xs.SPRING={type:3,value:"SPRING"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=xs;class Ls{}Ls.CUTOUT={type:3,value:"CUTOUT"},Ls.NOTCH={type:3,value:"NOTCH"},Ls.HOLE={type:3,value:"HOLE"},Ls.MITER={type:3,value:"MITER"},Ls.CHAMFER={type:3,value:"CHAMFER"},Ls.EDGE={type:3,value:"EDGE"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Ls;class Ms{}Ms.MOVABLE={type:3,value:"MOVABLE"},Ms.PARAPET={type:3,value:"PARAPET"},Ms.PARTITIONING={type:3,value:"PARTITIONING"},Ms.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Ms.SHEAR={type:3,value:"SHEAR"},Ms.SOLIDWALL={type:3,value:"SOLIDWALL"},Ms.STANDARD={type:3,value:"STANDARD"},Ms.POLYGONAL={type:3,value:"POLYGONAL"},Ms.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Ms;class Fs{}Fs.FLOORTRAP={type:3,value:"FLOORTRAP"},Fs.FLOORWASTE={type:3,value:"FLOORWASTE"},Fs.GULLYSUMP={type:3,value:"GULLYSUMP"},Fs.GULLYTRAP={type:3,value:"GULLYTRAP"},Fs.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Fs.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Fs.WASTETRAP={type:3,value:"WASTETRAP"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Fs;class Hs{}Hs.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Hs.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Hs.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Hs.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Hs.TOPHUNG={type:3,value:"TOPHUNG"},Hs.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Hs.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Hs.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Hs.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Hs.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Hs.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Hs.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Hs.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Hs;class Us{}Us.LEFT={type:3,value:"LEFT"},Us.MIDDLE={type:3,value:"MIDDLE"},Us.RIGHT={type:3,value:"RIGHT"},Us.BOTTOM={type:3,value:"BOTTOM"},Us.TOP={type:3,value:"TOP"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Us;class Gs{}Gs.ALUMINIUM={type:3,value:"ALUMINIUM"},Gs.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Gs.STEEL={type:3,value:"STEEL"},Gs.WOOD={type:3,value:"WOOD"},Gs.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Gs.PLASTIC={type:3,value:"PLASTIC"},Gs.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Gs;class js{}js.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},js.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},js.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},js.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},js.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},js.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},js.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},js.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},js.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=js;class Vs{}Vs.WINDOW={type:3,value:"WINDOW"},Vs.SKYLIGHT={type:3,value:"SKYLIGHT"},Vs.LIGHTDOME={type:3,value:"LIGHTDOME"},Vs.USERDEFINED={type:3,value:"USERDEFINED"},Vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Vs;class ks{}ks.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},ks.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},ks.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},ks.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},ks.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},ks.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},ks.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},ks.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},ks.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=ks;class Qs{}Qs.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},Qs.SECONDSHIFT={type:3,value:"SECONDSHIFT"},Qs.THIRDSHIFT={type:3,value:"THIRDSHIFT"},Qs.USERDEFINED={type:3,value:"USERDEFINED"},Qs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=Qs;class Ws{}Ws.ACTUAL={type:3,value:"ACTUAL"},Ws.BASELINE={type:3,value:"BASELINE"},Ws.PLANNED={type:3,value:"PLANNED"},Ws.USERDEFINED={type:3,value:"USERDEFINED"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Ws;class zs{}zs.ACTUAL={type:3,value:"ACTUAL"},zs.BASELINE={type:3,value:"BASELINE"},zs.PLANNED={type:3,value:"PLANNED"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=zs;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class Ks extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=Ks;e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class Ys extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=411424972}}e.IfcAppliedValue=Ys;e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.TimeOfApproval=i,this.Status=a,this.Level=r,this.Qualifier=l,this.RequestingApproval=o,this.GivingApproval=c,this.type=130549933}};class Xs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Xs;e.IfcBoundaryEdgeCondition=class extends Xs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Xs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=i,this.type=3367102660}};class qs extends Xs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=qs;e.IfcBoundaryNodeConditionWarping=class extends qs{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};class Js extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Js;class Zs extends Js{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Zs;e.IfcConnectionSurfaceGeometry=class extends Js{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Js{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class $s extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=$s;class en extends Kb{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=en;class tn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.type=1466758467}}e.IfcCoordinateReferenceSystem=tn;e.IfcCostValue=class extends Ys{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=602808272}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};class sn extends Kb{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=sn;class nn extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.Identification=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=nn;e.IfcExternallyDefinedHatchStyle=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends sn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.Location=a,this.Description=r,this.type=2655187982}};e.IfcLibraryReference=class extends nn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.Language=a,this.ReferencedLibrary=r,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends en{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=n,this.Northings=i,this.OrthogonalHeight=a,this.XAxisAbscissa=r,this.XAxisOrdinate=l,this.Scale=o,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class an extends Kb{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=an;class rn extends an{constructor(e,t,s,n,i,a,r,l){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.type=248100487}}e.IfcMaterialLayer=rn;e.IfcMaterialLayerSet=class extends an{constructor(e,t,s,n){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=n,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends rn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.OffsetDirection=o,this.OffsetValues=c,this.type=1847252529}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ln extends an{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.type=2235152071}}e.IfcMaterialProfile=ln;e.IfcMaterialProfileSet=class extends an{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=n,this.CompositeProfile=i,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends ln{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.OffsetValues=l,this.type=552965576}};class on extends Kb{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=on;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends $s{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.ReferencePath=h,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class cn extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=cn;class un extends Kb{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=un;e.IfcObjective=class extends $s{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.LogicalAggregator=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class hn extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=hn;class pn extends hn{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=pn;e.IfcPostalAddress=class extends Ks{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class An extends Kb{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=An;class dn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=dn;e.IfcPresentationLayerWithStyle=class extends dn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class fn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=fn;e.IfcPresentationStyleAssignment=class extends Kb{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class In extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=In;class yn extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=yn;e.IfcProjectedCRS=class extends tn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.MapProjection=a,this.MapZone=r,this.MapUnit=l,this.type=3843373140}};class mn extends Kb{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=mn;e.IfcPropertyEnumeration=class extends mn{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.Formula=a,this.type=2044713172}};e.IfcQuantityCount=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.Formula=a,this.type=2093928680}};e.IfcQuantityLength=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.Formula=a,this.type=931644368}};e.IfcQuantityTime=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.Formula=a,this.type=3252649465}};e.IfcQuantityVolume=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.Formula=a,this.type=2405470396}};e.IfcQuantityWeight=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.Formula=a,this.type=825690147}};e.IfcRecurrencePattern=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=n,this.MonthComponent=i,this.Position=a,this.Interval=r,this.Occurrences=l,this.TimePeriods=o,this.type=3915482550}};e.IfcReference=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=n,this.ListPositions=i,this.InnerReference=a,this.type=2433181523}};class vn extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=vn;class wn extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=wn;class gn extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=gn;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class En extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=En;class Tn extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=Tn;e.IfcSIUnit=class extends cn{constructor(e,t,s,n){super(e,new zb(0),t),this.UnitType=t,this.Prefix=s,this.Name=n,this.type=448429030}};class bn extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.type=1054537805}}e.IfcSchedulingTime=bn;e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Dn extends vn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Dn;e.IfcShapeRepresentation=class extends Dn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class Pn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Pn;class Rn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Rn;e.IfcStructuralLoadConfiguration=class extends Rn{constructor(e,t,s,n){super(e,t),this.Name=t,this.Values=s,this.Locations=n,this.type=3478079324}};class Cn extends Rn{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Cn;class _n extends Cn{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=_n;e.IfcStructuralLoadTemperature=class extends _n{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=n,this.DeltaTZ=i,this.type=3408363356}};class Bn extends vn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=Bn;e.IfcStyledItem=class extends gn{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}};e.IfcStyledRepresentation=class extends Bn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Cn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=n,this.ShearReinforcement=i,this.type=2934153892}};e.IfcSurfaceStyle=class extends fn{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends An{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends An{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class On extends An{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=On;e.IfcSurfaceStyleWithTextures=class extends An{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class Sn extends An{constructor(e,t,s,n,i,a){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.type=626085974}}e.IfcSurfaceTexture=Sn;e.IfcTable=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Rows=s,this.Columns=n,this.type=985171141}};e.IfcTableColumn=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.Unit=i,this.ReferencePath=a,this.type=2043862942}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class Nn extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.type=1549132990}}e.IfcTaskTime=Nn;e.IfcTaskTimeRecurring=class extends Nn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.Recurrence=g,this.type=2771591690}};e.IfcTelecomAddress=class extends Ks{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.MessagingIDs=c,this.type=912023232}};e.IfcTextStyle=class extends fn{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.ModelOrDraughting=a,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends An{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends An{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};class xn extends An{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=xn;e.IfcTextureCoordinateGenerator=class extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=n,this.type=1742049831}};e.IfcTextureMap=class extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=n,this.type=2552916305}};e.IfcTextureVertex=class extends An{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends An{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends Kb{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Ln extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=Ln;e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Mn extends gn{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Mn;e.IfcTopologyRepresentation=class extends Dn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Fn extends Mn{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Fn;e.IfcVertexPoint=class extends Fn{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends bn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.RecurrencePattern=i,this.Start=a,this.Finish=r,this.type=1236880293}};e.IfcApprovalRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=n,this.RelatedApprovals=i,this.type=3869604511}};class Hn extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Hn;class Un extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Un;e.IfcArbitraryProfileDefWithVoids=class extends Hn{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends Sn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.RasterFormat=r,this.RasterCode=l,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Un{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassification=class extends sn{constructor(e,t,s,n,i,a,r,l){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.Description=a,this.Location=r,this.ReferenceTokens=l,this.type=747523909}};e.IfcClassificationReference=class extends nn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.ReferencedSource=i,this.Description=a,this.Sort=r,this.type=647927063}};e.IfcColourRgbList=class extends An{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Gn extends An{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Gn;e.IfcCompositeProfileDef=class extends yn{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class jn extends Mn{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=jn;e.IfcConnectionCurveGeometry=class extends Js{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Zs{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends cn{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};class Vn extends cn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}}e.IfcConversionBasedUnit=Vn;e.IfcConversionBasedUnitWithOffset=class extends Vn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.ConversionOffset=a,this.type=2713554722}};e.IfcCurrencyRelationship=class extends En{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=i,this.ExchangeRate=a,this.RateDateTime=r,this.RateSource=l,this.type=539742890}};e.IfcCurveStyle=class extends fn{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.ModelOrDraughting=a,this.type=3800577675}};e.IfcCurveStyleFont=class extends An{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends An{constructor(e,t,s,n){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends An{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class kn extends yn{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}}e.IfcDerivedProfileDef=kn;e.IfcDocumentInformation=class extends sn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Location=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=n,this.RelatedDocuments=i,this.RelationshipType=a,this.type=770865208}};e.IfcDocumentReference=class extends nn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.ReferencedDocument=a,this.type=3732053477}};class Qn extends Mn{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Qn;e.IfcEdgeCurve=class extends Qn{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcEventTime=class extends bn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ActualDate=i,this.EarlyDate=a,this.LateDate=r,this.ScheduleDate=l,this.type=211053100}};class Wn extends mn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Properties=n,this.type=297599258}}e.IfcExtendedProperties=Wn;e.IfcExternalReferenceRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=n,this.RelatedResourceObjects=i,this.type=1437805879}};class zn extends Mn{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=zn;class Kn extends Mn{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Kn;e.IfcFaceOuterBound=class extends Kn{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Yn extends zn{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}}e.IfcFaceSurface=Yn;e.IfcFailureConnectionCondition=class extends Pn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends fn{constructor(e,t,s,n){super(e,t),this.Name=t,this.FillStyles=s,this.ModelorDraughting=n,this.type=738692330}};class Xn extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=Xn;class qn extends gn{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=qn;e.IfcGeometricRepresentationSubContext=class extends Xn{constructor(e,s,n,i,a,r,l){super(e,s,n,new t(0),null,new zb(0),null),this.ContextIdentifier=s,this.ContextType=n,this.ParentContext=i,this.TargetScale=a,this.TargetView=r,this.UserDefinedTargetView=l,this.type=4142052618}};class Jn extends qn{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Jn;e.IfcGridPlacement=class extends un{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class Zn extends qn{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=Zn;e.IfcImageTexture=class extends Sn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.URLReference=r,this.type=3905492369}};e.IfcIndexedColourMap=class extends An{constructor(e,t,s,n,i){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=n,this.ColourIndex=i,this.type=3570813810}};class $n extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.type=1437953363}}e.IfcIndexedTextureMap=$n;e.IfcIndexedTriangleTextureMap=class extends $n{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndex=i,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};e.IfcLagTime=class extends bn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.LagValue=i,this.DurationType=a,this.type=1585845231}};class ei extends qn{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=ei;e.IfcLightSourceAmbient=class extends ei{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends ei{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class ti extends ei{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=ti;e.IfcLightSourceSpot=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLocalPlacement=class extends un{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class si extends Mn{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=si;e.IfcMappedItem=class extends gn{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends an{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Category=n,this.type=1838606355}};e.IfcMaterialConstituent=class extends an{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.Material=n,this.Fraction=i,this.Category=a,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends an{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=n,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends In{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends on{constructor(e,t,s,n,i,a){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.ReferenceExtent=a,this.type=1303795690}};class ni extends on{constructor(e,t,s,n){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.type=3079605661}}e.IfcMaterialProfileSetUsage=ni;e.IfcMaterialProfileSetUsageTapering=class extends ni{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.ForProfileEndSet=i,this.CardinalEndPoint=a,this.type=3404854881}};e.IfcMaterialProperties=class extends Wn{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.Material=i,this.type=3265635763}};e.IfcMaterialRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=n,this.RelatedMaterials=i,this.Expression=a,this.type=853536259}};e.IfcMirroredProfileDef=class extends kn{constructor(e,t,s,n,i){super(e,t,s,n,new zb(0),i),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Label=i,this.type=2998442950}};class ii extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=ii;e.IfcOpenShell=class extends jn{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOrientedEdge=class extends Qn{constructor(e,t,s){super(e,new zb(0),new zb(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class ai extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=ai;e.IfcPath=class extends Mn{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends hn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends Sn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.Width=r,this.Height=l,this.ColourComponents=o,this.Pixel=c,this.type=597895409}};class ri extends qn{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=ri;class li extends qn{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=li;class oi extends qn{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=oi;e.IfcPointOnCurve=class extends oi{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends oi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends si{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends Zn{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class ci extends An{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=ci;class ui extends mn{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=ui;class hi extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=hi;e.IfcProductDefinitionShape=class extends In{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcProfileProperties=class extends Wn{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.ProfileDefinition=i,this.type=2802850158}};class pi extends mn{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=pi;class Ai extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=Ai;e.IfcPropertyDependencyRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=n,this.DependantProperty=i,this.Expression=a,this.type=148025276}};class di extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=di;class fi extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1482703590}}e.IfcPropertyTemplateDefinition=fi;class Ii extends di{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2090586900}}e.IfcQuantitySet=Ii;class yi extends ai{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=yi;e.IfcRegularTimeSeries=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends ui{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};class mi extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=mi;e.IfcResourceApprovalRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=n,this.RelatingApproval=i,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedResourceObjects=i,this.type=1608871552}};e.IfcResourceTime=class extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ScheduleWork=i,this.ScheduleUsage=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.ScheduleContour=o,this.LevelingDelay=c,this.IsOverAllocated=u,this.StatusTime=h,this.ActualWork=p,this.ActualUsage=A,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=I,this.RemainingUsage=y,this.Completion=m,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends yi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionProperties=class extends ui{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends ui{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcSectionedSpine=class extends qn{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};e.IfcShellBasedSurfaceModel=class extends qn{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class vi extends pi{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=vi;e.IfcSlippageConnectionCondition=class extends Pn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class wi extends qn{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=wi;e.IfcStructuralLoadLinearForce=class extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends _n{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class gi extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=gi;e.IfcStructuralLoadSingleDisplacementDistortion=class extends gi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class Ei extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Ei;e.IfcStructuralLoadSingleForceWarping=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};e.IfcSubedge=class extends Qn{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Ti extends qn{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Ti;e.IfcSurfaceStyleRendering=class extends On{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class bi extends wi{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=bi;class Di extends wi{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}}e.IfcSweptDiskSolid=Di;e.IfcSweptDiskSolidPolygonal=class extends Di{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.FilletRadius=r,this.type=1096409881}};class Pi extends Ti{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Pi;e.IfcTShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.type=3071757647}};class Ri extends qn{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=Ri;class Ci extends qn{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=Ci;e.IfcTextLiteralWithExtent=class extends Ci{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTextStyleFontModel=class extends hi{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};class _i extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=_i;class Bi extends _i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.type=3736923433}}e.IfcTypeProcess=Bi;class Oi extends _i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=Oi;class Si extends _i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.type=3698973494}}e.IfcTypeResource=Si;e.IfcUShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.type=427810014}};e.IfcVector=class extends qn{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends si{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowStyle=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ConstructionType=c,this.OperationType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=1299126871}};e.IfcZShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};e.IfcAdvancedFace=class extends Yn{constructor(e,t,s,n){super(e,t,s,n),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3406155212}};e.IfcAnnotationFillArea=class extends qn{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomFlangeWidth=i,this.OverallDepth=a,this.WebThickness=r,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.BottomFlangeEdgeRadius=p,this.BottomFlangeSlope=A,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends ri{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends ri{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends ri{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};class Ni extends qn{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Ni;class xi extends Ti{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=xi;e.IfcBoundingBox=class extends qn{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends Zn{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.type=2898889636}};e.IfcCartesianPoint=class extends oi{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Li extends qn{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Li;e.IfcCartesianPointList2D=class extends Li{constructor(e,t){super(e),this.CoordList=t,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Li{constructor(e,t){super(e),this.CoordList=t,this.type=2059837836}};class Mi extends qn{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Mi;class Fi extends Mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Fi;e.IfcCartesianTransformationOperator2DnonUniform=class extends Fi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Hi extends Mi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Hi;e.IfcCartesianTransformationOperator3DnonUniform=class extends Hi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class Ui extends ai{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=Ui;e.IfcClosedShell=class extends jn{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Gn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends pi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};class Gi extends qn{constructor(e,t,s,n){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}}e.IfcCompositeCurveSegment=Gi;class ji extends Si{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.type=2574617495}}e.IfcConstructionResourceType=ji;class Vi extends ii{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=3419103109}}e.IfcContext=Vi;e.IfcCrewResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1815067380}};class ki extends qn{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=ki;e.IfcCsgSolid=class extends wi{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Qi extends qn{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Qi;e.IfcCurveBoundedPlane=class extends xi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends xi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=n,this.type=2629017746}};e.IfcDirection=class extends qn{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorStyle=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.OperationType=c,this.ConstructionType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=526551008}};e.IfcEdgeLoop=class extends si{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends Ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Wi extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Wi;class zi extends Ti{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=zi;e.IfcEllipseProfileDef=class extends ai{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};e.IfcEventType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.EventTriggerType=h,this.UserDefinedEventTriggerType=p,this.type=4024345920}};class Ki extends bi{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}}e.IfcExtrudedAreaSolid=Ki;e.IfcExtrudedAreaSolidTapered=class extends Ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.EndSweptArea=a,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends qn{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends qn{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends qn{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};e.IfcFixedReferenceSweptAreaSolid=class extends bi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=2652556860}};class Yi extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Yi;e.IfcFurnitureType=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.PredefinedType=h,this.type=1268542332}};e.IfcGeographicElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Jn{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.FlangeSlope=u,this.type=1484403080}};class Xi extends Ri{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=Xi;e.IfcIndexedPolygonalFaceWithVoids=class extends Xi{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcLShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.type=572779678}};e.IfcLaborResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=428585644}};e.IfcLine=class extends Qi{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class qi extends wi{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=qi;class Ji extends ii{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=Ji;e.IfcOffsetCurve2D=class extends Qi{constructor(e,t,s,n){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qi{constructor(e,t,s,n,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcPcurve=class extends Qi{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends li{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends zi{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Zi extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Zi;class $i extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=$i;class ea extends di{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3967405729}}e.IfcPreDefinedPropertySet=ea;e.IfcProcedureType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.type=569719735}};class ta extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2945172077}}e.IfcProcess=ta;class sa extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=sa;e.IfcProject=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectLibrary=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=653396225}};e.IfcPropertyBoundedValue=class extends vi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.SetPointValue=r,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};e.IfcPropertySet=class extends di{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcPropertySetTemplate=class extends fi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.ApplicableEntity=r,this.HasPropertyTemplates=l,this.type=492091185}};e.IfcPropertySingleValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends vi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.CurveInterpolation=o,this.type=110355661}};class na extends fi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3521284610}}e.IfcPropertyTemplate=na;e.IfcProxy=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.ProxyType=o,this.Tag=c,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends yi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends ki{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends xi{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends ea{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class ia extends mi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=ia;e.IfcRelAssignsToActor=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}};e.IfcRelAssignsToControl=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}};class aa extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}}e.IfcRelAssignsToGroup=aa;e.IfcRelAssignsToGroupByFactor=class extends aa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.Factor=o,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToResource=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class ra extends mi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=ra;e.IfcRelAssociatesApproval=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends ra{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};class la extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=la;class oa extends la{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=oa;e.IfcRelConnectsPathElements=class extends oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends la{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};class ca extends la{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=ca;e.IfcRelConnectsWithEccentricity=class extends ca{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends oa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedCoverings=r,this.type=2802773753}};e.IfcRelDeclares=class extends mi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingContext=a,this.RelatedDefinitions=r,this.type=2565941209}};class ua extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2551354335}}e.IfcRelDecomposes=ua;class ha extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=693640335}}e.IfcRelDefines=ha;e.IfcRelDefinesByObject=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingObject=r,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedPropertySets=a,this.RelatingTemplate=r,this.type=307848117}};e.IfcRelDefinesByType=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInterferesElements=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedElement=r,this.InterferenceGeometry=l,this.InterferenceType=o,this.ImpliedOrder=c,this.type=427948657}};e.IfcRelNests=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelProjectsElement=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSequence=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.UserDefinedSequenceType=c,this.type=4122056220}};e.IfcRelServicesBuildings=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};class pa extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}}e.IfcRelSpaceBoundary=pa;class Aa extends pa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=Aa;e.IfcRelSpaceBoundary2ndLevel=class extends Aa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.CorrespondingBoundary=h,this.type=1521410863}};e.IfcRelVoidsElement=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Gi{constructor(e,t,s,n,i){super(e,t,s,n),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.ParamLength=i,this.type=816062949}};class da extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2914609552}}e.IfcResource=da;class fa extends bi{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}}e.IfcRevolvedAreaSolid=fa;e.IfcRevolvedAreaSolidTapered=class extends fa{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.EndSweptArea=a,this.type=3243963512}};e.IfcRightCircularCone=class extends ki{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends ki{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};e.IfcSimplePropertyTemplate=class extends na{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.PrimaryMeasureType=r,this.SecondaryMeasureType=l,this.Enumerators=o,this.PrimaryUnit=c,this.SecondaryUnit=u,this.Expression=h,this.AccessState=p,this.type=3663146110}};class Ia extends sa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=1412071761}}e.IfcSpatialElement=Ia;class ya extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=710998568}}e.IfcSpatialElementType=ya;class ma extends Ia{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=ma;class va extends ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=va;e.IfcSpatialZone=class extends Ia{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=463610769}};e.IfcSpatialZoneType=class extends ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=2481509218}};e.IfcSphere=class extends ki{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends zi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class wa extends sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=wa;class ga extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=ga;class Ea extends ga{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=Ea;class Ta extends wa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=Ta;class ba extends Ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=ba;e.IfcStructuralSurfaceMemberVarying=class extends ba{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=603775116}};e.IfcSubContractResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4095615324}};class Da extends Qi{constructor(e,t,s,n){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=699246055}}e.IfcSurfaceCurve=Da;e.IfcSurfaceCurveSweptAreaSolid=class extends bi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Pi{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Pi{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1580310250}};e.IfcTask=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Status=o,this.WorkMethod=c,this.IsMilestone=u,this.Priority=h,this.TaskTime=p,this.PredefinedType=A,this.type=3473067441}};e.IfcTaskType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.WorkMethod=h,this.type=3206491090}};class Pa extends Ri{constructor(e,t){super(e),this.Coordinates=t,this.type=2387106220}}e.IfcTessellatedFaceSet=Pa;e.IfcToroidalSurface=class extends zi{constructor(e,t,s,n){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=n,this.type=1935646853}};e.IfcTransportElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};e.IfcTriangulatedFaceSet=class extends Pa{constructor(e,t,s,n,i,a){super(e,t),this.Coordinates=t,this.Normals=s,this.Closed=n,this.CoordIndex=i,this.PnIndex=a,this.type=2916149573}};e.IfcWindowLiningProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=I,this.type=336235671}};e.IfcWindowPanelProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};class Ra extends Ji{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=Ra;class Ca extends qi{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Ca;e.IfcAdvancedBrepWithVoids=class extends Ca{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1674181508}};class _a extends xi{constructor(e,t,s,n,i,a,r,l){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.type=2887950389}}e.IfcBSplineSurface=_a;class Ba extends _a{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Ba;e.IfcBlock=class extends ki{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Ni{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class Oa extends Qi{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Oa;e.IfcBuilding=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};class Sa extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1950629157}}e.IfcBuildingElementType=Sa;e.IfcBuildingStorey=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};e.IfcChimneyType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends Ui{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcCivilElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893394355}};e.IfcColumnType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends na{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.UsageName=a,this.TemplateType=r,this.HasPropertyTemplates=l,this.type=3875453745}};class Na extends Oa{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Na;class xa extends Na{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=xa;class La extends Qi{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=La;e.IfcConstructionEquipmentResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1525564444}};class Ma extends da{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.type=2559216714}}e.IfcConstructionResource=Ma;class Fa extends Ji{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.type=3293443760}}e.IfcControl=Fa;e.IfcCostItem=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.CostValues=o,this.CostQuantities=c,this.type=3895139033}};e.IfcCostSchedule=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.SubmittedOn=c,this.UpdateDate=u,this.type=1419761937}};e.IfcCoveringType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3295246426}};e.IfcCurtainWallType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};e.IfcCylindricalSurface=class extends zi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Ha extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=Ha;class Ua extends Ha{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Ua;e.IfcDoorLiningProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=I,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.OperationType=h,this.ParameterTakesPrecedence=p,this.UserDefinedOperationType=A,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends $i{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Ga extends sa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Ga;e.IfcElementAssembly=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};e.IfcElementAssemblyType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2397081782}};class ja extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=ja;class Va extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Va;e.IfcEllipse=class extends La{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class ka extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=ka;e.IfcEngineType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcEvent=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.EventTriggerType=c,this.UserDefinedEventTriggerType=u,this.EventOccurenceTime=h,this.type=4148101412}};class Qa extends Ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Qa;class Wa extends qi{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Wa;e.IfcFacetedBrepWithVoids=class extends Wa{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};e.IfcFastener=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=647756555}};e.IfcFastenerType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2489546625}};class za extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=za;class Ka extends za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Ka;class Ya extends za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=Ya;class Xa extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Xa;class qa extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=qa;e.IfcFlowMeterType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Ja extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Ja;class Za extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Za;class $a extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=$a;class er extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=er;class tr extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tr;e.IfcFootingType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1893162501}};class sr extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}}e.IfcFurnishingElement=sr;e.IfcFurniture=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1509553395}};e.IfcGeographicElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3493046030}};e.IfcGrid=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.PredefinedType=h,this.type=3009204131}};class nr extends Ji{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=nr;e.IfcHeatExchangerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcIndexedPolyCurve=class extends Oa{constructor(e,t,s,n){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=n,this.type=2571569899}};e.IfcInterceptorType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3946677679}};e.IfcIntersectionCurve=class extends Da{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=3113134337}};e.IfcInventory=class extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcLaborResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3827777499}};e.IfcLampType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};e.IfcMechanicalFastener=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.PredefinedType=h,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.NominalLength=p,this.type=2108223431}};e.IfcMedicalDeviceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1114901282}};e.IfcMemberType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMotorConnectionType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcOccupant=class extends Ra{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};class ir extends Ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3588315303}}e.IfcOpeningElement=ir;e.IfcOpeningStandardCase=class extends ir{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3079942009}};e.IfcOutletType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPerformanceHistory=class extends Fa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LifeCyclePhase=l,this.PredefinedType=o,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPermit=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3327091369}};e.IfcPileType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1158309216}};e.IfcPipeFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends Pa{constructor(e,t,s,n,i){super(e,t),this.Coordinates=t,this.Closed=s,this.Faces=n,this.PnIndex=i,this.type=2839578677}};e.IfcPolyline=class extends Oa{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class ar extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=ar;e.IfcProcedure=class extends ta{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.type=2744685151}};e.IfcProjectOrder=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=2904328755}};e.IfcProjectionElement=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRailingType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRampFlightType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRampType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Ba{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.WeightsData=A,this.type=683857671}};class rr extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=rr;class lr extends Va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=964333572}}e.IfcReinforcingElementType=lr;e.IfcReinforcingMesh=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.PredefinedType=m,this.type=2320036040}};e.IfcReinforcingMeshType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.MeshLength=h,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=I,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=m,this.BendingShapeCode=v,this.BendingParameters=w,this.type=2310774935}};e.IfcRelAggregates=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRoofType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcSeamCurve=class extends Da{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=2157484638}};e.IfcShadingDeviceType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4074543187}};e.IfcSite=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSolarDeviceType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1072016465}};e.IfcSpace=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceType=class extends va{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=3812236995}};e.IfcStackTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};e.IfcStairType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=338393293}};class or extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=682877961}}e.IfcStructuralAction=or;class cr extends ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=cr;class ur extends or{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1004757350}}e.IfcStructuralCurveAction=ur;e.IfcStructuralCurveConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.Axis=c,this.type=4243806635}};class hr extends Ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=214636428}}e.IfcStructuralCurveMember=hr;e.IfcStructuralCurveMemberVarying=class extends hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=2757150158}};e.IfcStructuralLinearAction=class extends ur{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1807405624}};class pr extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}}e.IfcStructuralLoadGroup=pr;e.IfcStructuralPointAction=class extends or{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.ConditionCoordinateSystem=c,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends nr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};class Ar extends or{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=3657597509}}e.IfcStructuralSurfaceAction=Ar;e.IfcStructuralSurfaceConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=148013059}};e.IfcSurfaceFeature=class extends za{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class dr extends nr{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=dr;e.IfcSystemFurnitureElement=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=413509423}};e.IfcTankType=class extends $a{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTendon=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=2347447852}};e.IfcTendonAnchorType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3081323446}};e.IfcTendonType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.SheathDiameter=A,this.type=2415094496}};e.IfcTransformerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1620046519}};e.IfcTrimmedCurve=class extends Oa{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVibrationIsolator=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};e.IfcVirtualElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2769231204}};e.IfcVoidingFeature=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=926996030}};e.IfcWallType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};e.IfcWindowType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.PartitioningType=h,this.ParameterTakesPrecedence=p,this.UserDefinedPartitioningType=A,this.type=4009809668}};e.IfcWorkCalendar=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.WorkingTimes=l,this.ExceptionTimes=o,this.PredefinedType=c,this.type=4088093105}};class fr extends Fa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.type=1028945134}}e.IfcWorkControl=fr;e.IfcWorkPlan=class extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends dr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.type=1033361043}};e.IfcActionRequest=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAsset=class extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1532957894}};class Ir extends Oa{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=Ir;class yr extends Ir{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.type=2461110595}}e.IfcBSplineCurveWithKnots=yr;e.IfcBeamType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};e.IfcBoilerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class mr extends xa{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=mr;class vr extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3299480353}}e.IfcBuildingElement=vr;e.IfcBuildingElementPart=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=39481116}};e.IfcBuildingElementProxy=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcBuildingSystem=class extends dr{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=1177604601}};e.IfcBurnerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2674252688}};e.IfcCableSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcChillerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcChimney=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3296154744}};e.IfcCircle=class extends La{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1677625105}};e.IfcCoilType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};class wr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=843113511}}e.IfcColumn=wr;e.IfcColumnStandardCase=class extends wr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=905975707}};e.IfcCommunicationsApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=400855858}};e.IfcCompressorType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=488727124}};e.IfcCooledBeamType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCovering=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3495092785}};e.IfcDamperType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};e.IfcDiscreteAccessory=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2635815018}};e.IfcDistributionChamberElementType=class extends Ua{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class gr extends Ha{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=gr;class Er extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=Er;class Tr extends Er{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=Tr;e.IfcDistributionPort=class extends ar{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.PredefinedType=c,this.SystemType=u,this.type=3041715199}};class br extends dr{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=3205830791}}e.IfcDistributionSystem=br;class Dr extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=395920057}}e.IfcDoor=Dr;e.IfcDoorStandardCase=class extends Dr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=3242481149}};e.IfcDuctFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};e.IfcElectricApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $a{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricGeneratorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricMotorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};class Pr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}}e.IfcEnergyConversionDevice=Pr;e.IfcEngine=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3747195512}};e.IfcEvaporator=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=484807127}};e.IfcExternalSpatialElement=class extends Qa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=1209101575}};e.IfcFanType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class Rr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=Rr;class Cr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}}e.IfcFlowFitting=Cr;e.IfcFlowInstrumentType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMeter=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2188021234}};class _r extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}}e.IfcFlowMovingDevice=_r;class Br extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}}e.IfcFlowSegment=Br;class Or extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}}e.IfcFlowStorageDevice=Or;class Sr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}}e.IfcFlowTerminal=Sr;class Nr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}}e.IfcFlowTreatmentDevice=Nr;e.IfcFooting=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};e.IfcHeatExchanger=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3319311131}};e.IfcHumidifier=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2068733104}};e.IfcInterceptor=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4175244083}};e.IfcJunctionBox=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2176052936}};e.IfcLamp=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=76236018}};e.IfcLightFixture=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=629592764}};e.IfcMedicalDevice=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1437502449}};class xr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1073191201}}e.IfcMember=xr;e.IfcMemberStandardCase=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1911478936}};e.IfcMotorConnection=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2474470126}};e.IfcOuterBoundaryCurve=class extends mr{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3694346114}};e.IfcPile=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPipeFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=310824031}};e.IfcPipeSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3612865200}};class Lr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3171933400}}e.IfcPlate=Lr;e.IfcPlateStandardCase=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1156407060}};e.IfcProtectiveDevice=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=655969474}};e.IfcPump=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=90941305}};e.IfcRailing=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3024970846}};e.IfcRampFlight=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.WeightsData=c,this.type=1232101972}};e.IfcReinforcingBar=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.PredefinedType=A,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.BarLength=A,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=I,this.type=2572171363}};e.IfcRoof=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3053780830}};e.IfcSensorType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcShadingDevice=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1329646415}};class Mr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}}e.IfcSlab=Mr;e.IfcSlabElementedCase=class extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3127900445}};e.IfcSlabStandardCase=class extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3027962421}};e.IfcSolarDevice=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3420628829}};e.IfcSpaceHeater=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1999602285}};e.IfcStackTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1404847402}};e.IfcStair=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=331165859}};e.IfcStairFlight=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRisers=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.PredefinedType=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends dr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.SharedPlacement=u,this.type=2515109513}};e.IfcStructuralLoadCase=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.SelfWeightCoefficients=h,this.type=385403989}};e.IfcStructuralPlanarAction=class extends Ar{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1621171031}};e.IfcSwitchingDevice=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1162798199}};e.IfcTank=class extends Or{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=812556717}};e.IfcTransformer=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3825984169}};e.IfcTubeBundle=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4292641817}};e.IfcValve=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4207607924}};class Fr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391406946}}e.IfcWall=Fr;e.IfcWallElementedCase=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4156078855}};e.IfcWallStandardCase=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3512223829}};e.IfcWasteTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4237592921}};class Hr extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=3304561284}}e.IfcWindow=Hr;e.IfcWindowStandardCase=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=486154966}};e.IfcActuatorType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAirTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1634111441}};e.IfcAirTerminalBox=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2056796094}};e.IfcAlarmType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcAudioVisualAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=277319702}};class Ur extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=753842376}}e.IfcBeam=Ur;e.IfcBeamStandardCase=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2906023776}};e.IfcBoiler=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=32344328}};e.IfcBurner=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=635142910}};e.IfcCableCarrierSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3758799889}};e.IfcCableFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1051757585}};e.IfcCableSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4217484030}};e.IfcChiller=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3902619387}};e.IfcCoil=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3221913625}};e.IfcCompressor=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3571504051}};e.IfcCondenser=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2272882330}};e.IfcControllerType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcCooledBeam=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4136498852}};e.IfcCoolingTower=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3640358203}};e.IfcDamper=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4074379575}};e.IfcDistributionChamberElement=class extends Tr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1052013943}};e.IfcDistributionCircuit=class extends br{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=562808652}};class Gr extends Er{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1062813311}}e.IfcDistributionControlElement=Gr;e.IfcDuctFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=342316401}};e.IfcDuctSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3518393246}};e.IfcDuctSilencer=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1360408905}};e.IfcElectricAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Or{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3310460725}};e.IfcElectricGenerator=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=264262732}};e.IfcElectricMotor=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=402227799}};e.IfcElectricTimeControl=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1003880860}};e.IfcFan=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3415622556}};e.IfcFilter=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1426591983}};e.IfcFlowInstrument=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=182646315}};e.IfcProtectiveDeviceTrippingUnit=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2295281155}};e.IfcSensor=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4086658281}};e.IfcUnitaryControlElement=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=630975310}};e.IfcActuator=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4288193352}};e.IfcAlarm=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3087945054}};e.IfcController=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=25142252}}}(ub||(ub={})),eD[3]="IFC4X3",Yb[3]={3630933823:(e,t)=>new hb.IfcActorRole(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null),618182010:(e,t)=>new hb.IfcAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),2879124712:(e,t)=>new hb.IfcAlignmentParameterSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null),3633395639:(e,t)=>new hb.IfcAlignmentVerticalSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcLengthMeasure(t[2].value),new hb.IfcNonNegativeLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),new hb.IfcRatioMeasure(t[5].value),new hb.IfcRatioMeasure(t[6].value),t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]),639542469:(e,t)=>new hb.IfcApplication(e,new zb(t[0].value),new hb.IfcLabel(t[1].value),new hb.IfcLabel(t[2].value),new hb.IfcIdentifier(t[3].value)),411424972:(e,t)=>new hb.IfcAppliedValue(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),130549933:(e,t)=>new hb.IfcApproval(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),4037036970:(e,t)=>new hb.IfcBoundaryCondition(e,t[0]?new hb.IfcLabel(t[0].value):null),1560379544:(e,t)=>new hb.IfcBoundaryEdgeCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null),3367102660:(e,t)=>new hb.IfcBoundaryFaceCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null),1387855156:(e,t)=>new hb.IfcBoundaryNodeCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null),2069777674:(e,t)=>new hb.IfcBoundaryNodeConditionWarping(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null,t[7]?tD(3,t[7]):null),2859738748:(e,t)=>new hb.IfcConnectionGeometry(e),2614616156:(e,t)=>new hb.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2732653382:(e,t)=>new hb.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),775493141:(e,t)=>new hb.IfcConnectionVolumeGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new hb.IfcConstraint(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null),1785450214:(e,t)=>new hb.IfcCoordinateOperation(e,new zb(t[0].value),new zb(t[1].value)),1466758467:(e,t)=>new hb.IfcCoordinateReferenceSystem(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new hb.IfcIdentifier(t[3].value):null),602808272:(e,t)=>new hb.IfcCostValue(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),1765591967:(e,t)=>new hb.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null),1045800335:(e,t)=>new hb.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new hb.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),4294318154:(e,t)=>new hb.IfcExternalInformation(e),3200245327:(e,t)=>new hb.IfcExternalReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),2242383968:(e,t)=>new hb.IfcExternallyDefinedHatchStyle(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),1040185647:(e,t)=>new hb.IfcExternallyDefinedSurfaceStyle(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),3548104201:(e,t)=>new hb.IfcExternallyDefinedTextFont(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),852622518:(e,t)=>new hb.IfcGridAxis(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),new hb.IfcBoolean(t[2].value)),3020489413:(e,t)=>new hb.IfcIrregularTimeSeriesValue(e,new hb.IfcDateTime(t[0].value),t[1].map((e=>tD(3,e)))),2655187982:(e,t)=>new hb.IfcLibraryInformation(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcURIReference(t[4].value):null,t[5]?new hb.IfcText(t[5].value):null),3452421091:(e,t)=>new hb.IfcLibraryReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLanguageId(t[4].value):null,t[5]?new zb(t[5].value):null),4162380809:(e,t)=>new hb.IfcLightDistributionData(e,new hb.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new hb.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new hb.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new hb.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),3057273783:(e,t)=>new hb.IfcMapConversion(e,new zb(t[0].value),new zb(t[1].value),new hb.IfcLengthMeasure(t[2].value),new hb.IfcLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),t[5]?new hb.IfcReal(t[5].value):null,t[6]?new hb.IfcReal(t[6].value):null,t[7]?new hb.IfcReal(t[7].value):null,t[8]?new hb.IfcReal(t[8].value):null,t[9]?new hb.IfcReal(t[9].value):null),1847130766:(e,t)=>new hb.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),760658860:(e,t)=>new hb.IfcMaterialDefinition(e),248100487:(e,t)=>new hb.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new hb.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new hb.IfcLogical(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null),3303938423:(e,t)=>new hb.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null),1847252529:(e,t)=>new hb.IfcMaterialLayerWithOffsets(e,t[0]?new zb(t[0].value):null,new hb.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new hb.IfcLogical(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null,t[7],new hb.IfcLengthMeasure(t[8].value)),2199411900:(e,t)=>new hb.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),2235152071:(e,t)=>new hb.IfcMaterialProfile(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),164193824:(e,t)=>new hb.IfcMaterialProfileSet(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new zb(t[3].value):null),552965576:(e,t)=>new hb.IfcMaterialProfileWithOffsets(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,new hb.IfcLengthMeasure(t[6].value)),1507914824:(e,t)=>new hb.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new hb.IfcMeasureWithUnit(e,tD(3,t[0]),new zb(t[1].value)),3368373690:(e,t)=>new hb.IfcMetric(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7],t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),2706619895:(e,t)=>new hb.IfcMonetaryUnit(e,new hb.IfcLabel(t[0].value)),1918398963:(e,t)=>new hb.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new hb.IfcObjectPlacement(e,t[0]?new zb(t[0].value):null),2251480897:(e,t)=>new hb.IfcObjective(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8],t[9],t[10]?new hb.IfcLabel(t[10].value):null),4251960020:(e,t)=>new hb.IfcOrganization(e,t[0]?new hb.IfcIdentifier(t[0].value):null,new hb.IfcLabel(t[1].value),t[2]?new hb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1207048766:(e,t)=>new hb.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new hb.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new hb.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new hb.IfcPerson(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new hb.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new hb.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new hb.IfcPhysicalQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null),2226359599:(e,t)=>new hb.IfcPhysicalSimpleQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new hb.IfcPostalAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null),677532197:(e,t)=>new hb.IfcPresentationItem(e),2022622350:(e,t)=>new hb.IfcPresentationLayerAssignment(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new hb.IfcPresentationLayerWithStyle(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcIdentifier(t[3].value):null,new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new hb.IfcPresentationStyle(e,t[0]?new hb.IfcLabel(t[0].value):null),2095639259:(e,t)=>new hb.IfcProductRepresentation(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),3958567839:(e,t)=>new hb.IfcProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null),3843373140:(e,t)=>new hb.IfcProjectedCRS(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new hb.IfcIdentifier(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null),986844984:(e,t)=>new hb.IfcPropertyAbstraction(e),3710013099:(e,t)=>new hb.IfcPropertyEnumeration(e,new hb.IfcLabel(t[0].value),t[1].map((e=>tD(3,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new hb.IfcQuantityArea(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcAreaMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2093928680:(e,t)=>new hb.IfcQuantityCount(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcCountMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),931644368:(e,t)=>new hb.IfcQuantityLength(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcLengthMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2691318326:(e,t)=>new hb.IfcQuantityNumber(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcNumericMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),3252649465:(e,t)=>new hb.IfcQuantityTime(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcTimeMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2405470396:(e,t)=>new hb.IfcQuantityVolume(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcVolumeMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),825690147:(e,t)=>new hb.IfcQuantityWeight(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcMassMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),3915482550:(e,t)=>new hb.IfcRecurrencePattern(e,t[0],t[1]?t[1].map((e=>new hb.IfcDayInMonthNumber(e.value))):null,t[2]?t[2].map((e=>new hb.IfcDayInWeekNumber(e.value))):null,t[3]?t[3].map((e=>new hb.IfcMonthInYearNumber(e.value))):null,t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcInteger(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null),2433181523:(e,t)=>new hb.IfcReference(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcInteger(e.value))):null,t[4]?new zb(t[4].value):null),1076942058:(e,t)=>new hb.IfcRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new hb.IfcRepresentationContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null),3008791417:(e,t)=>new hb.IfcRepresentationItem(e),1660063152:(e,t)=>new hb.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),2439245199:(e,t)=>new hb.IfcResourceLevelRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null),2341007311:(e,t)=>new hb.IfcRoot(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),448429030:(e,t)=>new hb.IfcSIUnit(e,new zb(t[0].value),t[1],t[2],t[3]),1054537805:(e,t)=>new hb.IfcSchedulingTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null),867548509:(e,t)=>new hb.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,new hb.IfcLogical(t[3].value),t[4]?new zb(t[4].value):null),3982875396:(e,t)=>new hb.IfcShapeModel(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new hb.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2273995522:(e,t)=>new hb.IfcStructuralConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null),2162789131:(e,t)=>new hb.IfcStructuralLoad(e,t[0]?new hb.IfcLabel(t[0].value):null),3478079324:(e,t)=>new hb.IfcStructuralLoadConfiguration(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?t[2].map((e=>new hb.IfcLengthMeasure(e.value))):null),609421318:(e,t)=>new hb.IfcStructuralLoadOrResult(e,t[0]?new hb.IfcLabel(t[0].value):null),2525727697:(e,t)=>new hb.IfcStructuralLoadStatic(e,t[0]?new hb.IfcLabel(t[0].value):null),3408363356:(e,t)=>new hb.IfcStructuralLoadTemperature(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new hb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new hb.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new hb.IfcStyleModel(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new hb.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcLabel(t[2].value):null),3049322572:(e,t)=>new hb.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2934153892:(e,t)=>new hb.IfcSurfaceReinforcementArea(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new hb.IfcLengthMeasure(e.value))):null,t[2]?t[2].map((e=>new hb.IfcLengthMeasure(e.value))):null,t[3]?new hb.IfcRatioMeasure(t[3].value):null),1300840506:(e,t)=>new hb.IfcSurfaceStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new hb.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new hb.IfcSurfaceStyleRefraction(e,t[0]?new hb.IfcReal(t[0].value):null,t[1]?new hb.IfcReal(t[1].value):null),846575682:(e,t)=>new hb.IfcSurfaceStyleShading(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null),1351298697:(e,t)=>new hb.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new hb.IfcSurfaceTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null),985171141:(e,t)=>new hb.IfcTable(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new zb(e.value))):null,t[2]?t[2].map((e=>new zb(e.value))):null),2043862942:(e,t)=>new hb.IfcTableColumn(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null),531007025:(e,t)=>new hb.IfcTableRow(e,t[0]?t[0].map((e=>tD(3,e))):null,t[1]?new hb.IfcBoolean(t[1].value):null),1549132990:(e,t)=>new hb.IfcTaskTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3],t[4]?new hb.IfcDuration(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcDateTime(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcDuration(t[12].value):null,t[13]?new hb.IfcBoolean(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcDateTime(t[16].value):null,t[17]?new hb.IfcDateTime(t[17].value):null,t[18]?new hb.IfcDuration(t[18].value):null,t[19]?new hb.IfcPositiveRatioMeasure(t[19].value):null),2771591690:(e,t)=>new hb.IfcTaskTimeRecurring(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3],t[4]?new hb.IfcDuration(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcDateTime(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcDuration(t[12].value):null,t[13]?new hb.IfcBoolean(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcDateTime(t[16].value):null,t[17]?new hb.IfcDateTime(t[17].value):null,t[18]?new hb.IfcDuration(t[18].value):null,t[19]?new hb.IfcPositiveRatioMeasure(t[19].value):null,new zb(t[20].value)),912023232:(e,t)=>new hb.IfcTelecomAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new hb.IfcLabel(e.value))):null,t[7]?new hb.IfcURIReference(t[7].value):null,t[8]?t[8].map((e=>new hb.IfcURIReference(e.value))):null),1447204868:(e,t)=>new hb.IfcTextStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcBoolean(t[4].value):null),2636378356:(e,t)=>new hb.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new hb.IfcTextStyleTextModel(e,t[0]?tD(3,t[0]):null,t[1]?new hb.IfcTextAlignment(t[1].value):null,t[2]?new hb.IfcTextDecoration(t[2].value):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?new hb.IfcTextTransformation(t[5].value):null,t[6]?tD(3,t[6]):null),280115917:(e,t)=>new hb.IfcTextureCoordinate(e,t[0].map((e=>new zb(e.value)))),1742049831:(e,t)=>new hb.IfcTextureCoordinateGenerator(e,t[0].map((e=>new zb(e.value))),new hb.IfcLabel(t[1].value),t[2]?t[2].map((e=>new hb.IfcReal(e.value))):null),222769930:(e,t)=>new hb.IfcTextureCoordinateIndices(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),new zb(t[1].value)),1010789467:(e,t)=>new hb.IfcTextureCoordinateIndicesWithVoids(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),new zb(t[1].value),t[2].map((e=>new hb.IfcPositiveInteger(e.value)))),2552916305:(e,t)=>new hb.IfcTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new zb(t[2].value)),1210645708:(e,t)=>new hb.IfcTextureVertex(e,t[0].map((e=>new hb.IfcParameterValue(e.value)))),3611470254:(e,t)=>new hb.IfcTextureVertexList(e,t[0].map((e=>new hb.IfcParameterValue(e.value)))),1199560280:(e,t)=>new hb.IfcTimePeriod(e,new hb.IfcTime(t[0].value),new hb.IfcTime(t[1].value)),3101149627:(e,t)=>new hb.IfcTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),581633288:(e,t)=>new hb.IfcTimeSeriesValue(e,t[0].map((e=>tD(3,e)))),1377556343:(e,t)=>new hb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new hb.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new hb.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new hb.IfcVertex(e),1907098498:(e,t)=>new hb.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new hb.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new hb.IfcLengthMeasure(e.value)))),1236880293:(e,t)=>new hb.IfcWorkTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null),3752311538:(e,t)=>new hb.IfcAlignmentCantSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcLengthMeasure(t[2].value),new hb.IfcNonNegativeLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),t[5]?new hb.IfcLengthMeasure(t[5].value):null,new hb.IfcLengthMeasure(t[6].value),t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]),536804194:(e,t)=>new hb.IfcAlignmentHorizontalSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),new hb.IfcLengthMeasure(t[5].value),new hb.IfcNonNegativeLengthMeasure(t[6].value),t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]),3869604511:(e,t)=>new hb.IfcApprovalRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),3798115385:(e,t)=>new hb.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new hb.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new hb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new hb.IfcBlobTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcIdentifier(t[5].value),new hb.IfcBinary(t[6].value)),3150382593:(e,t)=>new hb.IfcCenterLineProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),747523909:(e,t)=>new hb.IfcClassification(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcDate(t[2].value):null,new hb.IfcLabel(t[3].value),t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcURIReference(t[5].value):null,t[6]?t[6].map((e=>new hb.IfcIdentifier(e.value))):null),647927063:(e,t)=>new hb.IfcClassificationReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null),3285139300:(e,t)=>new hb.IfcColourRgbList(e,t[0].map((e=>new hb.IfcNormalisedRatioMeasure(e.value)))),3264961684:(e,t)=>new hb.IfcColourSpecification(e,t[0]?new hb.IfcLabel(t[0].value):null),1485152156:(e,t)=>new hb.IfcCompositeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcLabel(t[3].value):null),370225590:(e,t)=>new hb.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new hb.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new hb.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new hb.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value)),2889183280:(e,t)=>new hb.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value),new zb(t[3].value)),2713554722:(e,t)=>new hb.IfcConversionBasedUnitWithOffset(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value),new zb(t[3].value),new hb.IfcReal(t[4].value)),539742890:(e,t)=>new hb.IfcCurrencyRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),new hb.IfcPositiveRatioMeasure(t[4].value),t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new zb(t[6].value):null),3800577675:(e,t)=>new hb.IfcCurveStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcBoolean(t[4].value):null),1105321065:(e,t)=>new hb.IfcCurveStyleFont(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new hb.IfcCurveStyleFontAndScaling(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),new hb.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new hb.IfcCurveStyleFontPattern(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),3632507154:(e,t)=>new hb.IfcDerivedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),1154170062:(e,t)=>new hb.IfcDocumentInformation(e,new hb.IfcIdentifier(t[0].value),new hb.IfcLabel(t[1].value),t[2]?new hb.IfcText(t[2].value):null,t[3]?new hb.IfcURIReference(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcText(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDateTime(t[11].value):null,t[12]?new hb.IfcIdentifier(t[12].value):null,t[13]?new hb.IfcDate(t[13].value):null,t[14]?new hb.IfcDate(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new hb.IfcDocumentInformationRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new hb.IfcLabel(t[4].value):null),3732053477:(e,t)=>new hb.IfcDocumentReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null),3900360178:(e,t)=>new hb.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new hb.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new hb.IfcBoolean(t[3].value)),211053100:(e,t)=>new hb.IfcEventTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcDateTime(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null),297599258:(e,t)=>new hb.IfcExtendedProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),1437805879:(e,t)=>new hb.IfcExternalReferenceRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),2556980723:(e,t)=>new hb.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new hb.IfcFaceBound(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),803316827:(e,t)=>new hb.IfcFaceOuterBound(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),3008276851:(e,t)=>new hb.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),4219587988:(e,t)=>new hb.IfcFailureConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcForceMeasure(t[4].value):null,t[5]?new hb.IfcForceMeasure(t[5].value):null,t[6]?new hb.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new hb.IfcFillAreaStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcBoolean(t[2].value):null),3448662350:(e,t)=>new hb.IfcGeometricRepresentationContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcDimensionCount(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new hb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new hb.IfcGeometricRepresentationSubContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcPositiveRatioMeasure(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),3590301190:(e,t)=>new hb.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new hb.IfcGridPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value),t[2]?new zb(t[2].value):null),812098782:(e,t)=>new hb.IfcHalfSpaceSolid(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),3905492369:(e,t)=>new hb.IfcImageTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcURIReference(t[5].value)),3570813810:(e,t)=>new hb.IfcIndexedColourMap(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null,new zb(t[2].value),t[3].map((e=>new hb.IfcPositiveInteger(e.value)))),1437953363:(e,t)=>new hb.IfcIndexedTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value)),2133299955:(e,t)=>new hb.IfcIndexedTriangleTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3]?t[3].map((e=>new hb.IfcPositiveInteger(e.value))):null),3741457305:(e,t)=>new hb.IfcIrregularTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1585845231:(e,t)=>new hb.IfcLagTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,tD(3,t[3]),t[4]),1402838566:(e,t)=>new hb.IfcLightSource(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new hb.IfcLightSourceAmbient(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new hb.IfcLightSourceDirectional(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new hb.IfcLightSourceGoniometric(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new hb.IfcThermodynamicTemperatureMeasure(t[6].value),new hb.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new hb.IfcLightSourcePositional(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcReal(t[6].value),new hb.IfcReal(t[7].value),new hb.IfcReal(t[8].value)),3422422726:(e,t)=>new hb.IfcLightSourceSpot(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcReal(t[6].value),new hb.IfcReal(t[7].value),new hb.IfcReal(t[8].value),new zb(t[9].value),t[10]?new hb.IfcReal(t[10].value):null,new hb.IfcPositivePlaneAngleMeasure(t[11].value),new hb.IfcPositivePlaneAngleMeasure(t[12].value)),388784114:(e,t)=>new hb.IfcLinearPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value),t[2]?new zb(t[2].value):null),2624227202:(e,t)=>new hb.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new hb.IfcLoop(e),2347385850:(e,t)=>new hb.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),1838606355:(e,t)=>new hb.IfcMaterial(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),3708119e3:(e,t)=>new hb.IfcMaterialConstituent(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),2852063980:(e,t)=>new hb.IfcMaterialConstituentSet(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>new zb(e.value))):null),2022407955:(e,t)=>new hb.IfcMaterialDefinitionRepresentation(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1303795690:(e,t)=>new hb.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new hb.IfcLengthMeasure(t[3].value),t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null),3079605661:(e,t)=>new hb.IfcMaterialProfileSetUsage(e,new zb(t[0].value),t[1]?new hb.IfcCardinalPointReference(t[1].value):null,t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null),3404854881:(e,t)=>new hb.IfcMaterialProfileSetUsageTapering(e,new zb(t[0].value),t[1]?new hb.IfcCardinalPointReference(t[1].value):null,t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcCardinalPointReference(t[4].value):null),3265635763:(e,t)=>new hb.IfcMaterialProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),853536259:(e,t)=>new hb.IfcMaterialRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new hb.IfcLabel(t[4].value):null),2998442950:(e,t)=>new hb.IfcMirroredProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),219451334:(e,t)=>new hb.IfcObjectDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),182550632:(e,t)=>new hb.IfcOpenCrossProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcBoolean(t[2].value),t[3].map((e=>new hb.IfcNonNegativeLengthMeasure(e.value))),t[4].map((e=>new hb.IfcPlaneAngleMeasure(e.value))),t[5]?t[5].map((e=>new hb.IfcLabel(e.value))):null,t[6]?new zb(t[6].value):null),2665983363:(e,t)=>new hb.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1411181986:(e,t)=>new hb.IfcOrganizationRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1029017970:(e,t)=>new hb.IfcOrientedEdge(e,new zb(t[0].value),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),2529465313:(e,t)=>new hb.IfcParameterizedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null),2519244187:(e,t)=>new hb.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new hb.IfcPhysicalComplexQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new hb.IfcLabel(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),597895409:(e,t)=>new hb.IfcPixelTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcInteger(t[5].value),new hb.IfcInteger(t[6].value),new hb.IfcInteger(t[7].value),t[8].map((e=>new hb.IfcBinary(e.value)))),2004835150:(e,t)=>new hb.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new hb.IfcPlanarExtent(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new hb.IfcPoint(e),2165702409:(e,t)=>new hb.IfcPointByDistanceExpression(e,tD(3,t[0]),t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,new zb(t[4].value)),4022376103:(e,t)=>new hb.IfcPointOnCurve(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new hb.IfcPointOnSurface(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value),new hb.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new hb.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new hb.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value),new zb(t[2].value),new zb(t[3].value)),3727388367:(e,t)=>new hb.IfcPreDefinedItem(e,new hb.IfcLabel(t[0].value)),3778827333:(e,t)=>new hb.IfcPreDefinedProperties(e),1775413392:(e,t)=>new hb.IfcPreDefinedTextFont(e,new hb.IfcLabel(t[0].value)),673634403:(e,t)=>new hb.IfcProductDefinitionShape(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2802850158:(e,t)=>new hb.IfcProfileProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),2598011224:(e,t)=>new hb.IfcProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null),1680319473:(e,t)=>new hb.IfcPropertyDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),148025276:(e,t)=>new hb.IfcPropertyDependencyRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcText(t[4].value):null),3357820518:(e,t)=>new hb.IfcPropertySetDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1482703590:(e,t)=>new hb.IfcPropertyTemplateDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2090586900:(e,t)=>new hb.IfcQuantitySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),3615266464:(e,t)=>new hb.IfcRectangleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new hb.IfcRegularTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new hb.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),1580146022:(e,t)=>new hb.IfcReinforcementBarProperties(e,new hb.IfcAreaMeasure(t[0].value),new hb.IfcLabel(t[1].value),t[2],t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcCountMeasure(t[5].value):null),478536968:(e,t)=>new hb.IfcRelationship(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2943643501:(e,t)=>new hb.IfcResourceApprovalRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1608871552:(e,t)=>new hb.IfcResourceConstraintRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1042787934:(e,t)=>new hb.IfcResourceTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcDuration(t[3].value):null,t[4]?new hb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcDuration(t[8].value):null,t[9]?new hb.IfcBoolean(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcPositiveRatioMeasure(t[12].value):null,t[13]?new hb.IfcDateTime(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new hb.IfcPositiveRatioMeasure(t[17].value):null),2778083089:(e,t)=>new hb.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value)),2042790032:(e,t)=>new hb.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new hb.IfcSectionReinforcementProperties(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1509187699:(e,t)=>new hb.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),823603102:(e,t)=>new hb.IfcSegment(e,t[0]),4124623270:(e,t)=>new hb.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),3692461612:(e,t)=>new hb.IfcSimpleProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null),2609359061:(e,t)=>new hb.IfcSlippageConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new hb.IfcSolidModel(e),1595516126:(e,t)=>new hb.IfcStructuralLoadLinearForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLinearForceMeasure(t[1].value):null,t[2]?new hb.IfcLinearForceMeasure(t[2].value):null,t[3]?new hb.IfcLinearForceMeasure(t[3].value):null,t[4]?new hb.IfcLinearMomentMeasure(t[4].value):null,t[5]?new hb.IfcLinearMomentMeasure(t[5].value):null,t[6]?new hb.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new hb.IfcStructuralLoadPlanarForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcPlanarForceMeasure(t[1].value):null,t[2]?new hb.IfcPlanarForceMeasure(t[2].value):null,t[3]?new hb.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new hb.IfcStructuralLoadSingleDisplacement(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new hb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new hb.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new hb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new hb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new hb.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new hb.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new hb.IfcStructuralLoadSingleForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcTorqueMeasure(t[4].value):null,t[5]?new hb.IfcTorqueMeasure(t[5].value):null,t[6]?new hb.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new hb.IfcStructuralLoadSingleForceWarping(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcTorqueMeasure(t[4].value):null,t[5]?new hb.IfcTorqueMeasure(t[5].value):null,t[6]?new hb.IfcTorqueMeasure(t[6].value):null,t[7]?new hb.IfcWarpingMomentMeasure(t[7].value):null),2233826070:(e,t)=>new hb.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new hb.IfcSurface(e),1878645084:(e,t)=>new hb.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(3,t[7]):null,t[8]),2247615214:(e,t)=>new hb.IfcSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1260650574:(e,t)=>new hb.IfcSweptDiskSolid(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new hb.IfcParameterValue(t[3].value):null,t[4]?new hb.IfcParameterValue(t[4].value):null),1096409881:(e,t)=>new hb.IfcSweptDiskSolidPolygonal(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new hb.IfcParameterValue(t[3].value):null,t[4]?new hb.IfcParameterValue(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null),230924584:(e,t)=>new hb.IfcSweptSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3071757647:(e,t)=>new hb.IfcTShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcNonNegativeLengthMeasure(t[9].value):null,t[10]?new hb.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new hb.IfcPlaneAngleMeasure(t[11].value):null),901063453:(e,t)=>new hb.IfcTessellatedItem(e),4282788508:(e,t)=>new hb.IfcTextLiteral(e,new hb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new hb.IfcTextLiteralWithExtent(e,new hb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new hb.IfcBoxAlignment(t[4].value)),1983826977:(e,t)=>new hb.IfcTextStyleFontModel(e,new hb.IfcLabel(t[0].value),t[1].map((e=>new hb.IfcTextFontName(e.value))),t[2]?new hb.IfcFontStyle(t[2].value):null,t[3]?new hb.IfcFontVariant(t[3].value):null,t[4]?new hb.IfcFontWeight(t[4].value):null,tD(3,t[5])),2715220739:(e,t)=>new hb.IfcTrapeziumProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcLengthMeasure(t[6].value)),1628702193:(e,t)=>new hb.IfcTypeObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),3736923433:(e,t)=>new hb.IfcTypeProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2347495698:(e,t)=>new hb.IfcTypeProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null),3698973494:(e,t)=>new hb.IfcTypeResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),427810014:(e,t)=>new hb.IfcUShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcPlaneAngleMeasure(t[9].value):null),1417489154:(e,t)=>new hb.IfcVector(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new hb.IfcVertexLoop(e,new zb(t[0].value)),2543172580:(e,t)=>new hb.IfcZShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null),3406155212:(e,t)=>new hb.IfcAdvancedFace(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),669184980:(e,t)=>new hb.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),3207858831:(e,t)=>new hb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,new hb.IfcPositiveLengthMeasure(t[8].value),t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcNonNegativeLengthMeasure(t[10].value):null,t[11]?new hb.IfcNonNegativeLengthMeasure(t[11].value):null,t[12]?new hb.IfcPlaneAngleMeasure(t[12].value):null,t[13]?new hb.IfcNonNegativeLengthMeasure(t[13].value):null,t[14]?new hb.IfcPlaneAngleMeasure(t[14].value):null),4261334040:(e,t)=>new hb.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new hb.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new hb.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),3425423356:(e,t)=>new hb.IfcAxis2PlacementLinear(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new hb.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new hb.IfcBoundedSurface(e),2581212453:(e,t)=>new hb.IfcBoundingBox(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new hb.IfcBoxedHalfSpace(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value),new zb(t[2].value)),2898889636:(e,t)=>new hb.IfcCShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null),1123145078:(e,t)=>new hb.IfcCartesianPoint(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value)))),574549367:(e,t)=>new hb.IfcCartesianPointList(e),1675464909:(e,t)=>new hb.IfcCartesianPointList2D(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value))),t[1]?t[1].map((e=>new hb.IfcLabel(e.value))):null),2059837836:(e,t)=>new hb.IfcCartesianPointList3D(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value))),t[1]?t[1].map((e=>new hb.IfcLabel(e.value))):null),59481748:(e,t)=>new hb.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null),3749851601:(e,t)=>new hb.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null),3486308946:(e,t)=>new hb.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new hb.IfcReal(t[4].value):null),3331915920:(e,t)=>new hb.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new hb.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcReal(t[5].value):null,t[6]?new hb.IfcReal(t[6].value):null),1383045692:(e,t)=>new hb.IfcCircleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new hb.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),776857604:(e,t)=>new hb.IfcColourRgb(e,t[0]?new hb.IfcLabel(t[0].value):null,new hb.IfcNormalisedRatioMeasure(t[1].value),new hb.IfcNormalisedRatioMeasure(t[2].value),new hb.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new hb.IfcComplexProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),2485617015:(e,t)=>new hb.IfcCompositeCurveSegment(e,t[0],new hb.IfcBoolean(t[1].value),new zb(t[2].value)),2574617495:(e,t)=>new hb.IfcConstructionResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null),3419103109:(e,t)=>new hb.IfcContext(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),1815067380:(e,t)=>new hb.IfcCrewResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2506170314:(e,t)=>new hb.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new hb.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new hb.IfcCurve(e),2827736869:(e,t)=>new hb.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2629017746:(e,t)=>new hb.IfcCurveBoundedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new hb.IfcBoolean(t[2].value)),4212018352:(e,t)=>new hb.IfcCurveSegment(e,t[0],new zb(t[1].value),tD(3,t[2]),tD(3,t[3]),new zb(t[4].value)),32440307:(e,t)=>new hb.IfcDirection(e,t[0].map((e=>new hb.IfcReal(e.value)))),593015953:(e,t)=>new hb.IfcDirectrixCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null),1472233963:(e,t)=>new hb.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new hb.IfcElementQuantity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new hb.IfcElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2777663545:(e,t)=>new hb.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new hb.IfcEllipseProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),4024345920:(e,t)=>new hb.IfcEventType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcLabel(t[11].value):null),477187591:(e,t)=>new hb.IfcExtrudedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),2804161546:(e,t)=>new hb.IfcExtrudedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value),new zb(t[4].value)),2047409740:(e,t)=>new hb.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new hb.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new hb.IfcPlaneAngleMeasure(t[4].value)),315944413:(e,t)=>new hb.IfcFillAreaStyleTiles(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new hb.IfcPositiveRatioMeasure(t[2].value)),2652556860:(e,t)=>new hb.IfcFixedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),4238390223:(e,t)=>new hb.IfcFurnishingElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1268542332:(e,t)=>new hb.IfcFurnitureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]),4095422895:(e,t)=>new hb.IfcGeographicElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new hb.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new hb.IfcIShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcPlaneAngleMeasure(t[9].value):null),178912537:(e,t)=>new hb.IfcIndexedPolygonalFace(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value)))),2294589976:(e,t)=>new hb.IfcIndexedPolygonalFaceWithVoids(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),t[1].map((e=>new hb.IfcPositiveInteger(e.value)))),3465909080:(e,t)=>new hb.IfcIndexedPolygonalTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3].map((e=>new zb(e.value)))),572779678:(e,t)=>new hb.IfcLShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,new hb.IfcPositiveLengthMeasure(t[5].value),t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcPlaneAngleMeasure(t[8].value):null),428585644:(e,t)=>new hb.IfcLaborResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1281925730:(e,t)=>new hb.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new hb.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new hb.IfcObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),590820931:(e,t)=>new hb.IfcOffsetCurve(e,new zb(t[0].value)),3388369263:(e,t)=>new hb.IfcOffsetCurve2D(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value),new hb.IfcLogical(t[2].value)),3505215534:(e,t)=>new hb.IfcOffsetCurve3D(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value),new hb.IfcLogical(t[2].value),new zb(t[3].value)),2485787929:(e,t)=>new hb.IfcOffsetCurveByDistances(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcLabel(t[2].value):null),1682466193:(e,t)=>new hb.IfcPcurve(e,new zb(t[0].value),new zb(t[1].value)),603570806:(e,t)=>new hb.IfcPlanarBox(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new hb.IfcPlane(e,new zb(t[0].value)),3381221214:(e,t)=>new hb.IfcPolynomialCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>new hb.IfcReal(e.value))):null,t[2]?t[2].map((e=>new hb.IfcReal(e.value))):null,t[3]?t[3].map((e=>new hb.IfcReal(e.value))):null),759155922:(e,t)=>new hb.IfcPreDefinedColour(e,new hb.IfcLabel(t[0].value)),2559016684:(e,t)=>new hb.IfcPreDefinedCurveFont(e,new hb.IfcLabel(t[0].value)),3967405729:(e,t)=>new hb.IfcPreDefinedPropertySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),569719735:(e,t)=>new hb.IfcProcedureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2945172077:(e,t)=>new hb.IfcProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null),4208778838:(e,t)=>new hb.IfcProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new hb.IfcProject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),653396225:(e,t)=>new hb.IfcProjectLibrary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),871118103:(e,t)=>new hb.IfcPropertyBoundedValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?new zb(t[4].value):null,t[5]?tD(3,t[5]):null),4166981789:(e,t)=>new hb.IfcPropertyEnumeratedValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new hb.IfcPropertyListValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?new zb(t[3].value):null),941946838:(e,t)=>new hb.IfcPropertyReferenceValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null),1451395588:(e,t)=>new hb.IfcPropertySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),492091185:(e,t)=>new hb.IfcPropertySetTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5]?new hb.IfcIdentifier(t[5].value):null,t[6].map((e=>new zb(e.value)))),3650150729:(e,t)=>new hb.IfcPropertySingleValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new hb.IfcPropertyTableValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?t[3].map((e=>tD(3,e))):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3521284610:(e,t)=>new hb.IfcPropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2770003689:(e,t)=>new hb.IfcRectangleHollowProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null),2798486643:(e,t)=>new hb.IfcRectangularPyramid(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new hb.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value),new hb.IfcParameterValue(t[2].value),new hb.IfcParameterValue(t[3].value),new hb.IfcParameterValue(t[4].value),new hb.IfcBoolean(t[5].value),new hb.IfcBoolean(t[6].value)),3765753017:(e,t)=>new hb.IfcReinforcementDefinitionProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),3939117080:(e,t)=>new hb.IfcRelAssigns(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new hb.IfcRelAssignsToActor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new hb.IfcRelAssignsToControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new hb.IfcRelAssignsToGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1027710054:(e,t)=>new hb.IfcRelAssignsToGroupByFactor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),new hb.IfcRatioMeasure(t[7].value)),4278684876:(e,t)=>new hb.IfcRelAssignsToProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new hb.IfcRelAssignsToProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new hb.IfcRelAssignsToResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new hb.IfcRelAssociates(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4095574036:(e,t)=>new hb.IfcRelAssociatesApproval(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new hb.IfcRelAssociatesClassification(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new hb.IfcRelAssociatesConstraint(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]?new hb.IfcLabel(t[5].value):null,new zb(t[6].value)),982818633:(e,t)=>new hb.IfcRelAssociatesDocument(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new hb.IfcRelAssociatesLibrary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new hb.IfcRelAssociatesMaterial(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),1033248425:(e,t)=>new hb.IfcRelAssociatesProfileDef(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),826625072:(e,t)=>new hb.IfcRelConnects(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1204542856:(e,t)=>new hb.IfcRelConnectsElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new hb.IfcRelConnectsPathElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9],t[10]),4201705270:(e,t)=>new hb.IfcRelConnectsPortToElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new hb.IfcRelConnectsPorts(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new hb.IfcRelConnectsStructuralActivity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new hb.IfcRelConnectsStructuralMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new hb.IfcRelConnectsWithEccentricity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new hb.IfcRelConnectsWithRealizingElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new hb.IfcLabel(t[8].value):null),3242617779:(e,t)=>new hb.IfcRelContainedInSpatialStructure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new hb.IfcRelCoversBldgElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new hb.IfcRelCoversSpaces(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2565941209:(e,t)=>new hb.IfcRelDeclares(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new hb.IfcRelDecomposes(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),693640335:(e,t)=>new hb.IfcRelDefines(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1462361463:(e,t)=>new hb.IfcRelDefinesByObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4186316022:(e,t)=>new hb.IfcRelDefinesByProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),307848117:(e,t)=>new hb.IfcRelDefinesByTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new hb.IfcRelDefinesByType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new hb.IfcRelFillsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new hb.IfcRelFlowControlElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),427948657:(e,t)=>new hb.IfcRelInterferesElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcIdentifier(t[8].value):null,new hb.IfcLogical(t[9].value)),3268803585:(e,t)=>new hb.IfcRelNests(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1441486842:(e,t)=>new hb.IfcRelPositions(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),750771296:(e,t)=>new hb.IfcRelProjectsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new hb.IfcRelReferencedInSpatialStructure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4122056220:(e,t)=>new hb.IfcRelSequence(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcLabel(t[8].value):null),366585022:(e,t)=>new hb.IfcRelServicesBuildings(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new hb.IfcRelSpaceBoundary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]),3523091289:(e,t)=>new hb.IfcRelSpaceBoundary1stLevel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null),1521410863:(e,t)=>new hb.IfcRelSpaceBoundary2ndLevel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),1401173127:(e,t)=>new hb.IfcRelVoidsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),816062949:(e,t)=>new hb.IfcReparametrisedCompositeCurveSegment(e,t[0],new hb.IfcBoolean(t[1].value),new zb(t[2].value),new hb.IfcParameterValue(t[3].value)),2914609552:(e,t)=>new hb.IfcResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null),1856042241:(e,t)=>new hb.IfcRevolvedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value)),3243963512:(e,t)=>new hb.IfcRevolvedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value),new zb(t[4].value)),4158566097:(e,t)=>new hb.IfcRightCircularCone(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new hb.IfcRightCircularCylinder(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),1862484736:(e,t)=>new hb.IfcSectionedSolid(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1290935644:(e,t)=>new hb.IfcSectionedSolidHorizontal(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),1356537516:(e,t)=>new hb.IfcSectionedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),3663146110:(e,t)=>new hb.IfcSimplePropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new hb.IfcLabel(t[10].value):null,t[11]),1412071761:(e,t)=>new hb.IfcSpatialElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null),710998568:(e,t)=>new hb.IfcSpatialElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2706606064:(e,t)=>new hb.IfcSpatialStructureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new hb.IfcSpatialStructureElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),463610769:(e,t)=>new hb.IfcSpatialZone(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),2481509218:(e,t)=>new hb.IfcSpatialZoneType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),451544542:(e,t)=>new hb.IfcSphere(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),4015995234:(e,t)=>new hb.IfcSphericalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),2735484536:(e,t)=>new hb.IfcSpiral(e,t[0]?new zb(t[0].value):null),3544373492:(e,t)=>new hb.IfcStructuralActivity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new hb.IfcStructuralItem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new hb.IfcStructuralMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new hb.IfcStructuralReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new hb.IfcStructuralSurfaceMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new hb.IfcStructuralSurfaceMemberVarying(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null),603775116:(e,t)=>new hb.IfcStructuralSurfaceReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),4095615324:(e,t)=>new hb.IfcSubContractResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),699246055:(e,t)=>new hb.IfcSurfaceCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2028607225:(e,t)=>new hb.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),2809605785:(e,t)=>new hb.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new hb.IfcSurfaceOfRevolution(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),1580310250:(e,t)=>new hb.IfcSystemFurnitureElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3473067441:(e,t)=>new hb.IfcTask(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,new hb.IfcBoolean(t[9].value),t[10]?new hb.IfcInteger(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]),3206491090:(e,t)=>new hb.IfcTaskType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),2387106220:(e,t)=>new hb.IfcTessellatedFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null),782932809:(e,t)=>new hb.IfcThirdOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null),1935646853:(e,t)=>new hb.IfcToroidalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),3665877780:(e,t)=>new hb.IfcTransportationDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2916149573:(e,t)=>new hb.IfcTriangulatedFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2]?t[2].map((e=>new hb.IfcParameterValue(e.value))):null,t[3].map((e=>new hb.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new hb.IfcPositiveInteger(e.value))):null),1229763772:(e,t)=>new hb.IfcTriangulatedIrregularNetwork(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2]?t[2].map((e=>new hb.IfcParameterValue(e.value))):null,t[3].map((e=>new hb.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new hb.IfcPositiveInteger(e.value))):null,t[5].map((e=>new hb.IfcInteger(e.value)))),3651464721:(e,t)=>new hb.IfcVehicleType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),336235671:(e,t)=>new hb.IfcWindowLiningProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new hb.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new hb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new hb.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new hb.IfcLengthMeasure(t[13].value):null,t[14]?new hb.IfcLengthMeasure(t[14].value):null,t[15]?new hb.IfcLengthMeasure(t[15].value):null),512836454:(e,t)=>new hb.IfcWindowPanelProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5],t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),2296667514:(e,t)=>new hb.IfcActor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,new zb(t[5].value)),1635779807:(e,t)=>new hb.IfcAdvancedBrep(e,new zb(t[0].value)),2603310189:(e,t)=>new hb.IfcAdvancedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1674181508:(e,t)=>new hb.IfcAnnotation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),2887950389:(e,t)=>new hb.IfcBSplineSurface(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value)),167062518:(e,t)=>new hb.IfcBSplineSurfaceWithKnots(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9].map((e=>new hb.IfcParameterValue(e.value))),t[10].map((e=>new hb.IfcParameterValue(e.value))),t[11]),1334484129:(e,t)=>new hb.IfcBlock(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new hb.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new hb.IfcBoundedCurve(e),3124254112:(e,t)=>new hb.IfcBuildingStorey(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcLengthMeasure(t[9].value):null),1626504194:(e,t)=>new hb.IfcBuiltElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2197970202:(e,t)=>new hb.IfcChimneyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2937912522:(e,t)=>new hb.IfcCircleHollowProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),3893394355:(e,t)=>new hb.IfcCivilElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3497074424:(e,t)=>new hb.IfcClothoid(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value)),300633059:(e,t)=>new hb.IfcColumnType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3875453745:(e,t)=>new hb.IfcComplexPropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?t[6].map((e=>new zb(e.value))):null),3732776249:(e,t)=>new hb.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),15328376:(e,t)=>new hb.IfcCompositeCurveOnSurface(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),2510884976:(e,t)=>new hb.IfcConic(e,new zb(t[0].value)),2185764099:(e,t)=>new hb.IfcConstructionEquipmentResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),4105962743:(e,t)=>new hb.IfcConstructionMaterialResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1525564444:(e,t)=>new hb.IfcConstructionProductResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2559216714:(e,t)=>new hb.IfcConstructionResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),3293443760:(e,t)=>new hb.IfcControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null),2000195564:(e,t)=>new hb.IfcCosineSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null),3895139033:(e,t)=>new hb.IfcCostItem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),1419761937:(e,t)=>new hb.IfcCostSchedule(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null),4189326743:(e,t)=>new hb.IfcCourseType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1916426348:(e,t)=>new hb.IfcCoveringType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new hb.IfcCrewResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1457835157:(e,t)=>new hb.IfcCurtainWallType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1213902940:(e,t)=>new hb.IfcCylindricalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),1306400036:(e,t)=>new hb.IfcDeepFoundationType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),4234616927:(e,t)=>new hb.IfcDirectrixDerivedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),3256556792:(e,t)=>new hb.IfcDistributionElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3849074793:(e,t)=>new hb.IfcDistributionFlowElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2963535650:(e,t)=>new hb.IfcDoorLiningProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcLengthMeasure(t[9].value):null,t[10]?new hb.IfcLengthMeasure(t[10].value):null,t[11]?new hb.IfcLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?new hb.IfcLengthMeasure(t[15].value):null,t[16]?new hb.IfcLengthMeasure(t[16].value):null),1714330368:(e,t)=>new hb.IfcDoorPanelProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new hb.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),2323601079:(e,t)=>new hb.IfcDoorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcBoolean(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null),445594917:(e,t)=>new hb.IfcDraughtingPreDefinedColour(e,new hb.IfcLabel(t[0].value)),4006246654:(e,t)=>new hb.IfcDraughtingPreDefinedCurveFont(e,new hb.IfcLabel(t[0].value)),1758889154:(e,t)=>new hb.IfcElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new hb.IfcElementAssembly(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8],t[9]),2397081782:(e,t)=>new hb.IfcElementAssemblyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1623761950:(e,t)=>new hb.IfcElementComponent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new hb.IfcElementComponentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1704287377:(e,t)=>new hb.IfcEllipse(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new hb.IfcEnergyConversionDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),132023988:(e,t)=>new hb.IfcEngineType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3174744832:(e,t)=>new hb.IfcEvaporativeCoolerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new hb.IfcEvaporatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4148101412:(e,t)=>new hb.IfcEvent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7],t[8],t[9]?new hb.IfcLabel(t[9].value):null,t[10]?new zb(t[10].value):null),2853485674:(e,t)=>new hb.IfcExternalSpatialStructureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null),807026263:(e,t)=>new hb.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new hb.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),24185140:(e,t)=>new hb.IfcFacility(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),1310830890:(e,t)=>new hb.IfcFacilityPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),4228831410:(e,t)=>new hb.IfcFacilityPartCommon(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),647756555:(e,t)=>new hb.IfcFastener(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2489546625:(e,t)=>new hb.IfcFastenerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2827207264:(e,t)=>new hb.IfcFeatureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new hb.IfcFeatureElementAddition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new hb.IfcFeatureElementSubtraction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new hb.IfcFlowControllerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3198132628:(e,t)=>new hb.IfcFlowFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3815607619:(e,t)=>new hb.IfcFlowMeterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new hb.IfcFlowMovingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1834744321:(e,t)=>new hb.IfcFlowSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1339347760:(e,t)=>new hb.IfcFlowStorageDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2297155007:(e,t)=>new hb.IfcFlowTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3009222698:(e,t)=>new hb.IfcFlowTreatmentDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1893162501:(e,t)=>new hb.IfcFootingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),263784265:(e,t)=>new hb.IfcFurnishingElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1509553395:(e,t)=>new hb.IfcFurniture(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3493046030:(e,t)=>new hb.IfcGeographicElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4230923436:(e,t)=>new hb.IfcGeotechnicalElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1594536857:(e,t)=>new hb.IfcGeotechnicalStratum(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2898700619:(e,t)=>new hb.IfcGradientCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value),new zb(t[2].value),t[3]?new zb(t[3].value):null),2706460486:(e,t)=>new hb.IfcGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),1251058090:(e,t)=>new hb.IfcHeatExchangerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new hb.IfcHumidifierType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2568555532:(e,t)=>new hb.IfcImpactProtectionDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3948183225:(e,t)=>new hb.IfcImpactProtectionDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2571569899:(e,t)=>new hb.IfcIndexedPolyCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>tD(3,e))):null,new hb.IfcLogical(t[2].value)),3946677679:(e,t)=>new hb.IfcInterceptorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3113134337:(e,t)=>new hb.IfcIntersectionCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2391368822:(e,t)=>new hb.IfcInventory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcDate(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new hb.IfcJunctionBoxType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),679976338:(e,t)=>new hb.IfcKerbType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,new hb.IfcBoolean(t[9].value)),3827777499:(e,t)=>new hb.IfcLaborResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1051575348:(e,t)=>new hb.IfcLampType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new hb.IfcLightFixtureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2176059722:(e,t)=>new hb.IfcLinearElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1770583370:(e,t)=>new hb.IfcLiquidTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),525669439:(e,t)=>new hb.IfcMarineFacility(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),976884017:(e,t)=>new hb.IfcMarinePart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),377706215:(e,t)=>new hb.IfcMechanicalFastener(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]),2108223431:(e,t)=>new hb.IfcMechanicalFastenerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null),1114901282:(e,t)=>new hb.IfcMedicalDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3181161470:(e,t)=>new hb.IfcMemberType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1950438474:(e,t)=>new hb.IfcMobileTelecommunicationsApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),710110818:(e,t)=>new hb.IfcMooringDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new hb.IfcMotorConnectionType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),506776471:(e,t)=>new hb.IfcNavigationElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4143007308:(e,t)=>new hb.IfcOccupant(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new hb.IfcOpeningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2837617999:(e,t)=>new hb.IfcOutletType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),514975943:(e,t)=>new hb.IfcPavementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new hb.IfcPerformanceHistory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcLabel(t[6].value),t[7]),3566463478:(e,t)=>new hb.IfcPermeableCoveringProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5],t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),3327091369:(e,t)=>new hb.IfcPermit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),1158309216:(e,t)=>new hb.IfcPileType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),804291784:(e,t)=>new hb.IfcPipeFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new hb.IfcPipeSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new hb.IfcPlateType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2839578677:(e,t)=>new hb.IfcPolygonalFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?t[3].map((e=>new hb.IfcPositiveInteger(e.value))):null),3724593414:(e,t)=>new hb.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new hb.IfcPort(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1946335990:(e,t)=>new hb.IfcPositioningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new hb.IfcProcedure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]),2904328755:(e,t)=>new hb.IfcProjectOrder(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),3651124850:(e,t)=>new hb.IfcProjectionElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1842657554:(e,t)=>new hb.IfcProtectiveDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new hb.IfcPumpType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1763565496:(e,t)=>new hb.IfcRailType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2893384427:(e,t)=>new hb.IfcRailingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3992365140:(e,t)=>new hb.IfcRailway(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),1891881377:(e,t)=>new hb.IfcRailwayPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),2324767716:(e,t)=>new hb.IfcRampFlightType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1469900589:(e,t)=>new hb.IfcRampType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),683857671:(e,t)=>new hb.IfcRationalBSplineSurfaceWithKnots(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9].map((e=>new hb.IfcParameterValue(e.value))),t[10].map((e=>new hb.IfcParameterValue(e.value))),t[11],t[12].map((e=>new hb.IfcReal(e.value)))),4021432810:(e,t)=>new hb.IfcReferent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3027567501:(e,t)=>new hb.IfcReinforcingElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),964333572:(e,t)=>new hb.IfcReinforcingElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2320036040:(e,t)=>new hb.IfcReinforcingMesh(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcAreaMeasure(t[13].value):null,t[14]?new hb.IfcAreaMeasure(t[14].value):null,t[15]?new hb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null,t[17]),2310774935:(e,t)=>new hb.IfcReinforcingMeshType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new hb.IfcAreaMeasure(t[14].value):null,t[15]?new hb.IfcAreaMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null,t[17]?new hb.IfcPositiveLengthMeasure(t[17].value):null,t[18]?new hb.IfcLabel(t[18].value):null,t[19]?t[19].map((e=>tD(3,e))):null),3818125796:(e,t)=>new hb.IfcRelAdheresToElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),160246688:(e,t)=>new hb.IfcRelAggregates(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),146592293:(e,t)=>new hb.IfcRoad(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),550521510:(e,t)=>new hb.IfcRoadPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),2781568857:(e,t)=>new hb.IfcRoofType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1768891740:(e,t)=>new hb.IfcSanitaryTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2157484638:(e,t)=>new hb.IfcSeamCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),3649235739:(e,t)=>new hb.IfcSecondOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),544395925:(e,t)=>new hb.IfcSegmentedReferenceCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value),new zb(t[2].value),t[3]?new zb(t[3].value):null),1027922057:(e,t)=>new hb.IfcSeventhOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null,t[5]?new hb.IfcLengthMeasure(t[5].value):null,t[6]?new hb.IfcLengthMeasure(t[6].value):null,t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null),4074543187:(e,t)=>new hb.IfcShadingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),33720170:(e,t)=>new hb.IfcSign(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3599934289:(e,t)=>new hb.IfcSignType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1894708472:(e,t)=>new hb.IfcSignalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),42703149:(e,t)=>new hb.IfcSineSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),4097777520:(e,t)=>new hb.IfcSite(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new hb.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new hb.IfcLengthMeasure(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new hb.IfcSlabType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1072016465:(e,t)=>new hb.IfcSolarDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new hb.IfcSpace(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new hb.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new hb.IfcSpaceHeaterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3812236995:(e,t)=>new hb.IfcSpaceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),3112655638:(e,t)=>new hb.IfcStackTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new hb.IfcStairFlightType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),338393293:(e,t)=>new hb.IfcStairType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new hb.IfcStructuralAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null),1179482911:(e,t)=>new hb.IfcStructuralConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1004757350:(e,t)=>new hb.IfcStructuralCurveAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),4243806635:(e,t)=>new hb.IfcStructuralCurveConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value)),214636428:(e,t)=>new hb.IfcStructuralCurveMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2445595289:(e,t)=>new hb.IfcStructuralCurveMemberVarying(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2757150158:(e,t)=>new hb.IfcStructuralCurveReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),1807405624:(e,t)=>new hb.IfcStructuralLinearAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1252848954:(e,t)=>new hb.IfcStructuralLoadGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new hb.IfcRatioMeasure(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null),2082059205:(e,t)=>new hb.IfcStructuralPointAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null),734778138:(e,t)=>new hb.IfcStructuralPointConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),1235345126:(e,t)=>new hb.IfcStructuralPointReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new hb.IfcStructuralResultGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,new hb.IfcBoolean(t[7].value)),3657597509:(e,t)=>new hb.IfcStructuralSurfaceAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1975003073:(e,t)=>new hb.IfcStructuralSurfaceConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new hb.IfcSubContractResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),3101698114:(e,t)=>new hb.IfcSurfaceFeature(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2315554128:(e,t)=>new hb.IfcSwitchingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new hb.IfcSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),413509423:(e,t)=>new hb.IfcSystemFurnitureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),5716631:(e,t)=>new hb.IfcTankType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3824725483:(e,t)=>new hb.IfcTendon(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcForceMeasure(t[12].value):null,t[13]?new hb.IfcPressureMeasure(t[13].value):null,t[14]?new hb.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new hb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new hb.IfcTendonAnchor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3081323446:(e,t)=>new hb.IfcTendonAnchorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3663046924:(e,t)=>new hb.IfcTendonConduit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2281632017:(e,t)=>new hb.IfcTendonConduitType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2415094496:(e,t)=>new hb.IfcTendonType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null),618700268:(e,t)=>new hb.IfcTrackElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1692211062:(e,t)=>new hb.IfcTransformerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2097647324:(e,t)=>new hb.IfcTransportElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1953115116:(e,t)=>new hb.IfcTransportationDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3593883385:(e,t)=>new hb.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),new hb.IfcBoolean(t[3].value),t[4]),1600972822:(e,t)=>new hb.IfcTubeBundleType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new hb.IfcUnitaryEquipmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new hb.IfcValveType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),840318589:(e,t)=>new hb.IfcVehicle(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1530820697:(e,t)=>new hb.IfcVibrationDamper(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3956297820:(e,t)=>new hb.IfcVibrationDamperType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2391383451:(e,t)=>new hb.IfcVibrationIsolator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3313531582:(e,t)=>new hb.IfcVibrationIsolatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new hb.IfcVirtualElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),926996030:(e,t)=>new hb.IfcVoidingFeature(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1898987631:(e,t)=>new hb.IfcWallType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new hb.IfcWasteTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4009809668:(e,t)=>new hb.IfcWindowType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcBoolean(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null),4088093105:(e,t)=>new hb.IfcWorkCalendar(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]),1028945134:(e,t)=>new hb.IfcWorkControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null),4218914973:(e,t)=>new hb.IfcWorkPlan(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null,t[13]),3342526732:(e,t)=>new hb.IfcWorkSchedule(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null,t[13]),1033361043:(e,t)=>new hb.IfcZone(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),3821786052:(e,t)=>new hb.IfcActionRequest(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),1411407467:(e,t)=>new hb.IfcAirTerminalBoxType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new hb.IfcAirTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new hb.IfcAirToAirHeatRecoveryType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4266260250:(e,t)=>new hb.IfcAlignmentCant(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new hb.IfcPositiveLengthMeasure(t[7].value)),1545765605:(e,t)=>new hb.IfcAlignmentHorizontal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),317615605:(e,t)=>new hb.IfcAlignmentSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value)),1662888072:(e,t)=>new hb.IfcAlignmentVertical(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3460190687:(e,t)=>new hb.IfcAsset(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new hb.IfcDate(t[12].value):null,t[13]?new zb(t[13].value):null),1532957894:(e,t)=>new hb.IfcAudioVisualApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1967976161:(e,t)=>new hb.IfcBSplineCurve(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value)),2461110595:(e,t)=>new hb.IfcBSplineCurveWithKnots(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value),t[5].map((e=>new hb.IfcInteger(e.value))),t[6].map((e=>new hb.IfcParameterValue(e.value))),t[7]),819618141:(e,t)=>new hb.IfcBeamType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3649138523:(e,t)=>new hb.IfcBearingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),231477066:(e,t)=>new hb.IfcBoilerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1136057603:(e,t)=>new hb.IfcBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),644574406:(e,t)=>new hb.IfcBridge(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),963979645:(e,t)=>new hb.IfcBridgePart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),4031249490:(e,t)=>new hb.IfcBuilding(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcLengthMeasure(t[9].value):null,t[10]?new hb.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),2979338954:(e,t)=>new hb.IfcBuildingElementPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),39481116:(e,t)=>new hb.IfcBuildingElementPartType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1909888760:(e,t)=>new hb.IfcBuildingElementProxyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1177604601:(e,t)=>new hb.IfcBuildingSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),1876633798:(e,t)=>new hb.IfcBuiltElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3862327254:(e,t)=>new hb.IfcBuiltSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),2188180465:(e,t)=>new hb.IfcBurnerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new hb.IfcCableCarrierFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new hb.IfcCableCarrierSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2674252688:(e,t)=>new hb.IfcCableFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new hb.IfcCableSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3203706013:(e,t)=>new hb.IfcCaissonFoundationType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new hb.IfcChillerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3296154744:(e,t)=>new hb.IfcChimney(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2611217952:(e,t)=>new hb.IfcCircle(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),1677625105:(e,t)=>new hb.IfcCivilElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2301859152:(e,t)=>new hb.IfcCoilType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new hb.IfcColumn(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),400855858:(e,t)=>new hb.IfcCommunicationsApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3850581409:(e,t)=>new hb.IfcCompressorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new hb.IfcCondenserType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3898045240:(e,t)=>new hb.IfcConstructionEquipmentResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1060000209:(e,t)=>new hb.IfcConstructionMaterialResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),488727124:(e,t)=>new hb.IfcConstructionProductResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),2940368186:(e,t)=>new hb.IfcConveyorSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),335055490:(e,t)=>new hb.IfcCooledBeamType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new hb.IfcCoolingTowerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1502416096:(e,t)=>new hb.IfcCourse(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1973544240:(e,t)=>new hb.IfcCovering(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new hb.IfcCurtainWall(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3961806047:(e,t)=>new hb.IfcDamperType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3426335179:(e,t)=>new hb.IfcDeepFoundation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1335981549:(e,t)=>new hb.IfcDiscreteAccessory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2635815018:(e,t)=>new hb.IfcDiscreteAccessoryType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),479945903:(e,t)=>new hb.IfcDistributionBoardType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1599208980:(e,t)=>new hb.IfcDistributionChamberElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new hb.IfcDistributionControlElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1945004755:(e,t)=>new hb.IfcDistributionElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new hb.IfcDistributionFlowElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new hb.IfcDistributionPort(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8],t[9]),3205830791:(e,t)=>new hb.IfcDistributionSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]),395920057:(e,t)=>new hb.IfcDoor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new hb.IfcLabel(t[12].value):null),869906466:(e,t)=>new hb.IfcDuctFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new hb.IfcDuctSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new hb.IfcDuctSilencerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3071239417:(e,t)=>new hb.IfcEarthworksCut(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1077100507:(e,t)=>new hb.IfcEarthworksElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3376911765:(e,t)=>new hb.IfcEarthworksFill(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),663422040:(e,t)=>new hb.IfcElectricApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2417008758:(e,t)=>new hb.IfcElectricDistributionBoardType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new hb.IfcElectricFlowStorageDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2142170206:(e,t)=>new hb.IfcElectricFlowTreatmentDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new hb.IfcElectricGeneratorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new hb.IfcElectricMotorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new hb.IfcElectricTimeControlType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1658829314:(e,t)=>new hb.IfcEnergyConversionDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2814081492:(e,t)=>new hb.IfcEngine(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3747195512:(e,t)=>new hb.IfcEvaporativeCooler(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),484807127:(e,t)=>new hb.IfcEvaporator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1209101575:(e,t)=>new hb.IfcExternalSpatialElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),346874300:(e,t)=>new hb.IfcFanType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new hb.IfcFilterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new hb.IfcFireSuppressionTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new hb.IfcFlowController(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new hb.IfcFlowFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new hb.IfcFlowInstrumentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2188021234:(e,t)=>new hb.IfcFlowMeter(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3132237377:(e,t)=>new hb.IfcFlowMovingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new hb.IfcFlowSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new hb.IfcFlowStorageDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new hb.IfcFlowTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new hb.IfcFlowTreatmentDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new hb.IfcFooting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2713699986:(e,t)=>new hb.IfcGeotechnicalAssembly(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3009204131:(e,t)=>new hb.IfcGrid(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null,t[10]),3319311131:(e,t)=>new hb.IfcHeatExchanger(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2068733104:(e,t)=>new hb.IfcHumidifier(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4175244083:(e,t)=>new hb.IfcInterceptor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2176052936:(e,t)=>new hb.IfcJunctionBox(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2696325953:(e,t)=>new hb.IfcKerb(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,new hb.IfcBoolean(t[8].value)),76236018:(e,t)=>new hb.IfcLamp(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),629592764:(e,t)=>new hb.IfcLightFixture(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1154579445:(e,t)=>new hb.IfcLinearPositioningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1638804497:(e,t)=>new hb.IfcLiquidTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1437502449:(e,t)=>new hb.IfcMedicalDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new hb.IfcMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2078563270:(e,t)=>new hb.IfcMobileTelecommunicationsAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),234836483:(e,t)=>new hb.IfcMooringDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2474470126:(e,t)=>new hb.IfcMotorConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2182337498:(e,t)=>new hb.IfcNavigationElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),144952367:(e,t)=>new hb.IfcOuterBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),3694346114:(e,t)=>new hb.IfcOutlet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1383356374:(e,t)=>new hb.IfcPavement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1687234759:(e,t)=>new hb.IfcPile(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8],t[9]),310824031:(e,t)=>new hb.IfcPipeFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3612865200:(e,t)=>new hb.IfcPipeSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3171933400:(e,t)=>new hb.IfcPlate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),738039164:(e,t)=>new hb.IfcProtectiveDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),655969474:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnitType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),90941305:(e,t)=>new hb.IfcPump(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3290496277:(e,t)=>new hb.IfcRail(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2262370178:(e,t)=>new hb.IfcRailing(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new hb.IfcRamp(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new hb.IfcRampFlight(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1232101972:(e,t)=>new hb.IfcRationalBSplineCurveWithKnots(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value),t[5].map((e=>new hb.IfcInteger(e.value))),t[6].map((e=>new hb.IfcParameterValue(e.value))),t[7],t[8].map((e=>new hb.IfcReal(e.value)))),3798194928:(e,t)=>new hb.IfcReinforcedSoil(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),979691226:(e,t)=>new hb.IfcReinforcingBar(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcAreaMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13]),2572171363:(e,t)=>new hb.IfcReinforcingBarType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13],t[14]?new hb.IfcLabel(t[14].value):null,t[15]?t[15].map((e=>tD(3,e))):null),2016517767:(e,t)=>new hb.IfcRoof(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3053780830:(e,t)=>new hb.IfcSanitaryTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1783015770:(e,t)=>new hb.IfcSensorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1329646415:(e,t)=>new hb.IfcShadingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),991950508:(e,t)=>new hb.IfcSignal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1529196076:(e,t)=>new hb.IfcSlab(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3420628829:(e,t)=>new hb.IfcSolarDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1999602285:(e,t)=>new hb.IfcSpaceHeater(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1404847402:(e,t)=>new hb.IfcStackTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new hb.IfcStair(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new hb.IfcStairFlight(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcInteger(t[8].value):null,t[9]?new hb.IfcInteger(t[9].value):null,t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]),2515109513:(e,t)=>new hb.IfcStructuralAnalysisModel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),385403989:(e,t)=>new hb.IfcStructuralLoadCase(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new hb.IfcRatioMeasure(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null,t[10]?t[10].map((e=>new hb.IfcRatioMeasure(e.value))):null),1621171031:(e,t)=>new hb.IfcStructuralPlanarAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1162798199:(e,t)=>new hb.IfcSwitchingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),812556717:(e,t)=>new hb.IfcTank(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3425753595:(e,t)=>new hb.IfcTrackElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3825984169:(e,t)=>new hb.IfcTransformer(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1620046519:(e,t)=>new hb.IfcTransportElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3026737570:(e,t)=>new hb.IfcTubeBundle(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3179687236:(e,t)=>new hb.IfcUnitaryControlElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4292641817:(e,t)=>new hb.IfcUnitaryEquipment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4207607924:(e,t)=>new hb.IfcValve(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2391406946:(e,t)=>new hb.IfcWall(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3512223829:(e,t)=>new hb.IfcWallStandardCase(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4237592921:(e,t)=>new hb.IfcWasteTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3304561284:(e,t)=>new hb.IfcWindow(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new hb.IfcLabel(t[12].value):null),2874132201:(e,t)=>new hb.IfcActuatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1634111441:(e,t)=>new hb.IfcAirTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),177149247:(e,t)=>new hb.IfcAirTerminalBox(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2056796094:(e,t)=>new hb.IfcAirToAirHeatRecovery(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3001207471:(e,t)=>new hb.IfcAlarmType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),325726236:(e,t)=>new hb.IfcAlignment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),277319702:(e,t)=>new hb.IfcAudioVisualAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),753842376:(e,t)=>new hb.IfcBeam(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4196446775:(e,t)=>new hb.IfcBearing(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),32344328:(e,t)=>new hb.IfcBoiler(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3314249567:(e,t)=>new hb.IfcBorehole(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1095909175:(e,t)=>new hb.IfcBuildingElementProxy(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2938176219:(e,t)=>new hb.IfcBurner(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),635142910:(e,t)=>new hb.IfcCableCarrierFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3758799889:(e,t)=>new hb.IfcCableCarrierSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1051757585:(e,t)=>new hb.IfcCableFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4217484030:(e,t)=>new hb.IfcCableSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3999819293:(e,t)=>new hb.IfcCaissonFoundation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3902619387:(e,t)=>new hb.IfcChiller(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),639361253:(e,t)=>new hb.IfcCoil(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3221913625:(e,t)=>new hb.IfcCommunicationsAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3571504051:(e,t)=>new hb.IfcCompressor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2272882330:(e,t)=>new hb.IfcCondenser(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),578613899:(e,t)=>new hb.IfcControllerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3460952963:(e,t)=>new hb.IfcConveyorSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4136498852:(e,t)=>new hb.IfcCooledBeam(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3640358203:(e,t)=>new hb.IfcCoolingTower(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4074379575:(e,t)=>new hb.IfcDamper(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3693000487:(e,t)=>new hb.IfcDistributionBoard(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1052013943:(e,t)=>new hb.IfcDistributionChamberElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),562808652:(e,t)=>new hb.IfcDistributionCircuit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]),1062813311:(e,t)=>new hb.IfcDistributionControlElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),342316401:(e,t)=>new hb.IfcDuctFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3518393246:(e,t)=>new hb.IfcDuctSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1360408905:(e,t)=>new hb.IfcDuctSilencer(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1904799276:(e,t)=>new hb.IfcElectricAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),862014818:(e,t)=>new hb.IfcElectricDistributionBoard(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3310460725:(e,t)=>new hb.IfcElectricFlowStorageDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),24726584:(e,t)=>new hb.IfcElectricFlowTreatmentDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),264262732:(e,t)=>new hb.IfcElectricGenerator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),402227799:(e,t)=>new hb.IfcElectricMotor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1003880860:(e,t)=>new hb.IfcElectricTimeControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3415622556:(e,t)=>new hb.IfcFan(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),819412036:(e,t)=>new hb.IfcFilter(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1426591983:(e,t)=>new hb.IfcFireSuppressionTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),182646315:(e,t)=>new hb.IfcFlowInstrument(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2680139844:(e,t)=>new hb.IfcGeomodel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1971632696:(e,t)=>new hb.IfcGeoslice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2295281155:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4086658281:(e,t)=>new hb.IfcSensor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),630975310:(e,t)=>new hb.IfcUnitaryControlElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4288193352:(e,t)=>new hb.IfcActuator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3087945054:(e,t)=>new hb.IfcAlarm(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),25142252:(e,t)=>new hb.IfcController(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8])},qb[3]={618182010:[912023232,3355820592],2879124712:[536804194,3752311538,3633395639],411424972:[602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],2859738748:[1981873012,775493141,2732653382,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],1785450214:[3057273783],1466758467:[3843373140],4294318154:[1154170062,747523909,2655187982],3200245327:[3732053477,647927063,3452421091,3548104201,1040185647,2242383968],760658860:[2852063980,3708119e3,1838606355,164193824,552965576,2235152071,3303938423,1847252529,248100487],248100487:[1847252529],2235152071:[552965576],1507914824:[3404854881,3079605661,1303795690],1918398963:[2713554722,2889183280,3050246964,448429030],3701648758:[2624227202,388784114,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,2691318326,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,2691318326,931644368,2093928680,2044713172],677532197:[4006246654,2559016684,445594917,759155922,1983826977,1775413392,3727388367,3570813810,3510044353,2367409068,1105321065,776857604,3264961684,3285139300,3611470254,1210645708,3465909080,2133299955,1437953363,2552916305,1742049831,280115917,1640371178,2636378356,597895409,3905492369,616511568,626085974,1351298697,1878645084,846575682,1607154358,3303107099],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,182550632,2998442950,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],986844984:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612,2598011224,4165799628,2042790032,1580146022,3778827333,2802850158,3265635763,297599258,3710013099],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,1229763772,2916149573,2387106220,2294589976,178912537,901063453,1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214,723233188,4124623270,4212018352,816062949,2485617015,823603102,1509187699,1123145078,1423911732,4022376103,2165702409,2067069095,603570806,1663979128,3425423356,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,3958052878],2439245199:[1608871552,2943643501,148025276,1411181986,853536259,1437805879,770865208,539742890,3869604511],2341007311:[781010003,307848117,4186316022,1462361463,693640335,160246688,3818125796,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080,478536968,3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518,1680319473,Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433,1628702193,219451334],1054537805:[1042787934,1585845231,211053100,1236880293,2771591690,1549132990],3982875396:[1735638870,4240577450],2273995522:[2609359061,4219587988],2162789131:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697,609421318,3478079324],609421318:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],846575682:[1878645084],626085974:[597895409,3905492369,616511568],1549132990:[2771591690],280115917:[3465909080,2133299955,1437953363,2552916305,1742049831],222769930:[1010789467],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],3798115385:[2705031697],1310608509:[3150382593],3264961684:[776857604],370225590:[2205249479,2665983363],2889183280:[2713554722],3632507154:[2998442950],3900360178:[2233826070,1029017970,476780140],297599258:[2802850158,3265635763],2556980723:[3406155212,3008276851],1809719519:[803316827],3008276851:[3406155212],3448662350:[4142052618],2453401579:[315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,1229763772,2916149573,2387106220,2294589976,178912537,901063453,1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214,723233188,4124623270,4212018352,816062949,2485617015,823603102,1509187699,1123145078,1423911732,4022376103,2165702409,2067069095,603570806,1663979128,3425423356,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1437953363:[3465909080,2133299955],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],3079605661:[3404854881],219451334:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433,1628702193],2529465313:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[3425423356,2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103,2165702409],3727388367:[4006246654,2559016684,445594917,759155922,1983826977,1775413392],3778827333:[4165799628,2042790032,1580146022],1775413392:[1983826977],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1680319473:[3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518],3357820518:[1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900],1482703590:[3875453745,3663146110,3521284610,492091185],2090586900:[1883228015],3615266464:[2770003689,2778083089],478536968:[781010003,307848117,4186316022,1462361463,693640335,160246688,3818125796,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080],823603102:[4212018352,816062949,2485617015],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],723233188:[1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214],2473145415:[1973038258],1597423693:[1190533807],2513912981:[1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953],1260650574:[1096409881],230924584:[4124788165,2809605785],901063453:[2839578677,1229763772,2916149573,2387106220,2294589976,178912537],4282788508:[3124975700],1628702193:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433],3736923433:[3206491090,569719735,4024345920],2347495698:[2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511],3698973494:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495],2736907675:[3649129432],4182860854:[683857671,167062518,2887950389,3454111270,2629017746,2827736869],574549367:[2059837836,1675464909],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2485617015:[816062949],2574617495:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380],3419103109:[653396225,103090709],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb],593015953:[2028607225,4234616927,2652556860],339256511:[2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223],2777663545:[1213902940,1935646853,4015995234,220341763],477187591:[2804161546],2652556860:[4234616927],4238390223:[1580310250,1268542332],178912537:[2294589976],1425443689:[3737207727,807026263,2603310189,1635779807],3888040117:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077],590820931:[2485787929,3505215534,3388369263],759155922:[445594917],2559016684:[4006246654],3967405729:[3566463478,1714330368,2963535650,512836454,336235671,3765753017],2945172077:[2744685151,4148101412,Qb],4208778838:[325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761],3521284610:[3875453745,3663146110],3939117080:[205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259],1307041759:[1027710054],1865459582:[1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036],826625072:[1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,3818125796,1401173127,750771296,3268803585],693640335:[781010003,307848117,4186316022,1462361463],3451746338:[1521410863,3523091289],3523091289:[1521410863],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],1856042241:[3243963512],1862484736:[1290935644],1412071761:[1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064],710998568:[2481509218,3812236995,3893378262],2706606064:[Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112],3893378262:[3812236995],2735484536:[42703149,1027922057,3649235739,2000195564,3497074424,782932809],3544373492:[1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126,2757150158,603775116],3979015343:[2218152070],699246055:[2157484638,3113134337],2387106220:[2839578677,1229763772,2916149573],3665877780:[2097647324,3651464721],2916149573:[1229763772],2296667514:[4143007308],1635779807:[2603310189],2887950389:[683857671,167062518],167062518:[683857671],1260505505:[1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249],1626504194:[1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202],3732776249:[544395925,2898700619,144952367,1136057603,15328376],15328376:[144952367,1136057603],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033],1306400036:[3203706013,1158309216],3256556792:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793],3849074793:[1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300],1758889154:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466],1623761950:[1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555],2590856083:[2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988],2853485674:[1209101575],807026263:[3737207727],24185140:[4031249490,644574406,146592293,3992365140,525669439],1310830890:[963979645,550521510,1891881377,976884017,4228831410],2827207264:[3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[3071239417,926996030,3588315303],3907093117:[712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,2674252688,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,2940368186,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348],3009222698:[1810631287,2142170206,2030761528,3946677679],263784265:[413509423,1509553395],4230923436:[1971632696,2680139844,3314249567,2713699986,1594536857],2706460486:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822],2176059722:[1662888072,317615605,1545765605,4266260250],3740093272:[3041715199],1946335990:[325726236,1154579445,kb,4021432810],3027567501:[979691226,3663046924,2347447852,Ob,2320036040],964333572:[2572171363,2415094496,2281632017,3081323446,2310774935],682877961:[1621171031,3657597509,2082059205,1807405624,1004757350],1179482911:[1975003073,734778138,4243806635],1004757350:[1807405624],214636428:[2445595289],1252848954:[385403989],3657597509:[1621171031],2254336722:[2515109513,562808652,3205830791,3862327254,1177604601,Ub],1953115116:[1620046519,840318589],1028945134:[3342526732,4218914973],1967976161:[1232101972,2461110595],2461110595:[1232101972],1136057603:[144952367],1876633798:[1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744],3426335179:[3999819293,Mb],2063403501:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832],1945004755:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961],3040386961:[1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314],3205830791:[562808652],1077100507:[3798194928,3376911765],1658829314:[402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492],2058353004:[1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234],4278956645:[342316401,1051757585,635142910,310824031,2176052936],3132237377:[Db,3571504051,90941305],987401354:[3518393246,3460952963,4217484030,3758799889,3612865200],707683696:[3310460725,Cb],2223149337:[1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018],3508470533:[819412036,24726584,1360408905,4175244083],2713699986:[1971632696,2680139844,3314249567],1154579445:[325726236],2391406946:[3512223829],1062813311:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315]},Xb[3]={3630933823:[["HasExternalReference",1437805879,3,!0]],618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["HasExternalReference",1437805879,3,!0]],130549933:[["HasExternalReferences",1437805879,3,!0],["ApprovedObjects",4095574036,5,!0],["ApprovedResources",2943643501,3,!0],["IsRelatedWith",3869604511,3,!0],["Relates",3869604511,2,!0]],1959218052:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],1466758467:[["HasCoordinateOperation",1785450214,0,!0]],602808272:[["HasExternalReference",1437805879,3,!0]],3200245327:[["ExternalReferenceForResources",1437805879,2,!0]],2242383968:[["ExternalReferenceForResources",1437805879,2,!0]],1040185647:[["ExternalReferenceForResources",1437805879,2,!0]],3548104201:[["ExternalReferenceForResources",1437805879,2,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],2655187982:[["LibraryInfoForObjects",3840914261,5,!0],["HasLibraryReferences",3452421091,5,!0]],3452421091:[["ExternalReferenceForResources",1437805879,2,!0],["LibraryRefForObjects",3840914261,5,!0]],760658860:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],248100487:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],3303938423:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1847252529:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],2235152071:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],164193824:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],552965576:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],1507914824:[["AssociatedTo",2655215786,5,!0]],3368373690:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],2251480897:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2226359599:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3958567839:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3843373140:[["HasCoordinateOperation",1785450214,0,!0]],986844984:[["HasExternalReferences",1437805879,3,!0]],3710013099:[["HasExternalReferences",1437805879,3,!0]],2044713172:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2093928680:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],931644368:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2691318326:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3252649465:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2405470396:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],825690147:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["HasShapeAspects",867548509,4,!0],["MapUsage",2347385850,0,!0]],867548509:[["HasExternalReferences",1437805879,3,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],626085974:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],222769930:[["ToTexMap",3465909080,3,!1]],1010789467:[["ToTexMap",3465909080,3,!1]],3101149627:[["HasExternalReference",1437805879,3,!0]],1377556343:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798115385:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1310608509:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2705031697:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],616511568:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3150382593:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],747523909:[["ClassificationForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],647927063:[["ExternalReferenceForResources",1437805879,2,!0],["ClassificationRefForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],1485152156:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],370225590:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3050246964:[["HasExternalReference",1437805879,3,!0]],2889183280:[["HasExternalReference",1437805879,3,!0]],2713554722:[["HasExternalReference",1437805879,3,!0]],3632507154:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1154170062:[["DocumentInfoForObjects",982818633,5,!0],["HasDocumentReferences",3732053477,4,!0],["IsPointedTo",770865208,3,!0],["IsPointer",770865208,2,!0]],3732053477:[["ExternalReferenceForResources",1437805879,2,!0],["DocumentRefForObjects",982818633,5,!0]],3900360178:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],297599258:[["HasExternalReferences",1437805879,3,!0]],2556980723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],1809719519:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],2453401579:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],3590301190:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],812098782:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3905492369:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3741457305:[["HasExternalReference",1437805879,3,!0]],1402838566:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],388784114:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],1008929658:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1838606355:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["HasRepresentation",2022407955,3,!0],["IsRelatedWith",853536259,3,!0],["RelatesTo",853536259,2,!0]],3708119e3:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialConstituentSet",2852063980,2,!1]],2852063980:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1303795690:[["AssociatedTo",2655215786,5,!0]],3079605661:[["AssociatedTo",2655215786,5,!0]],3404854881:[["AssociatedTo",2655215786,5,!0]],3265635763:[["HasExternalReferences",1437805879,3,!0]],2998442950:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],219451334:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0]],182550632:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2665983363:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2529465313:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2519244187:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],597895409:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],2004835150:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2165702409:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3778827333:[["HasExternalReferences",1437805879,3,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],2802850158:[["HasExternalReferences",1437805879,3,!0]],2598011224:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1680319473:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],3357820518:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1482703590:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],2090586900:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3615266464:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3413951693:[["HasExternalReference",1437805879,3,!0]],1580146022:[["HasExternalReferences",1437805879,3,!0]],2778083089:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2042790032:[["HasExternalReferences",1437805879,3,!0]],4165799628:[["HasExternalReferences",1437805879,3,!0]],1509187699:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],823603102:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],4124623270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3692461612:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],723233188:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2233826070:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1096409881:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3071757647:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],901063453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2715220739:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0]],3736923433:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3698973494:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],427810014:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1417489154:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2543172580:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3406155212:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],669184980:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3207858831:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4261334040:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3425423356:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2898889636:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1123145078:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],574549367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1675464909:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2059837836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1383045692:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2205249479:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2485617015:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2574617495:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],3419103109:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],1815067380:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2506170314:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2629017746:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4212018352:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],32440307:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],593015953:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1472233963:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2777663545:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2835456948:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4024345920:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],477187591:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2804161546:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2652556860:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4095422895:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],987898635:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1484403080:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],178912537:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0],["HasTexCoords",222769930,1,!0]],2294589976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0],["HasTexCoords",222769930,1,!0]],572779678:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],428585644:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1281925730:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0]],590820931:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3388369263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485787929:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1682466193:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],603570806:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3381221214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3967405729:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],569719735:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],103090709:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],653396225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],871118103:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],4166981789:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2752243245:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],941946838:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1451395588:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],492091185:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["Defines",307848117,5,!0]],3650150729:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],110355661:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],3521284610:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],2770003689:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2798486643:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3765753017:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3523091289:[["InnerBoundaries",3523091289,9,!0]],1521410863:[["InnerBoundaries",3523091289,9,!0],["Corresponds",1521410863,10,!0]],816062949:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3243963512:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1862484736:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1290935644:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1356537516:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3663146110:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],1412071761:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],710998568:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],463610769:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2481509218:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],451544542:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4015995234:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2735484536:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],3136571912:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],603775116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],4095615324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],699246055:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2028607225:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],3206491090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2387106220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],782932809:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1935646853:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3665877780:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2916149573:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],1229763772:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3651464721:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],336235671:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],512836454:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],1635779807:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2603310189:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0]],2887950389:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],167062518:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1334484129:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1626504194:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2197970202:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2937912522:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3893394355:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3497074424:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],300633059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3875453745:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3732776249:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],15328376:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2185764099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],4105962743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1525564444:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],2000195564:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4189326743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1213902940:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1306400036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4234616927:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2963535650:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1714330368:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2323601079:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2397081782:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1704287377:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],132023988:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4148101412:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2853485674:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],807026263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],24185140:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1310830890:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],4228831410:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],647756555:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1893162501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],263784265:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1509553395:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3493046030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4230923436:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1594536857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2898700619:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],1251058090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2568555532:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3948183225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2571569899:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3946677679:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3113134337:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],4288270099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],679976338:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2176059722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1770583370:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],525669439:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],976884017:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],377706215:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1114901282:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1950438474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],710110818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],977012517:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],506776471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],514975943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3566463478:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1158309216:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2839578677:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3724593414:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],1946335990:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1763565496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3992365140:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1891881377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1469900589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],683857671:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4021432810:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],964333572:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2310774935:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],146592293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],550521510:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2781568857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2157484638:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649235739:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],544395925:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1027922057:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4074543187:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],33720170:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3599934289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1894708472:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],42703149:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1072016465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],338393293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],682877961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1179482911:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1004757350:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2757150158:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1252848954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],2082059205:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],734778138:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ResultGroupFor",2515109513,8,!0]],3657597509:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3101698114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["AdheresToElement",3818125796,5,!1]],2315554128:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],413509423:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3081323446:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3663046924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2281632017:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2415094496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],618700268:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1953115116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3593883385:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],728799441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],840318589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1530820697:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3956297820:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2391383451:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],926996030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],1898987631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4009809668:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4088093105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4266260250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1545765605:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],317615605:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1662888072:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],1532957894:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1967976161:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2461110595:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3649138523:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],231477066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1136057603:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],644574406:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],963979645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],39481116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1177604601:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],1876633798:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3862327254:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],2188180465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],395041908:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2674252688:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3203706013:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3296154744:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2611217952:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1677625105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],843113511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],400855858:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],2940368186:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1502416096:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["CoversSpaces",2802773753,5,!0],["CoversElements",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3426335179:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],479945903:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],3205830791:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3071239417:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],1077100507:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3376911765:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],663422040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2417008758:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2142170206:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],712377611:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2814081492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3747195512:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],484807127:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1209101575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["BoundedBy",3451746338,4,!0]],346874300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2188021234:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2713699986:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],3319311131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2068733104:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4175244083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2176052936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2696325953:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],76236018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],629592764:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1154579445:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],1638804497:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1437502449:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2078563270:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],234836483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2474470126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2182337498:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],144952367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3694346114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1383356374:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],310824031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3612865200:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],738039164:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],655969474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],90941305:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3290496277:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1232101972:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798194928:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],979691226:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2572171363:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3053780830:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1783015770:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1329646415:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],991950508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3420628829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1999602285:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1404847402:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],331165859:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],385403989:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1162798199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],812556717:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3425753595:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3825984169:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3026737570:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3179687236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4292641817:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4207607924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4237592921:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1634111441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],177149247:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2056796094:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],325726236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],277319702:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4196446775:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],32344328:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3314249567:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2938176219:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],635142910:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3758799889:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1051757585:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4217484030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3999819293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3902619387:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],639361253:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3221913625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3571504051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2272882330:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],578613899:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3460952963:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4136498852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3640358203:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4074379575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3693000487:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],562808652:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],342316401:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3518393246:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1360408905:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1904799276:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],862014818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3310460725:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],24726584:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],264262732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],402227799:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1003880860:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3415622556:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],819412036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1426591983:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],182646315:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],2680139844:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1971632696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2295281155:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4086658281:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],630975310:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4288193352:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],3087945054:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],25142252:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]]},Jb[3]={3630933823:(e,t)=>new hb.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new hb.IfcAddress(e,t[0],t[1],t[2]),2879124712:(e,t)=>new hb.IfcAlignmentParameterSegment(e,t[0],t[1]),3633395639:(e,t)=>new hb.IfcAlignmentVerticalSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639542469:(e,t)=>new hb.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new hb.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),130549933:(e,t)=>new hb.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4037036970:(e,t)=>new hb.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new hb.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new hb.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new hb.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new hb.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2859738748:(e,t)=>new hb.IfcConnectionGeometry(e),2614616156:(e,t)=>new hb.IfcConnectionPointGeometry(e,t[0],t[1]),2732653382:(e,t)=>new hb.IfcConnectionSurfaceGeometry(e,t[0],t[1]),775493141:(e,t)=>new hb.IfcConnectionVolumeGeometry(e,t[0],t[1]),1959218052:(e,t)=>new hb.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1785450214:(e,t)=>new hb.IfcCoordinateOperation(e,t[0],t[1]),1466758467:(e,t)=>new hb.IfcCoordinateReferenceSystem(e,t[0],t[1],t[2],t[3]),602808272:(e,t)=>new hb.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1765591967:(e,t)=>new hb.IfcDerivedUnit(e,t[0],t[1],t[2],t[3]),1045800335:(e,t)=>new hb.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new hb.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4294318154:(e,t)=>new hb.IfcExternalInformation(e),3200245327:(e,t)=>new hb.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new hb.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new hb.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3548104201:(e,t)=>new hb.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new hb.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new hb.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new hb.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4],t[5]),3452421091:(e,t)=>new hb.IfcLibraryReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),4162380809:(e,t)=>new hb.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new hb.IfcLightIntensityDistribution(e,t[0],t[1]),3057273783:(e,t)=>new hb.IfcMapConversion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1847130766:(e,t)=>new hb.IfcMaterialClassificationRelationship(e,t[0],t[1]),760658860:(e,t)=>new hb.IfcMaterialDefinition(e),248100487:(e,t)=>new hb.IfcMaterialLayer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3303938423:(e,t)=>new hb.IfcMaterialLayerSet(e,t[0],t[1],t[2]),1847252529:(e,t)=>new hb.IfcMaterialLayerWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2199411900:(e,t)=>new hb.IfcMaterialList(e,t[0]),2235152071:(e,t)=>new hb.IfcMaterialProfile(e,t[0],t[1],t[2],t[3],t[4],t[5]),164193824:(e,t)=>new hb.IfcMaterialProfileSet(e,t[0],t[1],t[2],t[3]),552965576:(e,t)=>new hb.IfcMaterialProfileWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1507914824:(e,t)=>new hb.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new hb.IfcMeasureWithUnit(e,t[0],t[1]),3368373690:(e,t)=>new hb.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706619895:(e,t)=>new hb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new hb.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new hb.IfcObjectPlacement(e,t[0]),2251480897:(e,t)=>new hb.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4251960020:(e,t)=>new hb.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1207048766:(e,t)=>new hb.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new hb.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new hb.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new hb.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new hb.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new hb.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),677532197:(e,t)=>new hb.IfcPresentationItem(e),2022622350:(e,t)=>new hb.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new hb.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new hb.IfcPresentationStyle(e,t[0]),2095639259:(e,t)=>new hb.IfcProductRepresentation(e,t[0],t[1],t[2]),3958567839:(e,t)=>new hb.IfcProfileDef(e,t[0],t[1]),3843373140:(e,t)=>new hb.IfcProjectedCRS(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),986844984:(e,t)=>new hb.IfcPropertyAbstraction(e),3710013099:(e,t)=>new hb.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new hb.IfcQuantityArea(e,t[0],t[1],t[2],t[3],t[4]),2093928680:(e,t)=>new hb.IfcQuantityCount(e,t[0],t[1],t[2],t[3],t[4]),931644368:(e,t)=>new hb.IfcQuantityLength(e,t[0],t[1],t[2],t[3],t[4]),2691318326:(e,t)=>new hb.IfcQuantityNumber(e,t[0],t[1],t[2],t[3],t[4]),3252649465:(e,t)=>new hb.IfcQuantityTime(e,t[0],t[1],t[2],t[3],t[4]),2405470396:(e,t)=>new hb.IfcQuantityVolume(e,t[0],t[1],t[2],t[3],t[4]),825690147:(e,t)=>new hb.IfcQuantityWeight(e,t[0],t[1],t[2],t[3],t[4]),3915482550:(e,t)=>new hb.IfcRecurrencePattern(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2433181523:(e,t)=>new hb.IfcReference(e,t[0],t[1],t[2],t[3],t[4]),1076942058:(e,t)=>new hb.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new hb.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new hb.IfcRepresentationItem(e),1660063152:(e,t)=>new hb.IfcRepresentationMap(e,t[0],t[1]),2439245199:(e,t)=>new hb.IfcResourceLevelRelationship(e,t[0],t[1]),2341007311:(e,t)=>new hb.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new hb.IfcSIUnit(e,t[0],t[1],t[2],t[3]),1054537805:(e,t)=>new hb.IfcSchedulingTime(e,t[0],t[1],t[2]),867548509:(e,t)=>new hb.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new hb.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new hb.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),2273995522:(e,t)=>new hb.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new hb.IfcStructuralLoad(e,t[0]),3478079324:(e,t)=>new hb.IfcStructuralLoadConfiguration(e,t[0],t[1],t[2]),609421318:(e,t)=>new hb.IfcStructuralLoadOrResult(e,t[0]),2525727697:(e,t)=>new hb.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new hb.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new hb.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new hb.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new hb.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),2934153892:(e,t)=>new hb.IfcSurfaceReinforcementArea(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new hb.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new hb.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new hb.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new hb.IfcSurfaceStyleShading(e,t[0],t[1]),1351298697:(e,t)=>new hb.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new hb.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3],t[4]),985171141:(e,t)=>new hb.IfcTable(e,t[0],t[1],t[2]),2043862942:(e,t)=>new hb.IfcTableColumn(e,t[0],t[1],t[2],t[3],t[4]),531007025:(e,t)=>new hb.IfcTableRow(e,t[0],t[1]),1549132990:(e,t)=>new hb.IfcTaskTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),2771591690:(e,t)=>new hb.IfcTaskTimeRecurring(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20]),912023232:(e,t)=>new hb.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1447204868:(e,t)=>new hb.IfcTextStyle(e,t[0],t[1],t[2],t[3],t[4]),2636378356:(e,t)=>new hb.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new hb.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),280115917:(e,t)=>new hb.IfcTextureCoordinate(e,t[0]),1742049831:(e,t)=>new hb.IfcTextureCoordinateGenerator(e,t[0],t[1],t[2]),222769930:(e,t)=>new hb.IfcTextureCoordinateIndices(e,t[0],t[1]),1010789467:(e,t)=>new hb.IfcTextureCoordinateIndicesWithVoids(e,t[0],t[1],t[2]),2552916305:(e,t)=>new hb.IfcTextureMap(e,t[0],t[1],t[2]),1210645708:(e,t)=>new hb.IfcTextureVertex(e,t[0]),3611470254:(e,t)=>new hb.IfcTextureVertexList(e,t[0]),1199560280:(e,t)=>new hb.IfcTimePeriod(e,t[0],t[1]),3101149627:(e,t)=>new hb.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),581633288:(e,t)=>new hb.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new hb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new hb.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new hb.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new hb.IfcVertex(e),1907098498:(e,t)=>new hb.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new hb.IfcVirtualGridIntersection(e,t[0],t[1]),1236880293:(e,t)=>new hb.IfcWorkTime(e,t[0],t[1],t[2],t[3],t[4],t[5]),3752311538:(e,t)=>new hb.IfcAlignmentCantSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),536804194:(e,t)=>new hb.IfcAlignmentHorizontalSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3869604511:(e,t)=>new hb.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),3798115385:(e,t)=>new hb.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new hb.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new hb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new hb.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3150382593:(e,t)=>new hb.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),747523909:(e,t)=>new hb.IfcClassification(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),647927063:(e,t)=>new hb.IfcClassificationReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),3285139300:(e,t)=>new hb.IfcColourRgbList(e,t[0]),3264961684:(e,t)=>new hb.IfcColourSpecification(e,t[0]),1485152156:(e,t)=>new hb.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new hb.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new hb.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new hb.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new hb.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new hb.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),2713554722:(e,t)=>new hb.IfcConversionBasedUnitWithOffset(e,t[0],t[1],t[2],t[3],t[4]),539742890:(e,t)=>new hb.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3800577675:(e,t)=>new hb.IfcCurveStyle(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new hb.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new hb.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new hb.IfcCurveStyleFontPattern(e,t[0],t[1]),3632507154:(e,t)=>new hb.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),1154170062:(e,t)=>new hb.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new hb.IfcDocumentInformationRelationship(e,t[0],t[1],t[2],t[3],t[4]),3732053477:(e,t)=>new hb.IfcDocumentReference(e,t[0],t[1],t[2],t[3],t[4]),3900360178:(e,t)=>new hb.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new hb.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),211053100:(e,t)=>new hb.IfcEventTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),297599258:(e,t)=>new hb.IfcExtendedProperties(e,t[0],t[1],t[2]),1437805879:(e,t)=>new hb.IfcExternalReferenceRelationship(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new hb.IfcFace(e,t[0]),1809719519:(e,t)=>new hb.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new hb.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new hb.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new hb.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new hb.IfcFillAreaStyle(e,t[0],t[1],t[2]),3448662350:(e,t)=>new hb.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new hb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new hb.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3590301190:(e,t)=>new hb.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new hb.IfcGridPlacement(e,t[0],t[1],t[2]),812098782:(e,t)=>new hb.IfcHalfSpaceSolid(e,t[0],t[1]),3905492369:(e,t)=>new hb.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3570813810:(e,t)=>new hb.IfcIndexedColourMap(e,t[0],t[1],t[2],t[3]),1437953363:(e,t)=>new hb.IfcIndexedTextureMap(e,t[0],t[1],t[2]),2133299955:(e,t)=>new hb.IfcIndexedTriangleTextureMap(e,t[0],t[1],t[2],t[3]),3741457305:(e,t)=>new hb.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1585845231:(e,t)=>new hb.IfcLagTime(e,t[0],t[1],t[2],t[3],t[4]),1402838566:(e,t)=>new hb.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new hb.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new hb.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new hb.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new hb.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new hb.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),388784114:(e,t)=>new hb.IfcLinearPlacement(e,t[0],t[1],t[2]),2624227202:(e,t)=>new hb.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new hb.IfcLoop(e),2347385850:(e,t)=>new hb.IfcMappedItem(e,t[0],t[1]),1838606355:(e,t)=>new hb.IfcMaterial(e,t[0],t[1],t[2]),3708119e3:(e,t)=>new hb.IfcMaterialConstituent(e,t[0],t[1],t[2],t[3],t[4]),2852063980:(e,t)=>new hb.IfcMaterialConstituentSet(e,t[0],t[1],t[2]),2022407955:(e,t)=>new hb.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1303795690:(e,t)=>new hb.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3],t[4]),3079605661:(e,t)=>new hb.IfcMaterialProfileSetUsage(e,t[0],t[1],t[2]),3404854881:(e,t)=>new hb.IfcMaterialProfileSetUsageTapering(e,t[0],t[1],t[2],t[3],t[4]),3265635763:(e,t)=>new hb.IfcMaterialProperties(e,t[0],t[1],t[2],t[3]),853536259:(e,t)=>new hb.IfcMaterialRelationship(e,t[0],t[1],t[2],t[3],t[4]),2998442950:(e,t)=>new hb.IfcMirroredProfileDef(e,t[0],t[1],t[2],t[3],t[4]),219451334:(e,t)=>new hb.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),182550632:(e,t)=>new hb.IfcOpenCrossProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2665983363:(e,t)=>new hb.IfcOpenShell(e,t[0]),1411181986:(e,t)=>new hb.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1029017970:(e,t)=>new hb.IfcOrientedEdge(e,t[0],t[1],t[2]),2529465313:(e,t)=>new hb.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new hb.IfcPath(e,t[0]),3021840470:(e,t)=>new hb.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new hb.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2004835150:(e,t)=>new hb.IfcPlacement(e,t[0]),1663979128:(e,t)=>new hb.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new hb.IfcPoint(e),2165702409:(e,t)=>new hb.IfcPointByDistanceExpression(e,t[0],t[1],t[2],t[3],t[4]),4022376103:(e,t)=>new hb.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new hb.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new hb.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new hb.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),3727388367:(e,t)=>new hb.IfcPreDefinedItem(e,t[0]),3778827333:(e,t)=>new hb.IfcPreDefinedProperties(e),1775413392:(e,t)=>new hb.IfcPreDefinedTextFont(e,t[0]),673634403:(e,t)=>new hb.IfcProductDefinitionShape(e,t[0],t[1],t[2]),2802850158:(e,t)=>new hb.IfcProfileProperties(e,t[0],t[1],t[2],t[3]),2598011224:(e,t)=>new hb.IfcProperty(e,t[0],t[1]),1680319473:(e,t)=>new hb.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new hb.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3357820518:(e,t)=>new hb.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),1482703590:(e,t)=>new hb.IfcPropertyTemplateDefinition(e,t[0],t[1],t[2],t[3]),2090586900:(e,t)=>new hb.IfcQuantitySet(e,t[0],t[1],t[2],t[3]),3615266464:(e,t)=>new hb.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new hb.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1580146022:(e,t)=>new hb.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new hb.IfcRelationship(e,t[0],t[1],t[2],t[3]),2943643501:(e,t)=>new hb.IfcResourceApprovalRelationship(e,t[0],t[1],t[2],t[3]),1608871552:(e,t)=>new hb.IfcResourceConstraintRelationship(e,t[0],t[1],t[2],t[3]),1042787934:(e,t)=>new hb.IfcResourceTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2778083089:(e,t)=>new hb.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),2042790032:(e,t)=>new hb.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new hb.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new hb.IfcSectionedSpine(e,t[0],t[1],t[2]),823603102:(e,t)=>new hb.IfcSegment(e,t[0]),4124623270:(e,t)=>new hb.IfcShellBasedSurfaceModel(e,t[0]),3692461612:(e,t)=>new hb.IfcSimpleProperty(e,t[0],t[1]),2609359061:(e,t)=>new hb.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new hb.IfcSolidModel(e),1595516126:(e,t)=>new hb.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new hb.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new hb.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new hb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new hb.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new hb.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2233826070:(e,t)=>new hb.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new hb.IfcSurface(e),1878645084:(e,t)=>new hb.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new hb.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new hb.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),1096409881:(e,t)=>new hb.IfcSweptDiskSolidPolygonal(e,t[0],t[1],t[2],t[3],t[4],t[5]),230924584:(e,t)=>new hb.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new hb.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),901063453:(e,t)=>new hb.IfcTessellatedItem(e),4282788508:(e,t)=>new hb.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new hb.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),1983826977:(e,t)=>new hb.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2715220739:(e,t)=>new hb.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1628702193:(e,t)=>new hb.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),3736923433:(e,t)=>new hb.IfcTypeProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2347495698:(e,t)=>new hb.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3698973494:(e,t)=>new hb.IfcTypeResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),427810014:(e,t)=>new hb.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1417489154:(e,t)=>new hb.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new hb.IfcVertexLoop(e,t[0]),2543172580:(e,t)=>new hb.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3406155212:(e,t)=>new hb.IfcAdvancedFace(e,t[0],t[1],t[2]),669184980:(e,t)=>new hb.IfcAnnotationFillArea(e,t[0],t[1]),3207858831:(e,t)=>new hb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4261334040:(e,t)=>new hb.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new hb.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new hb.IfcAxis2Placement3D(e,t[0],t[1],t[2]),3425423356:(e,t)=>new hb.IfcAxis2PlacementLinear(e,t[0],t[1],t[2]),2736907675:(e,t)=>new hb.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new hb.IfcBoundedSurface(e),2581212453:(e,t)=>new hb.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new hb.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new hb.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1123145078:(e,t)=>new hb.IfcCartesianPoint(e,t[0]),574549367:(e,t)=>new hb.IfcCartesianPointList(e),1675464909:(e,t)=>new hb.IfcCartesianPointList2D(e,t[0],t[1]),2059837836:(e,t)=>new hb.IfcCartesianPointList3D(e,t[0],t[1]),59481748:(e,t)=>new hb.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new hb.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new hb.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new hb.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new hb.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new hb.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new hb.IfcClosedShell(e,t[0]),776857604:(e,t)=>new hb.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new hb.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),2485617015:(e,t)=>new hb.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),2574617495:(e,t)=>new hb.IfcConstructionResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3419103109:(e,t)=>new hb.IfcContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1815067380:(e,t)=>new hb.IfcCrewResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new hb.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new hb.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new hb.IfcCurve(e),2827736869:(e,t)=>new hb.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),2629017746:(e,t)=>new hb.IfcCurveBoundedSurface(e,t[0],t[1],t[2]),4212018352:(e,t)=>new hb.IfcCurveSegment(e,t[0],t[1],t[2],t[3],t[4]),32440307:(e,t)=>new hb.IfcDirection(e,t[0]),593015953:(e,t)=>new hb.IfcDirectrixCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4]),1472233963:(e,t)=>new hb.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new hb.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new hb.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new hb.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new hb.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),4024345920:(e,t)=>new hb.IfcEventType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),477187591:(e,t)=>new hb.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2804161546:(e,t)=>new hb.IfcExtrudedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),2047409740:(e,t)=>new hb.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new hb.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),315944413:(e,t)=>new hb.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),2652556860:(e,t)=>new hb.IfcFixedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),4238390223:(e,t)=>new hb.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new hb.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4095422895:(e,t)=>new hb.IfcGeographicElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new hb.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new hb.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),178912537:(e,t)=>new hb.IfcIndexedPolygonalFace(e,t[0]),2294589976:(e,t)=>new hb.IfcIndexedPolygonalFaceWithVoids(e,t[0],t[1]),3465909080:(e,t)=>new hb.IfcIndexedPolygonalTextureMap(e,t[0],t[1],t[2],t[3]),572779678:(e,t)=>new hb.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),428585644:(e,t)=>new hb.IfcLaborResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1281925730:(e,t)=>new hb.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new hb.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new hb.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),590820931:(e,t)=>new hb.IfcOffsetCurve(e,t[0]),3388369263:(e,t)=>new hb.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new hb.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),2485787929:(e,t)=>new hb.IfcOffsetCurveByDistances(e,t[0],t[1],t[2]),1682466193:(e,t)=>new hb.IfcPcurve(e,t[0],t[1]),603570806:(e,t)=>new hb.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new hb.IfcPlane(e,t[0]),3381221214:(e,t)=>new hb.IfcPolynomialCurve(e,t[0],t[1],t[2],t[3]),759155922:(e,t)=>new hb.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new hb.IfcPreDefinedCurveFont(e,t[0]),3967405729:(e,t)=>new hb.IfcPreDefinedPropertySet(e,t[0],t[1],t[2],t[3]),569719735:(e,t)=>new hb.IfcProcedureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2945172077:(e,t)=>new hb.IfcProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4208778838:(e,t)=>new hb.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new hb.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),653396225:(e,t)=>new hb.IfcProjectLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),871118103:(e,t)=>new hb.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4166981789:(e,t)=>new hb.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new hb.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new hb.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),1451395588:(e,t)=>new hb.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),492091185:(e,t)=>new hb.IfcPropertySetTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3650150729:(e,t)=>new hb.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new hb.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3521284610:(e,t)=>new hb.IfcPropertyTemplate(e,t[0],t[1],t[2],t[3]),2770003689:(e,t)=>new hb.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new hb.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new hb.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3765753017:(e,t)=>new hb.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3939117080:(e,t)=>new hb.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new hb.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new hb.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new hb.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1027710054:(e,t)=>new hb.IfcRelAssignsToGroupByFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278684876:(e,t)=>new hb.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new hb.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new hb.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new hb.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),4095574036:(e,t)=>new hb.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new hb.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new hb.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new hb.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new hb.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new hb.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),1033248425:(e,t)=>new hb.IfcRelAssociatesProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),826625072:(e,t)=>new hb.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new hb.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new hb.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new hb.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new hb.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new hb.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new hb.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new hb.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new hb.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new hb.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new hb.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new hb.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2565941209:(e,t)=>new hb.IfcRelDeclares(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new hb.IfcRelDecomposes(e,t[0],t[1],t[2],t[3]),693640335:(e,t)=>new hb.IfcRelDefines(e,t[0],t[1],t[2],t[3]),1462361463:(e,t)=>new hb.IfcRelDefinesByObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),4186316022:(e,t)=>new hb.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),307848117:(e,t)=>new hb.IfcRelDefinesByTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new hb.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new hb.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new hb.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),427948657:(e,t)=>new hb.IfcRelInterferesElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3268803585:(e,t)=>new hb.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),1441486842:(e,t)=>new hb.IfcRelPositions(e,t[0],t[1],t[2],t[3],t[4],t[5]),750771296:(e,t)=>new hb.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new hb.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),4122056220:(e,t)=>new hb.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),366585022:(e,t)=>new hb.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new hb.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3523091289:(e,t)=>new hb.IfcRelSpaceBoundary1stLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1521410863:(e,t)=>new hb.IfcRelSpaceBoundary2ndLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1401173127:(e,t)=>new hb.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),816062949:(e,t)=>new hb.IfcReparametrisedCompositeCurveSegment(e,t[0],t[1],t[2],t[3]),2914609552:(e,t)=>new hb.IfcResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1856042241:(e,t)=>new hb.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),3243963512:(e,t)=>new hb.IfcRevolvedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),4158566097:(e,t)=>new hb.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new hb.IfcRightCircularCylinder(e,t[0],t[1],t[2]),1862484736:(e,t)=>new hb.IfcSectionedSolid(e,t[0],t[1]),1290935644:(e,t)=>new hb.IfcSectionedSolidHorizontal(e,t[0],t[1],t[2]),1356537516:(e,t)=>new hb.IfcSectionedSurface(e,t[0],t[1],t[2]),3663146110:(e,t)=>new hb.IfcSimplePropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1412071761:(e,t)=>new hb.IfcSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),710998568:(e,t)=>new hb.IfcSpatialElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2706606064:(e,t)=>new hb.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new hb.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),463610769:(e,t)=>new hb.IfcSpatialZone(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2481509218:(e,t)=>new hb.IfcSpatialZoneType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),451544542:(e,t)=>new hb.IfcSphere(e,t[0],t[1]),4015995234:(e,t)=>new hb.IfcSphericalSurface(e,t[0],t[1]),2735484536:(e,t)=>new hb.IfcSpiral(e,t[0]),3544373492:(e,t)=>new hb.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new hb.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new hb.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new hb.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new hb.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new hb.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603775116:(e,t)=>new hb.IfcStructuralSurfaceReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4095615324:(e,t)=>new hb.IfcSubContractResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),699246055:(e,t)=>new hb.IfcSurfaceCurve(e,t[0],t[1],t[2]),2028607225:(e,t)=>new hb.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new hb.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new hb.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new hb.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3473067441:(e,t)=>new hb.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3206491090:(e,t)=>new hb.IfcTaskType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2387106220:(e,t)=>new hb.IfcTessellatedFaceSet(e,t[0],t[1]),782932809:(e,t)=>new hb.IfcThirdOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3],t[4]),1935646853:(e,t)=>new hb.IfcToroidalSurface(e,t[0],t[1],t[2]),3665877780:(e,t)=>new hb.IfcTransportationDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2916149573:(e,t)=>new hb.IfcTriangulatedFaceSet(e,t[0],t[1],t[2],t[3],t[4]),1229763772:(e,t)=>new hb.IfcTriangulatedIrregularNetwork(e,t[0],t[1],t[2],t[3],t[4],t[5]),3651464721:(e,t)=>new hb.IfcVehicleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),336235671:(e,t)=>new hb.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),512836454:(e,t)=>new hb.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2296667514:(e,t)=>new hb.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1635779807:(e,t)=>new hb.IfcAdvancedBrep(e,t[0]),2603310189:(e,t)=>new hb.IfcAdvancedBrepWithVoids(e,t[0],t[1]),1674181508:(e,t)=>new hb.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2887950389:(e,t)=>new hb.IfcBSplineSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),167062518:(e,t)=>new hb.IfcBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new hb.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new hb.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new hb.IfcBoundedCurve(e),3124254112:(e,t)=>new hb.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1626504194:(e,t)=>new hb.IfcBuiltElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2197970202:(e,t)=>new hb.IfcChimneyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new hb.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3893394355:(e,t)=>new hb.IfcCivilElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3497074424:(e,t)=>new hb.IfcClothoid(e,t[0],t[1]),300633059:(e,t)=>new hb.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3875453745:(e,t)=>new hb.IfcComplexPropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3732776249:(e,t)=>new hb.IfcCompositeCurve(e,t[0],t[1]),15328376:(e,t)=>new hb.IfcCompositeCurveOnSurface(e,t[0],t[1]),2510884976:(e,t)=>new hb.IfcConic(e,t[0]),2185764099:(e,t)=>new hb.IfcConstructionEquipmentResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4105962743:(e,t)=>new hb.IfcConstructionMaterialResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1525564444:(e,t)=>new hb.IfcConstructionProductResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2559216714:(e,t)=>new hb.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293443760:(e,t)=>new hb.IfcControl(e,t[0],t[1],t[2],t[3],t[4],t[5]),2000195564:(e,t)=>new hb.IfcCosineSpiral(e,t[0],t[1],t[2]),3895139033:(e,t)=>new hb.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1419761937:(e,t)=>new hb.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4189326743:(e,t)=>new hb.IfcCourseType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916426348:(e,t)=>new hb.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new hb.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1457835157:(e,t)=>new hb.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1213902940:(e,t)=>new hb.IfcCylindricalSurface(e,t[0],t[1]),1306400036:(e,t)=>new hb.IfcDeepFoundationType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4234616927:(e,t)=>new hb.IfcDirectrixDerivedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),3256556792:(e,t)=>new hb.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new hb.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2963535650:(e,t)=>new hb.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),1714330368:(e,t)=>new hb.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2323601079:(e,t)=>new hb.IfcDoorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),445594917:(e,t)=>new hb.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new hb.IfcDraughtingPreDefinedCurveFont(e,t[0]),1758889154:(e,t)=>new hb.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new hb.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2397081782:(e,t)=>new hb.IfcElementAssemblyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new hb.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new hb.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new hb.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new hb.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),132023988:(e,t)=>new hb.IfcEngineType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3174744832:(e,t)=>new hb.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new hb.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4148101412:(e,t)=>new hb.IfcEvent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2853485674:(e,t)=>new hb.IfcExternalSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),807026263:(e,t)=>new hb.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new hb.IfcFacetedBrepWithVoids(e,t[0],t[1]),24185140:(e,t)=>new hb.IfcFacility(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1310830890:(e,t)=>new hb.IfcFacilityPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4228831410:(e,t)=>new hb.IfcFacilityPartCommon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),647756555:(e,t)=>new hb.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2489546625:(e,t)=>new hb.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2827207264:(e,t)=>new hb.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new hb.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new hb.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new hb.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new hb.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new hb.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new hb.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new hb.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new hb.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new hb.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new hb.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1893162501:(e,t)=>new hb.IfcFootingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),263784265:(e,t)=>new hb.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1509553395:(e,t)=>new hb.IfcFurniture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3493046030:(e,t)=>new hb.IfcGeographicElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4230923436:(e,t)=>new hb.IfcGeotechnicalElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1594536857:(e,t)=>new hb.IfcGeotechnicalStratum(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2898700619:(e,t)=>new hb.IfcGradientCurve(e,t[0],t[1],t[2],t[3]),2706460486:(e,t)=>new hb.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new hb.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new hb.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2568555532:(e,t)=>new hb.IfcImpactProtectionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3948183225:(e,t)=>new hb.IfcImpactProtectionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2571569899:(e,t)=>new hb.IfcIndexedPolyCurve(e,t[0],t[1],t[2]),3946677679:(e,t)=>new hb.IfcInterceptorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3113134337:(e,t)=>new hb.IfcIntersectionCurve(e,t[0],t[1],t[2]),2391368822:(e,t)=>new hb.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new hb.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),679976338:(e,t)=>new hb.IfcKerbType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new hb.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1051575348:(e,t)=>new hb.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new hb.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2176059722:(e,t)=>new hb.IfcLinearElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1770583370:(e,t)=>new hb.IfcLiquidTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),525669439:(e,t)=>new hb.IfcMarineFacility(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),976884017:(e,t)=>new hb.IfcMarinePart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),377706215:(e,t)=>new hb.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2108223431:(e,t)=>new hb.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1114901282:(e,t)=>new hb.IfcMedicalDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3181161470:(e,t)=>new hb.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1950438474:(e,t)=>new hb.IfcMobileTelecommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),710110818:(e,t)=>new hb.IfcMooringDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new hb.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),506776471:(e,t)=>new hb.IfcNavigationElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4143007308:(e,t)=>new hb.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new hb.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2837617999:(e,t)=>new hb.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),514975943:(e,t)=>new hb.IfcPavementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new hb.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3566463478:(e,t)=>new hb.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3327091369:(e,t)=>new hb.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1158309216:(e,t)=>new hb.IfcPileType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),804291784:(e,t)=>new hb.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new hb.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new hb.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2839578677:(e,t)=>new hb.IfcPolygonalFaceSet(e,t[0],t[1],t[2],t[3]),3724593414:(e,t)=>new hb.IfcPolyline(e,t[0]),3740093272:(e,t)=>new hb.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1946335990:(e,t)=>new hb.IfcPositioningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new hb.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new hb.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3651124850:(e,t)=>new hb.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1842657554:(e,t)=>new hb.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new hb.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1763565496:(e,t)=>new hb.IfcRailType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2893384427:(e,t)=>new hb.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3992365140:(e,t)=>new hb.IfcRailway(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1891881377:(e,t)=>new hb.IfcRailwayPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2324767716:(e,t)=>new hb.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1469900589:(e,t)=>new hb.IfcRampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),683857671:(e,t)=>new hb.IfcRationalBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4021432810:(e,t)=>new hb.IfcReferent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3027567501:(e,t)=>new hb.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),964333572:(e,t)=>new hb.IfcReinforcingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new hb.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2310774935:(e,t)=>new hb.IfcReinforcingMeshType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),3818125796:(e,t)=>new hb.IfcRelAdheresToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),160246688:(e,t)=>new hb.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),146592293:(e,t)=>new hb.IfcRoad(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),550521510:(e,t)=>new hb.IfcRoadPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2781568857:(e,t)=>new hb.IfcRoofType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1768891740:(e,t)=>new hb.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2157484638:(e,t)=>new hb.IfcSeamCurve(e,t[0],t[1],t[2]),3649235739:(e,t)=>new hb.IfcSecondOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3]),544395925:(e,t)=>new hb.IfcSegmentedReferenceCurve(e,t[0],t[1],t[2],t[3]),1027922057:(e,t)=>new hb.IfcSeventhOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074543187:(e,t)=>new hb.IfcShadingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),33720170:(e,t)=>new hb.IfcSign(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3599934289:(e,t)=>new hb.IfcSignType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1894708472:(e,t)=>new hb.IfcSignalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),42703149:(e,t)=>new hb.IfcSineSpiral(e,t[0],t[1],t[2],t[3]),4097777520:(e,t)=>new hb.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new hb.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1072016465:(e,t)=>new hb.IfcSolarDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new hb.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new hb.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new hb.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3112655638:(e,t)=>new hb.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new hb.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),338393293:(e,t)=>new hb.IfcStairType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new hb.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1179482911:(e,t)=>new hb.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1004757350:(e,t)=>new hb.IfcStructuralCurveAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4243806635:(e,t)=>new hb.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),214636428:(e,t)=>new hb.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2445595289:(e,t)=>new hb.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2757150158:(e,t)=>new hb.IfcStructuralCurveReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1807405624:(e,t)=>new hb.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1252848954:(e,t)=>new hb.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2082059205:(e,t)=>new hb.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),734778138:(e,t)=>new hb.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1235345126:(e,t)=>new hb.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new hb.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3657597509:(e,t)=>new hb.IfcStructuralSurfaceAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1975003073:(e,t)=>new hb.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new hb.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3101698114:(e,t)=>new hb.IfcSurfaceFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2315554128:(e,t)=>new hb.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new hb.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),413509423:(e,t)=>new hb.IfcSystemFurnitureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),5716631:(e,t)=>new hb.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3824725483:(e,t)=>new hb.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new hb.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3081323446:(e,t)=>new hb.IfcTendonAnchorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3663046924:(e,t)=>new hb.IfcTendonConduit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2281632017:(e,t)=>new hb.IfcTendonConduitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2415094496:(e,t)=>new hb.IfcTendonType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),618700268:(e,t)=>new hb.IfcTrackElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1692211062:(e,t)=>new hb.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2097647324:(e,t)=>new hb.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1953115116:(e,t)=>new hb.IfcTransportationDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3593883385:(e,t)=>new hb.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new hb.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new hb.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new hb.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),840318589:(e,t)=>new hb.IfcVehicle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1530820697:(e,t)=>new hb.IfcVibrationDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3956297820:(e,t)=>new hb.IfcVibrationDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391383451:(e,t)=>new hb.IfcVibrationIsolator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new hb.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new hb.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),926996030:(e,t)=>new hb.IfcVoidingFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1898987631:(e,t)=>new hb.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new hb.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4009809668:(e,t)=>new hb.IfcWindowType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4088093105:(e,t)=>new hb.IfcWorkCalendar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1028945134:(e,t)=>new hb.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4218914973:(e,t)=>new hb.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),3342526732:(e,t)=>new hb.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1033361043:(e,t)=>new hb.IfcZone(e,t[0],t[1],t[2],t[3],t[4],t[5]),3821786052:(e,t)=>new hb.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1411407467:(e,t)=>new hb.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new hb.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new hb.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4266260250:(e,t)=>new hb.IfcAlignmentCant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1545765605:(e,t)=>new hb.IfcAlignmentHorizontal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),317615605:(e,t)=>new hb.IfcAlignmentSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1662888072:(e,t)=>new hb.IfcAlignmentVertical(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3460190687:(e,t)=>new hb.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1532957894:(e,t)=>new hb.IfcAudioVisualApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1967976161:(e,t)=>new hb.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),2461110595:(e,t)=>new hb.IfcBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),819618141:(e,t)=>new hb.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3649138523:(e,t)=>new hb.IfcBearingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),231477066:(e,t)=>new hb.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1136057603:(e,t)=>new hb.IfcBoundaryCurve(e,t[0],t[1]),644574406:(e,t)=>new hb.IfcBridge(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),963979645:(e,t)=>new hb.IfcBridgePart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4031249490:(e,t)=>new hb.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2979338954:(e,t)=>new hb.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),39481116:(e,t)=>new hb.IfcBuildingElementPartType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1909888760:(e,t)=>new hb.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1177604601:(e,t)=>new hb.IfcBuildingSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1876633798:(e,t)=>new hb.IfcBuiltElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3862327254:(e,t)=>new hb.IfcBuiltSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2188180465:(e,t)=>new hb.IfcBurnerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new hb.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new hb.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2674252688:(e,t)=>new hb.IfcCableFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new hb.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3203706013:(e,t)=>new hb.IfcCaissonFoundationType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new hb.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3296154744:(e,t)=>new hb.IfcChimney(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2611217952:(e,t)=>new hb.IfcCircle(e,t[0],t[1]),1677625105:(e,t)=>new hb.IfcCivilElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2301859152:(e,t)=>new hb.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new hb.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),400855858:(e,t)=>new hb.IfcCommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3850581409:(e,t)=>new hb.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new hb.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3898045240:(e,t)=>new hb.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1060000209:(e,t)=>new hb.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new hb.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2940368186:(e,t)=>new hb.IfcConveyorSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),335055490:(e,t)=>new hb.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new hb.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1502416096:(e,t)=>new hb.IfcCourse(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1973544240:(e,t)=>new hb.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new hb.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3961806047:(e,t)=>new hb.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3426335179:(e,t)=>new hb.IfcDeepFoundation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1335981549:(e,t)=>new hb.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2635815018:(e,t)=>new hb.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),479945903:(e,t)=>new hb.IfcDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1599208980:(e,t)=>new hb.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new hb.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new hb.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new hb.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new hb.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3205830791:(e,t)=>new hb.IfcDistributionSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),395920057:(e,t)=>new hb.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),869906466:(e,t)=>new hb.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new hb.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new hb.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3071239417:(e,t)=>new hb.IfcEarthworksCut(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1077100507:(e,t)=>new hb.IfcEarthworksElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3376911765:(e,t)=>new hb.IfcEarthworksFill(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),663422040:(e,t)=>new hb.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2417008758:(e,t)=>new hb.IfcElectricDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new hb.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2142170206:(e,t)=>new hb.IfcElectricFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new hb.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new hb.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new hb.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1658829314:(e,t)=>new hb.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2814081492:(e,t)=>new hb.IfcEngine(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3747195512:(e,t)=>new hb.IfcEvaporativeCooler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),484807127:(e,t)=>new hb.IfcEvaporator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1209101575:(e,t)=>new hb.IfcExternalSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),346874300:(e,t)=>new hb.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new hb.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new hb.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new hb.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new hb.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new hb.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188021234:(e,t)=>new hb.IfcFlowMeter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3132237377:(e,t)=>new hb.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new hb.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new hb.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new hb.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new hb.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new hb.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2713699986:(e,t)=>new hb.IfcGeotechnicalAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3009204131:(e,t)=>new hb.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3319311131:(e,t)=>new hb.IfcHeatExchanger(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2068733104:(e,t)=>new hb.IfcHumidifier(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4175244083:(e,t)=>new hb.IfcInterceptor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2176052936:(e,t)=>new hb.IfcJunctionBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2696325953:(e,t)=>new hb.IfcKerb(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),76236018:(e,t)=>new hb.IfcLamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),629592764:(e,t)=>new hb.IfcLightFixture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1154579445:(e,t)=>new hb.IfcLinearPositioningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1638804497:(e,t)=>new hb.IfcLiquidTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1437502449:(e,t)=>new hb.IfcMedicalDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new hb.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2078563270:(e,t)=>new hb.IfcMobileTelecommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),234836483:(e,t)=>new hb.IfcMooringDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2474470126:(e,t)=>new hb.IfcMotorConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2182337498:(e,t)=>new hb.IfcNavigationElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),144952367:(e,t)=>new hb.IfcOuterBoundaryCurve(e,t[0],t[1]),3694346114:(e,t)=>new hb.IfcOutlet(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1383356374:(e,t)=>new hb.IfcPavement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1687234759:(e,t)=>new hb.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),310824031:(e,t)=>new hb.IfcPipeFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3612865200:(e,t)=>new hb.IfcPipeSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3171933400:(e,t)=>new hb.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),738039164:(e,t)=>new hb.IfcProtectiveDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),655969474:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),90941305:(e,t)=>new hb.IfcPump(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3290496277:(e,t)=>new hb.IfcRail(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2262370178:(e,t)=>new hb.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new hb.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new hb.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1232101972:(e,t)=>new hb.IfcRationalBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3798194928:(e,t)=>new hb.IfcReinforcedSoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),979691226:(e,t)=>new hb.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2572171363:(e,t)=>new hb.IfcReinforcingBarType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),2016517767:(e,t)=>new hb.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3053780830:(e,t)=>new hb.IfcSanitaryTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1783015770:(e,t)=>new hb.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1329646415:(e,t)=>new hb.IfcShadingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),991950508:(e,t)=>new hb.IfcSignal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1529196076:(e,t)=>new hb.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3420628829:(e,t)=>new hb.IfcSolarDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1999602285:(e,t)=>new hb.IfcSpaceHeater(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1404847402:(e,t)=>new hb.IfcStackTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new hb.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new hb.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2515109513:(e,t)=>new hb.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),385403989:(e,t)=>new hb.IfcStructuralLoadCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1621171031:(e,t)=>new hb.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1162798199:(e,t)=>new hb.IfcSwitchingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),812556717:(e,t)=>new hb.IfcTank(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3425753595:(e,t)=>new hb.IfcTrackElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3825984169:(e,t)=>new hb.IfcTransformer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1620046519:(e,t)=>new hb.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3026737570:(e,t)=>new hb.IfcTubeBundle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3179687236:(e,t)=>new hb.IfcUnitaryControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4292641817:(e,t)=>new hb.IfcUnitaryEquipment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4207607924:(e,t)=>new hb.IfcValve(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2391406946:(e,t)=>new hb.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3512223829:(e,t)=>new hb.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4237592921:(e,t)=>new hb.IfcWasteTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3304561284:(e,t)=>new hb.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2874132201:(e,t)=>new hb.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634111441:(e,t)=>new hb.IfcAirTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),177149247:(e,t)=>new hb.IfcAirTerminalBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2056796094:(e,t)=>new hb.IfcAirToAirHeatRecovery(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3001207471:(e,t)=>new hb.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),325726236:(e,t)=>new hb.IfcAlignment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),277319702:(e,t)=>new hb.IfcAudioVisualAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),753842376:(e,t)=>new hb.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4196446775:(e,t)=>new hb.IfcBearing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),32344328:(e,t)=>new hb.IfcBoiler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3314249567:(e,t)=>new hb.IfcBorehole(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1095909175:(e,t)=>new hb.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2938176219:(e,t)=>new hb.IfcBurner(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),635142910:(e,t)=>new hb.IfcCableCarrierFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3758799889:(e,t)=>new hb.IfcCableCarrierSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1051757585:(e,t)=>new hb.IfcCableFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4217484030:(e,t)=>new hb.IfcCableSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3999819293:(e,t)=>new hb.IfcCaissonFoundation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3902619387:(e,t)=>new hb.IfcChiller(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639361253:(e,t)=>new hb.IfcCoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3221913625:(e,t)=>new hb.IfcCommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3571504051:(e,t)=>new hb.IfcCompressor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2272882330:(e,t)=>new hb.IfcCondenser(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),578613899:(e,t)=>new hb.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3460952963:(e,t)=>new hb.IfcConveyorSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4136498852:(e,t)=>new hb.IfcCooledBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3640358203:(e,t)=>new hb.IfcCoolingTower(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074379575:(e,t)=>new hb.IfcDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3693000487:(e,t)=>new hb.IfcDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1052013943:(e,t)=>new hb.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),562808652:(e,t)=>new hb.IfcDistributionCircuit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1062813311:(e,t)=>new hb.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),342316401:(e,t)=>new hb.IfcDuctFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3518393246:(e,t)=>new hb.IfcDuctSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1360408905:(e,t)=>new hb.IfcDuctSilencer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1904799276:(e,t)=>new hb.IfcElectricAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),862014818:(e,t)=>new hb.IfcElectricDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3310460725:(e,t)=>new hb.IfcElectricFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),24726584:(e,t)=>new hb.IfcElectricFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),264262732:(e,t)=>new hb.IfcElectricGenerator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),402227799:(e,t)=>new hb.IfcElectricMotor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1003880860:(e,t)=>new hb.IfcElectricTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3415622556:(e,t)=>new hb.IfcFan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),819412036:(e,t)=>new hb.IfcFilter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1426591983:(e,t)=>new hb.IfcFireSuppressionTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),182646315:(e,t)=>new hb.IfcFlowInstrument(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2680139844:(e,t)=>new hb.IfcGeomodel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1971632696:(e,t)=>new hb.IfcGeoslice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2295281155:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4086658281:(e,t)=>new hb.IfcSensor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),630975310:(e,t)=>new hb.IfcUnitaryControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4288193352:(e,t)=>new hb.IfcActuator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3087945054:(e,t)=>new hb.IfcAlarm(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),25142252:(e,t)=>new hb.IfcController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},Zb[3]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],2879124712:e=>[e.StartTag,e.EndTag],3633395639:e=>[e.StartTag,e.EndTag,e.StartDistAlong,e.HorizontalLength,e.StartHeight,e.StartGradient,e.EndGradient,e.RadiusOfCurvature,e.PredefinedType],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],130549933:e=>[e.Identifier,e.Name,e.Description,e.TimeOfApproval,e.Status,e.Level,e.Qualifier,e.RequestingApproval,e.GivingApproval],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.TranslationalStiffnessByLengthX?sD(e.TranslationalStiffnessByLengthX):null,e.TranslationalStiffnessByLengthY?sD(e.TranslationalStiffnessByLengthY):null,e.TranslationalStiffnessByLengthZ?sD(e.TranslationalStiffnessByLengthZ):null,e.RotationalStiffnessByLengthX?sD(e.RotationalStiffnessByLengthX):null,e.RotationalStiffnessByLengthY?sD(e.RotationalStiffnessByLengthY):null,e.RotationalStiffnessByLengthZ?sD(e.RotationalStiffnessByLengthZ):null],3367102660:e=>[e.Name,e.TranslationalStiffnessByAreaX?sD(e.TranslationalStiffnessByAreaX):null,e.TranslationalStiffnessByAreaY?sD(e.TranslationalStiffnessByAreaY):null,e.TranslationalStiffnessByAreaZ?sD(e.TranslationalStiffnessByAreaZ):null],1387855156:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null],2069777674:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null,e.WarpingStiffness?sD(e.WarpingStiffness):null],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],775493141:e=>[e.VolumeOnRelatingElement,e.VolumeOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1785450214:e=>[e.SourceCRS,e.TargetCRS],1466758467:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType,e.Name],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],4294318154:e=>[],3200245327:e=>[e.Location,e.Identification,e.Name],2242383968:e=>[e.Location,e.Identification,e.Name],1040185647:e=>[e.Location,e.Identification,e.Name],3548104201:e=>[e.Location,e.Identification,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.Location,e.Description],3452421091:e=>[e.Location,e.Identification,e.Name,e.Description,e.Language,e.ReferencedLibrary],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],3057273783:e=>[e.SourceCRS,e.TargetCRS,e.Eastings,e.Northings,e.OrthogonalHeight,e.XAxisAbscissa,e.XAxisOrdinate,e.Scale,e.ScaleY,e.ScaleZ],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],760658860:e=>[],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority]},3303938423:e=>[e.MaterialLayers,e.LayerSetName,e.Description],1847252529:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority,e.OffsetDirection,e.OffsetValues]},2199411900:e=>[e.Materials],2235152071:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category],164193824:e=>[e.Name,e.Description,e.MaterialProfiles,e.CompositeProfile],552965576:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category,e.OffsetValues],1507914824:e=>[],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue,e.ReferencePath],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[e.PlacementRelTo],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.LogicalAggregator,e.ObjectiveQualifier,e.UserDefinedQualifier],4251960020:e=>[e.Identification,e.Name,e.Description,e.Roles,e.Addresses],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Identification,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],677532197:e=>[],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>{var t,s,n;return[e.Name,e.Description,e.AssignedItems,e.Identifier,null==(t=e.LayerOn)?void 0:t.toString(),null==(s=e.LayerFrozen)?void 0:s.toString(),null==(n=e.LayerBlocked)?void 0:n.toString(),e.LayerStyles]},3119450353:e=>[e.Name],2095639259:e=>[e.Name,e.Description,e.Representations],3958567839:e=>[e.ProfileType,e.ProfileName],3843373140:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum,e.MapProjection,e.MapZone,e.MapUnit],986844984:e=>[],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue,e.Formula],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue,e.Formula],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue,e.Formula],2691318326:e=>[e.Name,e.Description,e.Unit,e.NumberValue,e.Formula],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue,e.Formula],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue,e.Formula],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue,e.Formula],3915482550:e=>[e.RecurrenceType,e.DayComponent,e.WeekdayComponent,e.MonthComponent,e.Position,e.Interval,e.Occurrences,e.TimePeriods],2433181523:e=>[e.TypeIdentifier,e.AttributeIdentifier,e.InstanceName,e.ListPositions,e.InnerReference],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],2439245199:e=>[e.Name,e.Description],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],1054537805:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin],867548509:e=>{var t;return[e.ShapeRepresentations,e.Name,e.Description,null==(t=e.ProductDefinitional)?void 0:t.toString(),e.PartOfProductDefinitionShape]},3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2273995522:e=>[e.Name],2162789131:e=>[e.Name],3478079324:e=>[e.Name,e.Values,e.Locations],609421318:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaTConstant,e.DeltaTY,e.DeltaTZ],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2934153892:e=>[e.Name,e.SurfaceReinforcement1,e.SurfaceReinforcement2,e.ShearReinforcement],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour,e.Transparency],1351298697:e=>[e.Textures],626085974:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter]},985171141:e=>[e.Name,e.Rows,e.Columns],2043862942:e=>[e.Identifier,e.Name,e.Description,e.Unit,e.ReferencePath],531007025:e=>{var t;return[e.RowCells?e.RowCells.map((e=>sD(e))):null,null==(t=e.IsHeading)?void 0:t.toString()]},1549132990:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion]},2771591690:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion,e.Recurrence]},912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL,e.MessagingIDs],1447204868:e=>{var t;return[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],280115917:e=>[e.Maps],1742049831:e=>[e.Maps,e.Mode,e.Parameter],222769930:e=>[e.TexCoordIndex,e.TexCoordsOf],1010789467:e=>[e.TexCoordIndex,e.TexCoordsOf,e.InnerTexCoordIndices],2552916305:e=>[e.Maps,e.Vertices,e.MappedTo],1210645708:e=>[e.Coordinates],3611470254:e=>[e.TexCoordsList],1199560280:e=>[e.StartTime,e.EndTime],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1236880293:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.RecurrencePattern,e.StartDate,e.FinishDate],3752311538:e=>[e.StartTag,e.EndTag,e.StartDistAlong,e.HorizontalLength,e.StartCantLeft,e.EndCantLeft,e.StartCantRight,e.EndCantRight,e.PredefinedType],536804194:e=>[e.StartTag,e.EndTag,e.StartPoint,e.StartDirection,e.StartRadiusOfCurvature,e.EndRadiusOfCurvature,e.SegmentLength,e.GravityCenterLineHeight,e.PredefinedType],3869604511:e=>[e.Name,e.Description,e.RelatingApproval,e.RelatedApprovals],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.RasterFormat,e.RasterCode]},3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name,e.Description,e.Specification,e.ReferenceTokens],647927063:e=>[e.Location,e.Identification,e.Name,e.ReferencedSource,e.Description,e.Sort],3285139300:e=>[e.ColourList],3264961684:e=>[e.Name],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],2713554722:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor,e.ConversionOffset],539742890:e=>[e.Name,e.Description,e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],3800577675:e=>{var t;return[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveStyleFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],1154170062:e=>[e.Identification,e.Name,e.Description,e.Location,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.Name,e.Description,e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3732053477:e=>[e.Location,e.Identification,e.Name,e.Description,e.ReferencedDocument],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,null==(t=e.SameSense)?void 0:t.toString()]},211053100:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ActualDate,e.EarlyDate,e.LateDate,e.ScheduleDate],297599258:e=>[e.Name,e.Description,e.Properties],1437805879:e=>[e.Name,e.Description,e.RelatingReference,e.RelatedResourceObjects],2556980723:e=>[e.Bounds],1809719519:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},803316827:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},3008276851:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>{var t;return[e.Name,e.FillStyles,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementRelTo,e.PlacementLocation,e.PlacementRefDirection],812098782:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString()]},3905492369:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.URLReference]},3570813810:e=>[e.MappedTo,e.Opacity,e.Colours,e.ColourIndex],1437953363:e=>[e.Maps,e.MappedTo,e.TexCoords],2133299955:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndex],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1585845231:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,sD(e.LagValue),e.DurationType],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],388784114:e=>[e.PlacementRelTo,e.RelativePlacement,e.CartesianPosition],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],1838606355:e=>[e.Name,e.Description,e.Category],3708119e3:e=>[e.Name,e.Description,e.Material,e.Fraction,e.Category],2852063980:e=>[e.Name,e.Description,e.MaterialConstituents],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine,e.ReferenceExtent],3079605661:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent],3404854881:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent,e.ForProfileEndSet,e.CardinalEndPoint],3265635763:e=>[e.Name,e.Description,e.Properties,e.Material],853536259:e=>[e.Name,e.Description,e.RelatingMaterial,e.RelatedMaterials,e.MaterialExpression],2998442950:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],182550632:e=>{var t;return[e.ProfileType,e.ProfileName,null==(t=e.HorizontalWidths)?void 0:t.toString(),e.Widths,e.Slopes,e.Tags,e.OffsetPoint]},2665983363:e=>[e.CfsFaces],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1029017970:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeElement,null==(t=e.Orientation)?void 0:t.toString()]},2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.Width,e.Height,e.ColourComponents,e.Pixel]},2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],2165702409:e=>[sD(e.DistanceAlong),e.OffsetLateral,e.OffsetVertical,e.OffsetLongitudinal,e.BasisCurve],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Position,e.PolygonalBoundary]},3727388367:e=>[e.Name],3778827333:e=>[],1775413392:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],2802850158:e=>[e.Name,e.Description,e.Properties,e.ProfileDefinition],2598011224:e=>[e.Name,e.Specification],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],148025276:e=>[e.Name,e.Description,e.DependingProperty,e.DependantProperty,e.Expression],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1482703590:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2090586900:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2943643501:e=>[e.Name,e.Description,e.RelatedResourceObjects,e.RelatingApproval],1608871552:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedResourceObjects],1042787934:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ScheduleWork,e.ScheduleUsage,e.ScheduleStart,e.ScheduleFinish,e.ScheduleContour,e.LevelingDelay,null==(t=e.IsOverAllocated)?void 0:t.toString(),e.StatusTime,e.ActualWork,e.ActualUsage,e.ActualStart,e.ActualFinish,e.RemainingWork,e.RemainingUsage,e.Completion]},2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],823603102:e=>[e.Transition],4124623270:e=>[e.SbsmBoundary],3692461612:e=>[e.Name,e.Specification],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],1096409881:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam,e.FilletRadius],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope],901063453:e=>[],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],3736923433:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],3698973494:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3406155212:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},669184980:e=>[e.OuterBoundary,e.InnerBoundaries],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomFlangeWidth,e.OverallDepth,e.WebThickness,e.BottomFlangeThickness,e.BottomFlangeFilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.BottomFlangeEdgeRadius,e.BottomFlangeSlope,e.TopFlangeEdgeRadius,e.TopFlangeSlope],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],3425423356:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Enclosure]},2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius],1123145078:e=>[e.Coordinates],574549367:e=>[],1675464909:e=>[e.CoordList,e.TagList],2059837836:e=>[e.CoordList,e.TagList],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Specification,e.UsageName,e.HasProperties],2485617015:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve]},2574617495:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity],3419103109:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],1815067380:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],2629017746:e=>{var t;return[e.BasisSurface,e.Boundaries,null==(t=e.ImplicitOuter)?void 0:t.toString()]},4212018352:e=>[e.Transition,e.Placement,sD(e.SegmentStart),sD(e.SegmentLength),e.ParentCurve],32440307:e=>[e.DirectionRatios],593015953:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null],1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],4024345920:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2804161546:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth,e.EndSweptArea],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],2652556860:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.FixedReference],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace,e.PredefinedType],4095422895:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.FlangeSlope],178912537:e=>[e.CoordIndex],2294589976:e=>[e.CoordIndex,e.InnerCoordIndices],3465909080:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndices],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope],428585644:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],590820931:e=>[e.BasisCurve],3388369263:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString()]},3505215534:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString(),e.RefDirection]},2485787929:e=>[e.BasisCurve,e.OffsetValues,e.Tag],1682466193:e=>[e.BasisSurface,e.ReferenceCurve],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],3381221214:e=>[e.Position,e.CoefficientsX,e.CoefficientsY,e.CoefficientsZ],759155922:e=>[e.Name],2559016684:e=>[e.Name],3967405729:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],569719735:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],653396225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],871118103:e=>[e.Name,e.Specification,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit,e.SetPointValue?sD(e.SetPointValue):null],4166981789:e=>[e.Name,e.Specification,e.EnumerationValues?e.EnumerationValues.map((e=>sD(e))):null,e.EnumerationReference],2752243245:e=>[e.Name,e.Specification,e.ListValues?e.ListValues.map((e=>sD(e))):null,e.Unit],941946838:e=>[e.Name,e.Specification,e.UsageName,e.PropertyReference],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],492091185:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.ApplicableEntity,e.HasPropertyTemplates],3650150729:e=>[e.Name,e.Specification,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Specification,e.DefiningValues?e.DefiningValues.map((e=>sD(e))):null,e.DefinedValues?e.DefinedValues.map((e=>sD(e))):null,e.Expression,e.DefiningUnit,e.DefinedUnit,e.CurveInterpolation],3521284610:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>{var t,s;return[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,null==(t=e.Usense)?void 0:t.toString(),null==(s=e.Vsense)?void 0:s.toString()]},3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],1027710054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup,e.Factor],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],1033248425:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingProfileDef],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedCoverings],2565941209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingContext,e.RelatedDefinitions],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1462361463:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingObject],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],307848117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedPropertySets,e.RelatingTemplate],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],427948657:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedElement,e.InterferenceGeometry,e.InterferenceSpace,e.InterferenceType,null==(t=e.ImpliedOrder)?void 0:t.toString()]},3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],1441486842:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPositioningElement,e.RelatedProducts],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType,e.UserDefinedSequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],3523091289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary],1521410863:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary,e.CorrespondingBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],816062949:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve,e.ParamLength]},2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],3243963512:e=>[e.SweptArea,e.Position,e.Axis,e.Angle,e.EndSweptArea],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],1862484736:e=>[e.Directrix,e.CrossSections],1290935644:e=>[e.Directrix,e.CrossSections,e.CrossSectionPositions],1356537516:e=>[e.Directrix,e.CrossSectionPositions,e.CrossSections],3663146110:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.PrimaryMeasureType,e.SecondaryMeasureType,e.Enumerators,e.PrimaryUnit,e.SecondaryUnit,e.Expression,e.AccessState],1412071761:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],710998568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],463610769:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],2481509218:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],451544542:e=>[e.Position,e.Radius],4015995234:e=>[e.Position,e.Radius],2735484536:e=>[e.Position],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],603775116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],4095615324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],699246055:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3473067441:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Status,e.WorkMethod,null==(t=e.IsMilestone)?void 0:t.toString(),e.Priority,e.TaskTime,e.PredefinedType]},3206491090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.WorkMethod],2387106220:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString()]},782932809:e=>[e.Position,e.CubicTerm,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],1935646853:e=>[e.Position,e.MajorRadius,e.MinorRadius],3665877780:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2916149573:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Normals,e.CoordIndex,e.PnIndex]},1229763772:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Normals,e.CoordIndex,e.PnIndex,e.Flags]},3651464721:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle,e.LiningOffset,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1635779807:e=>[e.Outer],2603310189:e=>[e.Outer,e.Voids],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],2887950389:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString()]},167062518:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec]},1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],1626504194:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2197970202:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],3893394355:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3497074424:e=>[e.Position,e.ClothoidConstant],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3875453745:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.UsageName,e.TemplateType,e.HasPropertyTemplates],3732776249:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},15328376:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},2510884976:e=>[e.Position],2185764099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],4105962743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1525564444:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification],2000195564:e=>[e.Position,e.CosineTerm,e.ConstantTerm],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.CostValues,e.CostQuantities],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.SubmittedOn,e.UpdateDate],4189326743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1213902940:e=>[e.Position,e.Radius],1306400036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],4234616927:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.FixedReference],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],2323601079:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedOperationType]},445594917:e=>[e.Name],4006246654:e=>[e.Name],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],2397081782:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],132023988:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4148101412:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType,e.EventOccurenceTime],2853485674:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],24185140:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],1310830890:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType],4228831410:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1893162501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1509553395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3493046030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4230923436:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1594536857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2898700619:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString(),e.BaseCurve,e.EndPoint]},2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2568555532:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3948183225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2571569899:e=>{var t;return[e.Points,e.Segments?e.Segments.map((e=>sD(e))):null,null==(t=e.SelfIntersect)?void 0:t.toString()]},3946677679:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3113134337:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],679976338:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,null==(t=e.Mountable)?void 0:t.toString()]},3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2176059722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1770583370:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],525669439:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],976884017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength,e.PredefinedType],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.NominalLength],1114901282:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1950438474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],710110818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],506776471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],514975943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LifeCyclePhase,e.PredefinedType],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1158309216:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2839578677:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Faces,e.PnIndex]},3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1946335990:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1763565496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3992365140:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],1891881377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1469900589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],683857671:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec,e.WeightsData]},4021432810:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],964333572:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.PredefinedType],2310774935:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],3818125796:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedSurfaceFeatures],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],146592293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],550521510:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],2781568857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2157484638:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],3649235739:e=>[e.Position,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],544395925:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString(),e.BaseCurve,e.EndPoint]},1027922057:e=>[e.Position,e.SepticTerm,e.SexticTerm,e.QuinticTerm,e.QuarticTerm,e.CubicTerm,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],4074543187:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],33720170:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3599934289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1894708472:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],42703149:e=>[e.Position,e.SineTerm,e.LinearTerm,e.ConstantTerm],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1072016465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],338393293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1004757350:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.AxisDirection],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2757150158:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],1807405624:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],2082059205:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.ConditionCoordinateSystem],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,null==(t=e.IsLinear)?void 0:t.toString()]},3657597509:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],3101698114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],413509423:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],3081323446:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3663046924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],2281632017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2415094496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.SheathDiameter],618700268:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1953115116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3593883385:e=>{var t;return[e.BasisCurve,e.Trim1,e.Trim2,null==(t=e.SenseAgreement)?void 0:t.toString(),e.MasterRepresentation]},1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],840318589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1530820697:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3956297820:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391383451:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],926996030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4009809668:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.PartitioningType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedPartitioningType]},4088093105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.WorkingTimes,e.ExceptionTimes,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4266260250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.RailHeadDistance],1545765605:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],317615605:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.DesignParameters],1662888072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1532957894:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1967976161:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString()]},2461110595:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec]},819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3649138523:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1136057603:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},644574406:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],963979645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],39481116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1177604601:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],1876633798:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3862327254:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],2188180465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2674252688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3203706013:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3296154744:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],1677625105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],400855858:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2940368186:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1502416096:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3426335179:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],479945903:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection,e.PredefinedType,e.SystemType],3205830791:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3071239417:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1077100507:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3376911765:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2417008758:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2142170206:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2814081492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3747195512:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],484807127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1209101575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188021234:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2713699986:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes,e.PredefinedType],3319311131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2068733104:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4175244083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2176052936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2696325953:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,null==(t=e.Mountable)?void 0:t.toString()]},76236018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],629592764:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1154579445:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1638804497:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1437502449:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2078563270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],234836483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2474470126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2182337498:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],144952367:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3694346114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1383356374:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],310824031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3612865200:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],738039164:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],655969474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],90941305:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3290496277:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1232101972:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec,e.WeightsData]},3798194928:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.PredefinedType,e.BarSurface],2572171363:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarSurface,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3053780830:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1329646415:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],991950508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3420628829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1999602285:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1404847402:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRisers,e.NumberOfTreads,e.RiserHeight,e.TreadLength,e.PredefinedType],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults,e.SharedPlacement],385403989:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose,e.SelfWeightCoefficients],1621171031:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1162798199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],812556717:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3425753595:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3825984169:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3026737570:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3179687236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4292641817:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4207607924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4237592921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634111441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],177149247:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2056796094:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],325726236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],277319702:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4196446775:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],32344328:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3314249567:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2938176219:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],635142910:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3758799889:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1051757585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4217484030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3999819293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3902619387:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],639361253:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3221913625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3571504051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2272882330:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3460952963:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4136498852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3640358203:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4074379575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3693000487:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],562808652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],342316401:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3518393246:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1360408905:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1904799276:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],862014818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3310460725:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],24726584:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],264262732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],402227799:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1003880860:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3415622556:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],819412036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1426591983:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],182646315:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2680139844:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1971632696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2295281155:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4086658281:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],630975310:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4288193352:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3087945054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],25142252:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType]},$b[3]={3699917729:e=>new hb.IfcAbsorbedDoseMeasure(e),4182062534:e=>new hb.IfcAccelerationMeasure(e),360377573:e=>new hb.IfcAmountOfSubstanceMeasure(e),632304761:e=>new hb.IfcAngularVelocityMeasure(e),3683503648:e=>new hb.IfcArcIndex(e),1500781891:e=>new hb.IfcAreaDensityMeasure(e),2650437152:e=>new hb.IfcAreaMeasure(e),2314439260:e=>new hb.IfcBinary(e),2735952531:e=>new hb.IfcBoolean(e),1867003952:e=>new hb.IfcBoxAlignment(e),1683019596:e=>new hb.IfcCardinalPointReference(e),2991860651:e=>new hb.IfcComplexNumber(e),3812528620:e=>new hb.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new hb.IfcContextDependentMeasure(e),1778710042:e=>new hb.IfcCountMeasure(e),94842927:e=>new hb.IfcCurvatureMeasure(e),937566702:e=>new hb.IfcDate(e),2195413836:e=>new hb.IfcDateTime(e),86635668:e=>new hb.IfcDayInMonthNumber(e),3701338814:e=>new hb.IfcDayInWeekNumber(e),1514641115:e=>new hb.IfcDescriptiveMeasure(e),4134073009:e=>new hb.IfcDimensionCount(e),524656162:e=>new hb.IfcDoseEquivalentMeasure(e),2541165894:e=>new hb.IfcDuration(e),69416015:e=>new hb.IfcDynamicViscosityMeasure(e),1827137117:e=>new hb.IfcElectricCapacitanceMeasure(e),3818826038:e=>new hb.IfcElectricChargeMeasure(e),2093906313:e=>new hb.IfcElectricConductanceMeasure(e),3790457270:e=>new hb.IfcElectricCurrentMeasure(e),2951915441:e=>new hb.IfcElectricResistanceMeasure(e),2506197118:e=>new hb.IfcElectricVoltageMeasure(e),2078135608:e=>new hb.IfcEnergyMeasure(e),1102727119:e=>new hb.IfcFontStyle(e),2715512545:e=>new hb.IfcFontVariant(e),2590844177:e=>new hb.IfcFontWeight(e),1361398929:e=>new hb.IfcForceMeasure(e),3044325142:e=>new hb.IfcFrequencyMeasure(e),3064340077:e=>new hb.IfcGloballyUniqueId(e),3113092358:e=>new hb.IfcHeatFluxDensityMeasure(e),1158859006:e=>new hb.IfcHeatingValueMeasure(e),983778844:e=>new hb.IfcIdentifier(e),3358199106:e=>new hb.IfcIlluminanceMeasure(e),2679005408:e=>new hb.IfcInductanceMeasure(e),1939436016:e=>new hb.IfcInteger(e),3809634241:e=>new hb.IfcIntegerCountRateMeasure(e),3686016028:e=>new hb.IfcIonConcentrationMeasure(e),3192672207:e=>new hb.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new hb.IfcKinematicViscosityMeasure(e),3258342251:e=>new hb.IfcLabel(e),1275358634:e=>new hb.IfcLanguageId(e),1243674935:e=>new hb.IfcLengthMeasure(e),1774176899:e=>new hb.IfcLineIndex(e),191860431:e=>new hb.IfcLinearForceMeasure(e),2128979029:e=>new hb.IfcLinearMomentMeasure(e),1307019551:e=>new hb.IfcLinearStiffnessMeasure(e),3086160713:e=>new hb.IfcLinearVelocityMeasure(e),503418787:e=>new hb.IfcLogical(e),2095003142:e=>new hb.IfcLuminousFluxMeasure(e),2755797622:e=>new hb.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new hb.IfcLuminousIntensityMeasure(e),286949696:e=>new hb.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new hb.IfcMagneticFluxMeasure(e),1477762836:e=>new hb.IfcMassDensityMeasure(e),4017473158:e=>new hb.IfcMassFlowRateMeasure(e),3124614049:e=>new hb.IfcMassMeasure(e),3531705166:e=>new hb.IfcMassPerLengthMeasure(e),3341486342:e=>new hb.IfcModulusOfElasticityMeasure(e),2173214787:e=>new hb.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new hb.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new hb.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new hb.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new hb.IfcMolecularWeightMeasure(e),3114022597:e=>new hb.IfcMomentOfInertiaMeasure(e),2615040989:e=>new hb.IfcMonetaryMeasure(e),765770214:e=>new hb.IfcMonthInYearNumber(e),525895558:e=>new hb.IfcNonNegativeLengthMeasure(e),2095195183:e=>new hb.IfcNormalisedRatioMeasure(e),2395907400:e=>new hb.IfcNumericMeasure(e),929793134:e=>new hb.IfcPHMeasure(e),2260317790:e=>new hb.IfcParameterValue(e),2642773653:e=>new hb.IfcPlanarForceMeasure(e),4042175685:e=>new hb.IfcPlaneAngleMeasure(e),1790229001:e=>new hb.IfcPositiveInteger(e),2815919920:e=>new hb.IfcPositiveLengthMeasure(e),3054510233:e=>new hb.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new hb.IfcPositiveRatioMeasure(e),1364037233:e=>new hb.IfcPowerMeasure(e),2169031380:e=>new hb.IfcPresentableText(e),3665567075:e=>new hb.IfcPressureMeasure(e),2798247006:e=>new hb.IfcPropertySetDefinitionSet(e),3972513137:e=>new hb.IfcRadioActivityMeasure(e),96294661:e=>new hb.IfcRatioMeasure(e),200335297:e=>new hb.IfcReal(e),2133746277:e=>new hb.IfcRotationalFrequencyMeasure(e),1755127002:e=>new hb.IfcRotationalMassMeasure(e),3211557302:e=>new hb.IfcRotationalStiffnessMeasure(e),3467162246:e=>new hb.IfcSectionModulusMeasure(e),2190458107:e=>new hb.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new hb.IfcShearModulusMeasure(e),3471399674:e=>new hb.IfcSolidAngleMeasure(e),4157543285:e=>new hb.IfcSoundPowerLevelMeasure(e),846465480:e=>new hb.IfcSoundPowerMeasure(e),3457685358:e=>new hb.IfcSoundPressureLevelMeasure(e),993287707:e=>new hb.IfcSoundPressureMeasure(e),3477203348:e=>new hb.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new hb.IfcSpecularExponent(e),361837227:e=>new hb.IfcSpecularRoughness(e),58845555:e=>new hb.IfcTemperatureGradientMeasure(e),1209108979:e=>new hb.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new hb.IfcText(e),1460886941:e=>new hb.IfcTextAlignment(e),3490877962:e=>new hb.IfcTextDecoration(e),603696268:e=>new hb.IfcTextFontName(e),296282323:e=>new hb.IfcTextTransformation(e),232962298:e=>new hb.IfcThermalAdmittanceMeasure(e),2645777649:e=>new hb.IfcThermalConductivityMeasure(e),2281867870:e=>new hb.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new hb.IfcThermalResistanceMeasure(e),2016195849:e=>new hb.IfcThermalTransmittanceMeasure(e),743184107:e=>new hb.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new hb.IfcTime(e),2726807636:e=>new hb.IfcTimeMeasure(e),2591213694:e=>new hb.IfcTimeStamp(e),1278329552:e=>new hb.IfcTorqueMeasure(e),950732822:e=>new hb.IfcURIReference(e),3345633955:e=>new hb.IfcVaporPermeabilityMeasure(e),3458127941:e=>new hb.IfcVolumeMeasure(e),2593997549:e=>new hb.IfcVolumetricFlowRateMeasure(e),51269191:e=>new hb.IfcWarpingConstantMeasure(e),1718600412:e=>new hb.IfcWarpingMomentMeasure(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcArcIndex=class{constructor(e){this.value=e}};e.IfcAreaDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBinary=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcCardinalPointReference=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDate=class{constructor(e){this.value=e,this.type=1}};e.IfcDateTime=class{constructor(e){this.value=e,this.type=1}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInWeekNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDuration=class{constructor(e){this.value=e,this.type=1}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLanguageId=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLineIndex=class{constructor(e){this.value=e}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNonNegativeLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPropertySetDefinitionSet=class{constructor(e){this.value=e}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureRateOfChangeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTime=class{constructor(e){this.value=e,this.type=1}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcURIReference=class{constructor(e){this.value=e,this.type=1}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.EMAIL={type:3,value:"EMAIL"},s.FAX={type:3,value:"FAX"},s.PHONE={type:3,value:"PHONE"},s.POST={type:3,value:"POST"},s.VERBAL={type:3,value:"VERBAL"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionRequestTypeEnum=s;class n{}n.BRAKES={type:3,value:"BRAKES"},n.BUOYANCY={type:3,value:"BUOYANCY"},n.COMPLETION_G1={type:3,value:"COMPLETION_G1"},n.CREEP={type:3,value:"CREEP"},n.CURRENT={type:3,value:"CURRENT"},n.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},n.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},n.ERECTION={type:3,value:"ERECTION"},n.FIRE={type:3,value:"FIRE"},n.ICE={type:3,value:"ICE"},n.IMPACT={type:3,value:"IMPACT"},n.IMPULSE={type:3,value:"IMPULSE"},n.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},n.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},n.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},n.PROPPING={type:3,value:"PROPPING"},n.RAIN={type:3,value:"RAIN"},n.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},n.SHRINKAGE={type:3,value:"SHRINKAGE"},n.SNOW_S={type:3,value:"SNOW_S"},n.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},n.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},n.TRANSPORT={type:3,value:"TRANSPORT"},n.WAVE={type:3,value:"WAVE"},n.WIND_W={type:3,value:"WIND_W"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=n;class i{}i.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},i.PERMANENT_G={type:3,value:"PERMANENT_G"},i.VARIABLE_Q={type:3,value:"VARIABLE_Q"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=i;class a{}a.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},a.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},a.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},a.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},a.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=a;class r{}r.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},r.HOME={type:3,value:"HOME"},r.OFFICE={type:3,value:"OFFICE"},r.SITE={type:3,value:"SITE"},r.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.DIFFUSER={type:3,value:"DIFFUSER"},o.GRILLE={type:3,value:"GRILLE"},o.LOUVRE={type:3,value:"LOUVRE"},o.REGISTER={type:3,value:"REGISTER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.RAILWAYCROCODILE={type:3,value:"RAILWAYCROCODILE"},u.RAILWAYDETONATOR={type:3,value:"RAILWAYDETONATOR"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.BLOSSCURVE={type:3,value:"BLOSSCURVE"},h.CONSTANTCANT={type:3,value:"CONSTANTCANT"},h.COSINECURVE={type:3,value:"COSINECURVE"},h.HELMERTCURVE={type:3,value:"HELMERTCURVE"},h.LINEARTRANSITION={type:3,value:"LINEARTRANSITION"},h.SINECURVE={type:3,value:"SINECURVE"},h.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentCantSegmentTypeEnum=h;class p{}p.BLOSSCURVE={type:3,value:"BLOSSCURVE"},p.CIRCULARARC={type:3,value:"CIRCULARARC"},p.CLOTHOID={type:3,value:"CLOTHOID"},p.COSINECURVE={type:3,value:"COSINECURVE"},p.CUBIC={type:3,value:"CUBIC"},p.HELMERTCURVE={type:3,value:"HELMERTCURVE"},p.LINE={type:3,value:"LINE"},p.SINECURVE={type:3,value:"SINECURVE"},p.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentHorizontalSegmentTypeEnum=p;class A{}A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlignmentTypeEnum=A;class d{}d.CIRCULARARC={type:3,value:"CIRCULARARC"},d.CLOTHOID={type:3,value:"CLOTHOID"},d.CONSTANTGRADIENT={type:3,value:"CONSTANTGRADIENT"},d.PARABOLICARC={type:3,value:"PARABOLICARC"},e.IfcAlignmentVerticalSegmentTypeEnum=d;class f{}f.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},f.LOADING_3D={type:3,value:"LOADING_3D"},f.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},f.USERDEFINED={type:3,value:"USERDEFINED"},f.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=f;class I{}I.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},I.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},I.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},I.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=I;class y{}y.ASBUILTAREA={type:3,value:"ASBUILTAREA"},y.ASBUILTLINE={type:3,value:"ASBUILTLINE"},y.ASBUILTPOINT={type:3,value:"ASBUILTPOINT"},y.ASSUMEDAREA={type:3,value:"ASSUMEDAREA"},y.ASSUMEDLINE={type:3,value:"ASSUMEDLINE"},y.ASSUMEDPOINT={type:3,value:"ASSUMEDPOINT"},y.NON_PHYSICAL_SIGNAL={type:3,value:"NON_PHYSICAL_SIGNAL"},y.SUPERELEVATIONEVENT={type:3,value:"SUPERELEVATIONEVENT"},y.WIDTHEVENT={type:3,value:"WIDTHEVENT"},y.USERDEFINED={type:3,value:"USERDEFINED"},y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnnotationTypeEnum=y;class m{}m.ADD={type:3,value:"ADD"},m.DIVIDE={type:3,value:"DIVIDE"},m.MULTIPLY={type:3,value:"MULTIPLY"},m.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=m;class v{}v.FACTORY={type:3,value:"FACTORY"},v.SITE={type:3,value:"SITE"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=v;class w{}w.AMPLIFIER={type:3,value:"AMPLIFIER"},w.CAMERA={type:3,value:"CAMERA"},w.COMMUNICATIONTERMINAL={type:3,value:"COMMUNICATIONTERMINAL"},w.DISPLAY={type:3,value:"DISPLAY"},w.MICROPHONE={type:3,value:"MICROPHONE"},w.PLAYER={type:3,value:"PLAYER"},w.PROJECTOR={type:3,value:"PROJECTOR"},w.RECEIVER={type:3,value:"RECEIVER"},w.RECORDINGEQUIPMENT={type:3,value:"RECORDINGEQUIPMENT"},w.SPEAKER={type:3,value:"SPEAKER"},w.SWITCHER={type:3,value:"SWITCHER"},w.TELEPHONE={type:3,value:"TELEPHONE"},w.TUNER={type:3,value:"TUNER"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=w;class g{}g.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},g.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},g.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},g.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},g.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},g.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=g;class E{}E.CONICAL_SURF={type:3,value:"CONICAL_SURF"},E.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},E.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},E.PLANE_SURF={type:3,value:"PLANE_SURF"},E.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},E.RULED_SURF={type:3,value:"RULED_SURF"},E.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},E.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},E.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},E.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},E.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=E;class T{}T.BEAM={type:3,value:"BEAM"},T.CORNICE={type:3,value:"CORNICE"},T.DIAPHRAGM={type:3,value:"DIAPHRAGM"},T.EDGEBEAM={type:3,value:"EDGEBEAM"},T.GIRDER_SEGMENT={type:3,value:"GIRDER_SEGMENT"},T.HATSTONE={type:3,value:"HATSTONE"},T.HOLLOWCORE={type:3,value:"HOLLOWCORE"},T.JOIST={type:3,value:"JOIST"},T.LINTEL={type:3,value:"LINTEL"},T.PIERCAP={type:3,value:"PIERCAP"},T.SPANDREL={type:3,value:"SPANDREL"},T.T_BEAM={type:3,value:"T_BEAM"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=T;class b{}b.FIXED_MOVEMENT={type:3,value:"FIXED_MOVEMENT"},b.FREE_MOVEMENT={type:3,value:"FREE_MOVEMENT"},b.GUIDED_LONGITUDINAL={type:3,value:"GUIDED_LONGITUDINAL"},b.GUIDED_TRANSVERSAL={type:3,value:"GUIDED_TRANSVERSAL"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeDisplacementEnum=b;class D{}D.CYLINDRICAL={type:3,value:"CYLINDRICAL"},D.DISK={type:3,value:"DISK"},D.ELASTOMERIC={type:3,value:"ELASTOMERIC"},D.GUIDE={type:3,value:"GUIDE"},D.POT={type:3,value:"POT"},D.ROCKER={type:3,value:"ROCKER"},D.ROLLER={type:3,value:"ROLLER"},D.SPHERICAL={type:3,value:"SPHERICAL"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeEnum=D;class P{}P.EQUALTO={type:3,value:"EQUALTO"},P.GREATERTHAN={type:3,value:"GREATERTHAN"},P.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},P.INCLUDEDIN={type:3,value:"INCLUDEDIN"},P.INCLUDES={type:3,value:"INCLUDES"},P.LESSTHAN={type:3,value:"LESSTHAN"},P.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},P.NOTEQUALTO={type:3,value:"NOTEQUALTO"},P.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},P.NOTINCLUDES={type:3,value:"NOTINCLUDES"},e.IfcBenchmarkEnum=P;class R{}R.STEAM={type:3,value:"STEAM"},R.WATER={type:3,value:"WATER"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=R;class C{}C.DIFFERENCE={type:3,value:"DIFFERENCE"},C.INTERSECTION={type:3,value:"INTERSECTION"},C.UNION={type:3,value:"UNION"},e.IfcBooleanOperator=C;class _{}_.ABUTMENT={type:3,value:"ABUTMENT"},_.DECK={type:3,value:"DECK"},_.DECK_SEGMENT={type:3,value:"DECK_SEGMENT"},_.FOUNDATION={type:3,value:"FOUNDATION"},_.PIER={type:3,value:"PIER"},_.PIER_SEGMENT={type:3,value:"PIER_SEGMENT"},_.PYLON={type:3,value:"PYLON"},_.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},_.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},_.SURFACESTRUCTURE={type:3,value:"SURFACESTRUCTURE"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgePartTypeEnum=_;class B{}B.ARCHED={type:3,value:"ARCHED"},B.CABLE_STAYED={type:3,value:"CABLE_STAYED"},B.CANTILEVER={type:3,value:"CANTILEVER"},B.CULVERT={type:3,value:"CULVERT"},B.FRAMEWORK={type:3,value:"FRAMEWORK"},B.GIRDER={type:3,value:"GIRDER"},B.SUSPENSION={type:3,value:"SUSPENSION"},B.TRUSS={type:3,value:"TRUSS"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgeTypeEnum=B;class O{}O.APRON={type:3,value:"APRON"},O.ARMOURUNIT={type:3,value:"ARMOURUNIT"},O.INSULATION={type:3,value:"INSULATION"},O.PRECASTPANEL={type:3,value:"PRECASTPANEL"},O.SAFETYCAGE={type:3,value:"SAFETYCAGE"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=O;class S{}S.COMPLEX={type:3,value:"COMPLEX"},S.ELEMENT={type:3,value:"ELEMENT"},S.PARTIAL={type:3,value:"PARTIAL"},S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=S;class N{}N.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},N.FENESTRATION={type:3,value:"FENESTRATION"},N.FOUNDATION={type:3,value:"FOUNDATION"},N.LOADBEARING={type:3,value:"LOADBEARING"},N.OUTERSHELL={type:3,value:"OUTERSHELL"},N.PRESTRESSING={type:3,value:"PRESTRESSING"},N.REINFORCING={type:3,value:"REINFORCING"},N.SHADING={type:3,value:"SHADING"},N.TRANSPORT={type:3,value:"TRANSPORT"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=N;class x{}x.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},x.FENESTRATION={type:3,value:"FENESTRATION"},x.FOUNDATION={type:3,value:"FOUNDATION"},x.LOADBEARING={type:3,value:"LOADBEARING"},x.MOORING={type:3,value:"MOORING"},x.OUTERSHELL={type:3,value:"OUTERSHELL"},x.PRESTRESSING={type:3,value:"PRESTRESSING"},x.RAILWAYLINE={type:3,value:"RAILWAYLINE"},x.RAILWAYTRACK={type:3,value:"RAILWAYTRACK"},x.REINFORCING={type:3,value:"REINFORCING"},x.SHADING={type:3,value:"SHADING"},x.TRACKCIRCUIT={type:3,value:"TRACKCIRCUIT"},x.TRANSPORT={type:3,value:"TRANSPORT"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuiltSystemTypeEnum=x;class L{}L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=L;class M{}M.BEND={type:3,value:"BEND"},M.CONNECTOR={type:3,value:"CONNECTOR"},M.CROSS={type:3,value:"CROSS"},M.JUNCTION={type:3,value:"JUNCTION"},M.TEE={type:3,value:"TEE"},M.TRANSITION={type:3,value:"TRANSITION"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=M;class F{}F.CABLEBRACKET={type:3,value:"CABLEBRACKET"},F.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},F.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},F.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},F.CATENARYWIRE={type:3,value:"CATENARYWIRE"},F.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},F.DROPPER={type:3,value:"DROPPER"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=F;class H{}H.CONNECTOR={type:3,value:"CONNECTOR"},H.ENTRY={type:3,value:"ENTRY"},H.EXIT={type:3,value:"EXIT"},H.FANOUT={type:3,value:"FANOUT"},H.JUNCTION={type:3,value:"JUNCTION"},H.TRANSITION={type:3,value:"TRANSITION"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=H;class U{}U.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},U.CABLESEGMENT={type:3,value:"CABLESEGMENT"},U.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},U.CONTACTWIRESEGMENT={type:3,value:"CONTACTWIRESEGMENT"},U.CORESEGMENT={type:3,value:"CORESEGMENT"},U.FIBERSEGMENT={type:3,value:"FIBERSEGMENT"},U.FIBERTUBE={type:3,value:"FIBERTUBE"},U.OPTICALCABLESEGMENT={type:3,value:"OPTICALCABLESEGMENT"},U.STITCHWIRE={type:3,value:"STITCHWIRE"},U.WIREPAIRSEGMENT={type:3,value:"WIREPAIRSEGMENT"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=U;class G{}G.CAISSON={type:3,value:"CAISSON"},G.WELL={type:3,value:"WELL"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCaissonFoundationTypeEnum=G;class j{}j.ADDED={type:3,value:"ADDED"},j.DELETED={type:3,value:"DELETED"},j.MODIFIED={type:3,value:"MODIFIED"},j.NOCHANGE={type:3,value:"NOCHANGE"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=j;class V{}V.AIRCOOLED={type:3,value:"AIRCOOLED"},V.HEATRECOVERY={type:3,value:"HEATRECOVERY"},V.WATERCOOLED={type:3,value:"WATERCOOLED"},V.USERDEFINED={type:3,value:"USERDEFINED"},V.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=V;class k{}k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=k;class Q{}Q.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},Q.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},Q.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},Q.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},Q.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},Q.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},Q.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=Q;class W{}W.COLUMN={type:3,value:"COLUMN"},W.PIERSTEM={type:3,value:"PIERSTEM"},W.PIERSTEM_SEGMENT={type:3,value:"PIERSTEM_SEGMENT"},W.PILASTER={type:3,value:"PILASTER"},W.STANDCOLUMN={type:3,value:"STANDCOLUMN"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=W;class z{}z.ANTENNA={type:3,value:"ANTENNA"},z.AUTOMATON={type:3,value:"AUTOMATON"},z.COMPUTER={type:3,value:"COMPUTER"},z.FAX={type:3,value:"FAX"},z.GATEWAY={type:3,value:"GATEWAY"},z.INTELLIGENTPERIPHERAL={type:3,value:"INTELLIGENTPERIPHERAL"},z.IPNETWORKEQUIPMENT={type:3,value:"IPNETWORKEQUIPMENT"},z.LINESIDEELECTRONICUNIT={type:3,value:"LINESIDEELECTRONICUNIT"},z.MODEM={type:3,value:"MODEM"},z.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},z.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},z.NETWORKHUB={type:3,value:"NETWORKHUB"},z.OPTICALLINETERMINAL={type:3,value:"OPTICALLINETERMINAL"},z.OPTICALNETWORKUNIT={type:3,value:"OPTICALNETWORKUNIT"},z.PRINTER={type:3,value:"PRINTER"},z.RADIOBLOCKCENTER={type:3,value:"RADIOBLOCKCENTER"},z.REPEATER={type:3,value:"REPEATER"},z.ROUTER={type:3,value:"ROUTER"},z.SCANNER={type:3,value:"SCANNER"},z.TELECOMMAND={type:3,value:"TELECOMMAND"},z.TELEPHONYEXCHANGE={type:3,value:"TELEPHONYEXCHANGE"},z.TRANSITIONCOMPONENT={type:3,value:"TRANSITIONCOMPONENT"},z.TRANSPONDER={type:3,value:"TRANSPONDER"},z.TRANSPORTEQUIPMENT={type:3,value:"TRANSPORTEQUIPMENT"},z.USERDEFINED={type:3,value:"USERDEFINED"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=z;class K{}K.P_COMPLEX={type:3,value:"P_COMPLEX"},K.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=K;class Y{}Y.BOOSTER={type:3,value:"BOOSTER"},Y.DYNAMIC={type:3,value:"DYNAMIC"},Y.HERMETIC={type:3,value:"HERMETIC"},Y.OPENTYPE={type:3,value:"OPENTYPE"},Y.RECIPROCATING={type:3,value:"RECIPROCATING"},Y.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},Y.ROTARY={type:3,value:"ROTARY"},Y.ROTARYVANE={type:3,value:"ROTARYVANE"},Y.SCROLL={type:3,value:"SCROLL"},Y.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},Y.SINGLESCREW={type:3,value:"SINGLESCREW"},Y.SINGLESTAGE={type:3,value:"SINGLESTAGE"},Y.TROCHOIDAL={type:3,value:"TROCHOIDAL"},Y.TWINSCREW={type:3,value:"TWINSCREW"},Y.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},Y.USERDEFINED={type:3,value:"USERDEFINED"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=Y;class X{}X.AIRCOOLED={type:3,value:"AIRCOOLED"},X.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},X.WATERCOOLED={type:3,value:"WATERCOOLED"},X.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},X.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},X.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},X.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=X;class q{}q.ATEND={type:3,value:"ATEND"},q.ATPATH={type:3,value:"ATPATH"},q.ATSTART={type:3,value:"ATSTART"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=q;class J{}J.ADVISORY={type:3,value:"ADVISORY"},J.HARD={type:3,value:"HARD"},J.SOFT={type:3,value:"SOFT"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=J;class Z{}Z.DEMOLISHING={type:3,value:"DEMOLISHING"},Z.EARTHMOVING={type:3,value:"EARTHMOVING"},Z.ERECTING={type:3,value:"ERECTING"},Z.HEATING={type:3,value:"HEATING"},Z.LIGHTING={type:3,value:"LIGHTING"},Z.PAVING={type:3,value:"PAVING"},Z.PUMPING={type:3,value:"PUMPING"},Z.TRANSPORTING={type:3,value:"TRANSPORTING"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=Z;class ${}$.AGGREGATES={type:3,value:"AGGREGATES"},$.CONCRETE={type:3,value:"CONCRETE"},$.DRYWALL={type:3,value:"DRYWALL"},$.FUEL={type:3,value:"FUEL"},$.GYPSUM={type:3,value:"GYPSUM"},$.MASONRY={type:3,value:"MASONRY"},$.METAL={type:3,value:"METAL"},$.PLASTIC={type:3,value:"PLASTIC"},$.WOOD={type:3,value:"WOOD"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionMaterialResourceTypeEnum=$;class ee{}ee.ASSEMBLY={type:3,value:"ASSEMBLY"},ee.FORMWORK={type:3,value:"FORMWORK"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=ee;class te{}te.FLOATING={type:3,value:"FLOATING"},te.MULTIPOSITION={type:3,value:"MULTIPOSITION"},te.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},te.PROPORTIONAL={type:3,value:"PROPORTIONAL"},te.TWOPOSITION={type:3,value:"TWOPOSITION"},te.USERDEFINED={type:3,value:"USERDEFINED"},te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=te;class se{}se.BELTCONVEYOR={type:3,value:"BELTCONVEYOR"},se.BUCKETCONVEYOR={type:3,value:"BUCKETCONVEYOR"},se.CHUTECONVEYOR={type:3,value:"CHUTECONVEYOR"},se.SCREWCONVEYOR={type:3,value:"SCREWCONVEYOR"},se.USERDEFINED={type:3,value:"USERDEFINED"},se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConveyorSegmentTypeEnum=se;class ne{}ne.ACTIVE={type:3,value:"ACTIVE"},ne.PASSIVE={type:3,value:"PASSIVE"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=ne;class ie{}ie.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},ie.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},ie.NATURALDRAFT={type:3,value:"NATURALDRAFT"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=ie;class ae{}ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=ae;class re{}re.BUDGET={type:3,value:"BUDGET"},re.COSTPLAN={type:3,value:"COSTPLAN"},re.ESTIMATE={type:3,value:"ESTIMATE"},re.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},re.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},re.TENDER={type:3,value:"TENDER"},re.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=re;class le{}le.ARMOUR={type:3,value:"ARMOUR"},le.BALLASTBED={type:3,value:"BALLASTBED"},le.CORE={type:3,value:"CORE"},le.FILTER={type:3,value:"FILTER"},le.PAVEMENT={type:3,value:"PAVEMENT"},le.PROTECTION={type:3,value:"PROTECTION"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCourseTypeEnum=le;class oe{}oe.CEILING={type:3,value:"CEILING"},oe.CLADDING={type:3,value:"CLADDING"},oe.COPING={type:3,value:"COPING"},oe.FLOORING={type:3,value:"FLOORING"},oe.INSULATION={type:3,value:"INSULATION"},oe.MEMBRANE={type:3,value:"MEMBRANE"},oe.MOLDING={type:3,value:"MOLDING"},oe.ROOFING={type:3,value:"ROOFING"},oe.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},oe.SLEEVING={type:3,value:"SLEEVING"},oe.TOPPING={type:3,value:"TOPPING"},oe.WRAPPING={type:3,value:"WRAPPING"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=oe;class ce{}ce.OFFICE={type:3,value:"OFFICE"},ce.SITE={type:3,value:"SITE"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=ce;class ue{}ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=ue;class he{}he.LINEAR={type:3,value:"LINEAR"},he.LOG_LINEAR={type:3,value:"LOG_LINEAR"},he.LOG_LOG={type:3,value:"LOG_LOG"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=he;class pe{}pe.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},pe.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},pe.BLASTDAMPER={type:3,value:"BLASTDAMPER"},pe.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},pe.FIREDAMPER={type:3,value:"FIREDAMPER"},pe.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},pe.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},pe.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},pe.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},pe.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},pe.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=pe;class Ae{}Ae.MEASURED={type:3,value:"MEASURED"},Ae.PREDICTED={type:3,value:"PREDICTED"},Ae.SIMULATED={type:3,value:"SIMULATED"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=Ae;class de{}de.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},de.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},de.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},de.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},de.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},de.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},de.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},de.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},de.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},de.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},de.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},de.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},de.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},de.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},de.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},de.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},de.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},de.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},de.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},de.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},de.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},de.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},de.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},de.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},de.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},de.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},de.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},de.PHUNIT={type:3,value:"PHUNIT"},de.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},de.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},de.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},de.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},de.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},de.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},de.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},de.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},de.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},de.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},de.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},de.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},de.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},de.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},de.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},de.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},de.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},de.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},de.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},de.TORQUEUNIT={type:3,value:"TORQUEUNIT"},de.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},de.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},de.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},de.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},de.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=de;class fe{}fe.NEGATIVE={type:3,value:"NEGATIVE"},fe.POSITIVE={type:3,value:"POSITIVE"},e.IfcDirectionSenseEnum=fe;class Ie{}Ie.ANCHORPLATE={type:3,value:"ANCHORPLATE"},Ie.BIRDPROTECTION={type:3,value:"BIRDPROTECTION"},Ie.BRACKET={type:3,value:"BRACKET"},Ie.CABLEARRANGER={type:3,value:"CABLEARRANGER"},Ie.ELASTIC_CUSHION={type:3,value:"ELASTIC_CUSHION"},Ie.EXPANSION_JOINT_DEVICE={type:3,value:"EXPANSION_JOINT_DEVICE"},Ie.FILLER={type:3,value:"FILLER"},Ie.FLASHING={type:3,value:"FLASHING"},Ie.INSULATOR={type:3,value:"INSULATOR"},Ie.LOCK={type:3,value:"LOCK"},Ie.PANEL_STRENGTHENING={type:3,value:"PANEL_STRENGTHENING"},Ie.POINTMACHINEMOUNTINGDEVICE={type:3,value:"POINTMACHINEMOUNTINGDEVICE"},Ie.POINT_MACHINE_LOCKING_DEVICE={type:3,value:"POINT_MACHINE_LOCKING_DEVICE"},Ie.RAILBRACE={type:3,value:"RAILBRACE"},Ie.RAILPAD={type:3,value:"RAILPAD"},Ie.RAIL_LUBRICATION={type:3,value:"RAIL_LUBRICATION"},Ie.RAIL_MECHANICAL_EQUIPMENT={type:3,value:"RAIL_MECHANICAL_EQUIPMENT"},Ie.SHOE={type:3,value:"SHOE"},Ie.SLIDINGCHAIR={type:3,value:"SLIDINGCHAIR"},Ie.SOUNDABSORPTION={type:3,value:"SOUNDABSORPTION"},Ie.TENSIONINGEQUIPMENT={type:3,value:"TENSIONINGEQUIPMENT"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=Ie;class ye{}ye.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ye.DISPATCHINGBOARD={type:3,value:"DISPATCHINGBOARD"},ye.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ye.DISTRIBUTIONFRAME={type:3,value:"DISTRIBUTIONFRAME"},ye.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ye.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ye.USERDEFINED={type:3,value:"USERDEFINED"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionBoardTypeEnum=ye;class me{}me.FORMEDDUCT={type:3,value:"FORMEDDUCT"},me.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},me.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},me.MANHOLE={type:3,value:"MANHOLE"},me.METERCHAMBER={type:3,value:"METERCHAMBER"},me.SUMP={type:3,value:"SUMP"},me.TRENCH={type:3,value:"TRENCH"},me.VALVECHAMBER={type:3,value:"VALVECHAMBER"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=me;class ve{}ve.CABLE={type:3,value:"CABLE"},ve.CABLECARRIER={type:3,value:"CABLECARRIER"},ve.DUCT={type:3,value:"DUCT"},ve.PIPE={type:3,value:"PIPE"},ve.WIRELESS={type:3,value:"WIRELESS"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ve;class we{}we.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},we.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},we.CATENARY_SYSTEM={type:3,value:"CATENARY_SYSTEM"},we.CHEMICAL={type:3,value:"CHEMICAL"},we.CHILLEDWATER={type:3,value:"CHILLEDWATER"},we.COMMUNICATION={type:3,value:"COMMUNICATION"},we.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},we.CONDENSERWATER={type:3,value:"CONDENSERWATER"},we.CONTROL={type:3,value:"CONTROL"},we.CONVEYING={type:3,value:"CONVEYING"},we.DATA={type:3,value:"DATA"},we.DISPOSAL={type:3,value:"DISPOSAL"},we.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},we.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},we.DRAINAGE={type:3,value:"DRAINAGE"},we.EARTHING={type:3,value:"EARTHING"},we.ELECTRICAL={type:3,value:"ELECTRICAL"},we.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},we.EXHAUST={type:3,value:"EXHAUST"},we.FIREPROTECTION={type:3,value:"FIREPROTECTION"},we.FIXEDTRANSMISSIONNETWORK={type:3,value:"FIXEDTRANSMISSIONNETWORK"},we.FUEL={type:3,value:"FUEL"},we.GAS={type:3,value:"GAS"},we.HAZARDOUS={type:3,value:"HAZARDOUS"},we.HEATING={type:3,value:"HEATING"},we.LIGHTING={type:3,value:"LIGHTING"},we.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},we.MOBILENETWORK={type:3,value:"MOBILENETWORK"},we.MONITORINGSYSTEM={type:3,value:"MONITORINGSYSTEM"},we.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},we.OIL={type:3,value:"OIL"},we.OPERATIONAL={type:3,value:"OPERATIONAL"},we.OPERATIONALTELEPHONYSYSTEM={type:3,value:"OPERATIONALTELEPHONYSYSTEM"},we.OVERHEAD_CONTACTLINE_SYSTEM={type:3,value:"OVERHEAD_CONTACTLINE_SYSTEM"},we.POWERGENERATION={type:3,value:"POWERGENERATION"},we.RAINWATER={type:3,value:"RAINWATER"},we.REFRIGERATION={type:3,value:"REFRIGERATION"},we.RETURN_CIRCUIT={type:3,value:"RETURN_CIRCUIT"},we.SECURITY={type:3,value:"SECURITY"},we.SEWAGE={type:3,value:"SEWAGE"},we.SIGNAL={type:3,value:"SIGNAL"},we.STORMWATER={type:3,value:"STORMWATER"},we.TELEPHONE={type:3,value:"TELEPHONE"},we.TV={type:3,value:"TV"},we.VACUUM={type:3,value:"VACUUM"},we.VENT={type:3,value:"VENT"},we.VENTILATION={type:3,value:"VENTILATION"},we.WASTEWATER={type:3,value:"WASTEWATER"},we.WATERSUPPLY={type:3,value:"WATERSUPPLY"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=we;class ge{}ge.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},ge.PERSONAL={type:3,value:"PERSONAL"},ge.PUBLIC={type:3,value:"PUBLIC"},ge.RESTRICTED={type:3,value:"RESTRICTED"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=ge;class Ee{}Ee.DRAFT={type:3,value:"DRAFT"},Ee.FINAL={type:3,value:"FINAL"},Ee.FINALDRAFT={type:3,value:"FINALDRAFT"},Ee.REVISION={type:3,value:"REVISION"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=Ee;class Te{}Te.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},Te.FIXEDPANEL={type:3,value:"FIXEDPANEL"},Te.FOLDING={type:3,value:"FOLDING"},Te.REVOLVING={type:3,value:"REVOLVING"},Te.ROLLINGUP={type:3,value:"ROLLINGUP"},Te.SLIDING={type:3,value:"SLIDING"},Te.SWINGING={type:3,value:"SWINGING"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=Te;class be{}be.LEFT={type:3,value:"LEFT"},be.MIDDLE={type:3,value:"MIDDLE"},be.RIGHT={type:3,value:"RIGHT"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=be;class De{}De.ALUMINIUM={type:3,value:"ALUMINIUM"},De.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},De.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},De.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},De.PLASTIC={type:3,value:"PLASTIC"},De.STEEL={type:3,value:"STEEL"},De.WOOD={type:3,value:"WOOD"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=De;class Pe{}Pe.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Pe.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Pe.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Pe.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Pe.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Pe.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Pe.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Pe.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Pe.REVOLVING={type:3,value:"REVOLVING"},Pe.ROLLINGUP={type:3,value:"ROLLINGUP"},Pe.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Pe.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Pe.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Pe.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Pe;class Re{}Re.BOOM_BARRIER={type:3,value:"BOOM_BARRIER"},Re.DOOR={type:3,value:"DOOR"},Re.GATE={type:3,value:"GATE"},Re.TRAPDOOR={type:3,value:"TRAPDOOR"},Re.TURNSTILE={type:3,value:"TURNSTILE"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=Re;class Ce{}Ce.DOUBLE_PANEL_DOUBLE_SWING={type:3,value:"DOUBLE_PANEL_DOUBLE_SWING"},Ce.DOUBLE_PANEL_FOLDING={type:3,value:"DOUBLE_PANEL_FOLDING"},Ce.DOUBLE_PANEL_LIFTING_VERTICAL={type:3,value:"DOUBLE_PANEL_LIFTING_VERTICAL"},Ce.DOUBLE_PANEL_SINGLE_SWING={type:3,value:"DOUBLE_PANEL_SINGLE_SWING"},Ce.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT"},Ce.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT"},Ce.DOUBLE_PANEL_SLIDING={type:3,value:"DOUBLE_PANEL_SLIDING"},Ce.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Ce.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Ce.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Ce.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Ce.LIFTING_HORIZONTAL={type:3,value:"LIFTING_HORIZONTAL"},Ce.LIFTING_VERTICAL_LEFT={type:3,value:"LIFTING_VERTICAL_LEFT"},Ce.LIFTING_VERTICAL_RIGHT={type:3,value:"LIFTING_VERTICAL_RIGHT"},Ce.REVOLVING_HORIZONTAL={type:3,value:"REVOLVING_HORIZONTAL"},Ce.REVOLVING_VERTICAL={type:3,value:"REVOLVING_VERTICAL"},Ce.ROLLINGUP={type:3,value:"ROLLINGUP"},Ce.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Ce.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Ce.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Ce.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Ce.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},Ce.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeOperationEnum=Ce;class _e{}_e.BEND={type:3,value:"BEND"},_e.CONNECTOR={type:3,value:"CONNECTOR"},_e.ENTRY={type:3,value:"ENTRY"},_e.EXIT={type:3,value:"EXIT"},_e.JUNCTION={type:3,value:"JUNCTION"},_e.OBSTRUCTION={type:3,value:"OBSTRUCTION"},_e.TRANSITION={type:3,value:"TRANSITION"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=_e;class Be{}Be.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Be.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Be;class Oe{}Oe.FLATOVAL={type:3,value:"FLATOVAL"},Oe.RECTANGULAR={type:3,value:"RECTANGULAR"},Oe.ROUND={type:3,value:"ROUND"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=Oe;class Se{}Se.BASE_EXCAVATION={type:3,value:"BASE_EXCAVATION"},Se.CUT={type:3,value:"CUT"},Se.DREDGING={type:3,value:"DREDGING"},Se.EXCAVATION={type:3,value:"EXCAVATION"},Se.OVEREXCAVATION={type:3,value:"OVEREXCAVATION"},Se.PAVEMENTMILLING={type:3,value:"PAVEMENTMILLING"},Se.STEPEXCAVATION={type:3,value:"STEPEXCAVATION"},Se.TOPSOILREMOVAL={type:3,value:"TOPSOILREMOVAL"},Se.TRENCH={type:3,value:"TRENCH"},Se.USERDEFINED={type:3,value:"USERDEFINED"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksCutTypeEnum=Se;class Ne{}Ne.BACKFILL={type:3,value:"BACKFILL"},Ne.COUNTERWEIGHT={type:3,value:"COUNTERWEIGHT"},Ne.EMBANKMENT={type:3,value:"EMBANKMENT"},Ne.SLOPEFILL={type:3,value:"SLOPEFILL"},Ne.SUBGRADE={type:3,value:"SUBGRADE"},Ne.SUBGRADEBED={type:3,value:"SUBGRADEBED"},Ne.TRANSITIONSECTION={type:3,value:"TRANSITIONSECTION"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksFillTypeEnum=Ne;class xe{}xe.DISHWASHER={type:3,value:"DISHWASHER"},xe.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},xe.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},xe.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},xe.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},xe.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},xe.FREEZER={type:3,value:"FREEZER"},xe.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},xe.HANDDRYER={type:3,value:"HANDDRYER"},xe.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},xe.MICROWAVE={type:3,value:"MICROWAVE"},xe.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},xe.REFRIGERATOR={type:3,value:"REFRIGERATOR"},xe.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},xe.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},xe.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=xe;class Le{}Le.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},Le.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},Le.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},Le.SWITCHBOARD={type:3,value:"SWITCHBOARD"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=Le;class Me{}Me.BATTERY={type:3,value:"BATTERY"},Me.CAPACITOR={type:3,value:"CAPACITOR"},Me.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Me.COMPENSATOR={type:3,value:"COMPENSATOR"},Me.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Me.INDUCTOR={type:3,value:"INDUCTOR"},Me.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Me.RECHARGER={type:3,value:"RECHARGER"},Me.UPS={type:3,value:"UPS"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=Me;class Fe{}Fe.ELECTRONICFILTER={type:3,value:"ELECTRONICFILTER"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowTreatmentDeviceTypeEnum=Fe;class He{}He.CHP={type:3,value:"CHP"},He.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},He.STANDALONE={type:3,value:"STANDALONE"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=He;class Ue{}Ue.DC={type:3,value:"DC"},Ue.INDUCTION={type:3,value:"INDUCTION"},Ue.POLYPHASE={type:3,value:"POLYPHASE"},Ue.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Ue.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=Ue;class Ge{}Ge.RELAY={type:3,value:"RELAY"},Ge.TIMECLOCK={type:3,value:"TIMECLOCK"},Ge.TIMEDELAY={type:3,value:"TIMEDELAY"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=Ge;class je{}je.ABUTMENT={type:3,value:"ABUTMENT"},je.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},je.ARCH={type:3,value:"ARCH"},je.BEAM_GRID={type:3,value:"BEAM_GRID"},je.BRACED_FRAME={type:3,value:"BRACED_FRAME"},je.CROSS_BRACING={type:3,value:"CROSS_BRACING"},je.DECK={type:3,value:"DECK"},je.DILATATIONPANEL={type:3,value:"DILATATIONPANEL"},je.ENTRANCEWORKS={type:3,value:"ENTRANCEWORKS"},je.GIRDER={type:3,value:"GIRDER"},je.GRID={type:3,value:"GRID"},je.MAST={type:3,value:"MAST"},je.PIER={type:3,value:"PIER"},je.PYLON={type:3,value:"PYLON"},je.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY={type:3,value:"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY"},je.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},je.RIGID_FRAME={type:3,value:"RIGID_FRAME"},je.SHELTER={type:3,value:"SHELTER"},je.SIGNALASSEMBLY={type:3,value:"SIGNALASSEMBLY"},je.SLAB_FIELD={type:3,value:"SLAB_FIELD"},je.SUMPBUSTER={type:3,value:"SUMPBUSTER"},je.SUPPORTINGASSEMBLY={type:3,value:"SUPPORTINGASSEMBLY"},je.SUSPENSIONASSEMBLY={type:3,value:"SUSPENSIONASSEMBLY"},je.TRACKPANEL={type:3,value:"TRACKPANEL"},je.TRACTION_SWITCHING_ASSEMBLY={type:3,value:"TRACTION_SWITCHING_ASSEMBLY"},je.TRAFFIC_CALMING_DEVICE={type:3,value:"TRAFFIC_CALMING_DEVICE"},je.TRUSS={type:3,value:"TRUSS"},je.TURNOUTPANEL={type:3,value:"TURNOUTPANEL"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=je;class Ve{}Ve.COMPLEX={type:3,value:"COMPLEX"},Ve.ELEMENT={type:3,value:"ELEMENT"},Ve.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=Ve;class ke{}ke.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},ke.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=ke;class Qe{}Qe.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Qe.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Qe.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Qe.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Qe.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Qe.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Qe.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Qe.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Qe.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Qe.USERDEFINED={type:3,value:"USERDEFINED"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Qe;class We{}We.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},We.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},We.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},We.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},We.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},We.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=We;class ze{}ze.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},ze.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},ze.EVENTRULE={type:3,value:"EVENTRULE"},ze.EVENTTIME={type:3,value:"EVENTTIME"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=ze;class Ke{}Ke.ENDEVENT={type:3,value:"ENDEVENT"},Ke.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Ke.STARTEVENT={type:3,value:"STARTEVENT"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Ke;class Ye{}Ye.EXTERNAL={type:3,value:"EXTERNAL"},Ye.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Ye.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Ye.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=Ye;class Xe{}Xe.ABOVEGROUND={type:3,value:"ABOVEGROUND"},Xe.BELOWGROUND={type:3,value:"BELOWGROUND"},Xe.JUNCTION={type:3,value:"JUNCTION"},Xe.LEVELCROSSING={type:3,value:"LEVELCROSSING"},Xe.SEGMENT={type:3,value:"SEGMENT"},Xe.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},Xe.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},Xe.TERMINAL={type:3,value:"TERMINAL"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityPartCommonTypeEnum=Xe;class qe{}qe.LATERAL={type:3,value:"LATERAL"},qe.LONGITUDINAL={type:3,value:"LONGITUDINAL"},qe.REGION={type:3,value:"REGION"},qe.VERTICAL={type:3,value:"VERTICAL"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityUsageEnum=qe;class Je{}Je.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},Je.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},Je.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},Je.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},Je.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},Je.TUBEAXIAL={type:3,value:"TUBEAXIAL"},Je.VANEAXIAL={type:3,value:"VANEAXIAL"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=Je;class Ze{}Ze.GLUE={type:3,value:"GLUE"},Ze.MORTAR={type:3,value:"MORTAR"},Ze.WELD={type:3,value:"WELD"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Ze;class $e{}$e.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},$e.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},$e.ODORFILTER={type:3,value:"ODORFILTER"},$e.OILFILTER={type:3,value:"OILFILTER"},$e.STRAINER={type:3,value:"STRAINER"},$e.WATERFILTER={type:3,value:"WATERFILTER"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=$e;class et{}et.BREECHINGINLET={type:3,value:"BREECHINGINLET"},et.FIREHYDRANT={type:3,value:"FIREHYDRANT"},et.FIREMONITOR={type:3,value:"FIREMONITOR"},et.HOSEREEL={type:3,value:"HOSEREEL"},et.SPRINKLER={type:3,value:"SPRINKLER"},et.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},et.USERDEFINED={type:3,value:"USERDEFINED"},et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=et;class tt{}tt.SINK={type:3,value:"SINK"},tt.SOURCE={type:3,value:"SOURCE"},tt.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=tt;class st{}st.AMMETER={type:3,value:"AMMETER"},st.COMBINED={type:3,value:"COMBINED"},st.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},st.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},st.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},st.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},st.THERMOMETER={type:3,value:"THERMOMETER"},st.VOLTMETER={type:3,value:"VOLTMETER"},st.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},st.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},st.USERDEFINED={type:3,value:"USERDEFINED"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=st;class nt{}nt.ENERGYMETER={type:3,value:"ENERGYMETER"},nt.GASMETER={type:3,value:"GASMETER"},nt.OILMETER={type:3,value:"OILMETER"},nt.WATERMETER={type:3,value:"WATERMETER"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=nt;class it{}it.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},it.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},it.PAD_FOOTING={type:3,value:"PAD_FOOTING"},it.PILE_CAP={type:3,value:"PILE_CAP"},it.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=it;class at{}at.BED={type:3,value:"BED"},at.CHAIR={type:3,value:"CHAIR"},at.DESK={type:3,value:"DESK"},at.FILECABINET={type:3,value:"FILECABINET"},at.SHELF={type:3,value:"SHELF"},at.SOFA={type:3,value:"SOFA"},at.TABLE={type:3,value:"TABLE"},at.TECHNICALCABINET={type:3,value:"TECHNICALCABINET"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=at;class rt{}rt.SOIL_BORING_POINT={type:3,value:"SOIL_BORING_POINT"},rt.TERRAIN={type:3,value:"TERRAIN"},rt.VEGETATION={type:3,value:"VEGETATION"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=rt;class lt{}lt.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},lt.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},lt.MODEL_VIEW={type:3,value:"MODEL_VIEW"},lt.PLAN_VIEW={type:3,value:"PLAN_VIEW"},lt.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},lt.SECTION_VIEW={type:3,value:"SECTION_VIEW"},lt.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=lt;class ot{}ot.SOLID={type:3,value:"SOLID"},ot.VOID={type:3,value:"VOID"},ot.WATER={type:3,value:"WATER"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeotechnicalStratumTypeEnum=ot;class ct{}ct.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ct.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ct;class ut{}ut.IRREGULAR={type:3,value:"IRREGULAR"},ut.RADIAL={type:3,value:"RADIAL"},ut.RECTANGULAR={type:3,value:"RECTANGULAR"},ut.TRIANGULAR={type:3,value:"TRIANGULAR"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=ut;class ht{}ht.PLATE={type:3,value:"PLATE"},ht.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},ht.TURNOUTHEATING={type:3,value:"TURNOUTHEATING"},ht.USERDEFINED={type:3,value:"USERDEFINED"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=ht;class pt{}pt.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},pt.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},pt.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},pt.ADIABATICPAN={type:3,value:"ADIABATICPAN"},pt.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},pt.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},pt.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},pt.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},pt.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},pt.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},pt.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},pt.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},pt.STEAMINJECTION={type:3,value:"STEAMINJECTION"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=pt;class At{}At.BUMPER={type:3,value:"BUMPER"},At.CRASHCUSHION={type:3,value:"CRASHCUSHION"},At.DAMPINGSYSTEM={type:3,value:"DAMPINGSYSTEM"},At.FENDER={type:3,value:"FENDER"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcImpactProtectionDeviceTypeEnum=At;class dt{}dt.CYCLONIC={type:3,value:"CYCLONIC"},dt.GREASE={type:3,value:"GREASE"},dt.OIL={type:3,value:"OIL"},dt.PETROL={type:3,value:"PETROL"},dt.USERDEFINED={type:3,value:"USERDEFINED"},dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInterceptorTypeEnum=dt;class ft{}ft.EXTERNAL={type:3,value:"EXTERNAL"},ft.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},ft.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},ft.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},ft.INTERNAL={type:3,value:"INTERNAL"},ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=ft;class It{}It.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},It.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},It.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=It;class yt{}yt.DATA={type:3,value:"DATA"},yt.POWER={type:3,value:"POWER"},yt.USERDEFINED={type:3,value:"USERDEFINED"},yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=yt;class mt{}mt.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},mt.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},mt.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},mt.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=mt;class vt{}vt.ADMINISTRATION={type:3,value:"ADMINISTRATION"},vt.CARPENTRY={type:3,value:"CARPENTRY"},vt.CLEANING={type:3,value:"CLEANING"},vt.CONCRETE={type:3,value:"CONCRETE"},vt.DRYWALL={type:3,value:"DRYWALL"},vt.ELECTRIC={type:3,value:"ELECTRIC"},vt.FINISHING={type:3,value:"FINISHING"},vt.FLOORING={type:3,value:"FLOORING"},vt.GENERAL={type:3,value:"GENERAL"},vt.HVAC={type:3,value:"HVAC"},vt.LANDSCAPING={type:3,value:"LANDSCAPING"},vt.MASONRY={type:3,value:"MASONRY"},vt.PAINTING={type:3,value:"PAINTING"},vt.PAVING={type:3,value:"PAVING"},vt.PLUMBING={type:3,value:"PLUMBING"},vt.ROOFING={type:3,value:"ROOFING"},vt.SITEGRADING={type:3,value:"SITEGRADING"},vt.STEELWORK={type:3,value:"STEELWORK"},vt.SURVEYING={type:3,value:"SURVEYING"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=vt;class wt{}wt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},wt.FLUORESCENT={type:3,value:"FLUORESCENT"},wt.HALOGEN={type:3,value:"HALOGEN"},wt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},wt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},wt.LED={type:3,value:"LED"},wt.METALHALIDE={type:3,value:"METALHALIDE"},wt.OLED={type:3,value:"OLED"},wt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=wt;class gt{}gt.AXIS1={type:3,value:"AXIS1"},gt.AXIS2={type:3,value:"AXIS2"},gt.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=gt;class Et{}Et.TYPE_A={type:3,value:"TYPE_A"},Et.TYPE_B={type:3,value:"TYPE_B"},Et.TYPE_C={type:3,value:"TYPE_C"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=Et;class Tt{}Tt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Tt.FLUORESCENT={type:3,value:"FLUORESCENT"},Tt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Tt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Tt.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},Tt.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},Tt.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},Tt.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},Tt.METALHALIDE={type:3,value:"METALHALIDE"},Tt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=Tt;class bt{}bt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},bt.POINTSOURCE={type:3,value:"POINTSOURCE"},bt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=bt;class Dt{}Dt.HOSEREEL={type:3,value:"HOSEREEL"},Dt.LOADINGARM={type:3,value:"LOADINGARM"},Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLiquidTerminalTypeEnum=Dt;class Pt{}Pt.LOAD_CASE={type:3,value:"LOAD_CASE"},Pt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Pt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Pt;class Rt{}Rt.LOGICALAND={type:3,value:"LOGICALAND"},Rt.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},Rt.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},Rt.LOGICALOR={type:3,value:"LOGICALOR"},Rt.LOGICALXOR={type:3,value:"LOGICALXOR"},e.IfcLogicalOperatorEnum=Rt;class Ct{}Ct.BARRIERBEACH={type:3,value:"BARRIERBEACH"},Ct.BREAKWATER={type:3,value:"BREAKWATER"},Ct.CANAL={type:3,value:"CANAL"},Ct.DRYDOCK={type:3,value:"DRYDOCK"},Ct.FLOATINGDOCK={type:3,value:"FLOATINGDOCK"},Ct.HYDROLIFT={type:3,value:"HYDROLIFT"},Ct.JETTY={type:3,value:"JETTY"},Ct.LAUNCHRECOVERY={type:3,value:"LAUNCHRECOVERY"},Ct.MARINEDEFENCE={type:3,value:"MARINEDEFENCE"},Ct.NAVIGATIONALCHANNEL={type:3,value:"NAVIGATIONALCHANNEL"},Ct.PORT={type:3,value:"PORT"},Ct.QUAY={type:3,value:"QUAY"},Ct.REVETMENT={type:3,value:"REVETMENT"},Ct.SHIPLIFT={type:3,value:"SHIPLIFT"},Ct.SHIPLOCK={type:3,value:"SHIPLOCK"},Ct.SHIPYARD={type:3,value:"SHIPYARD"},Ct.SLIPWAY={type:3,value:"SLIPWAY"},Ct.WATERWAY={type:3,value:"WATERWAY"},Ct.WATERWAYSHIPLIFT={type:3,value:"WATERWAYSHIPLIFT"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarineFacilityTypeEnum=Ct;class _t{}_t.ABOVEWATERLINE={type:3,value:"ABOVEWATERLINE"},_t.ANCHORAGE={type:3,value:"ANCHORAGE"},_t.APPROACHCHANNEL={type:3,value:"APPROACHCHANNEL"},_t.BELOWWATERLINE={type:3,value:"BELOWWATERLINE"},_t.BERTHINGSTRUCTURE={type:3,value:"BERTHINGSTRUCTURE"},_t.CHAMBER={type:3,value:"CHAMBER"},_t.CILL_LEVEL={type:3,value:"CILL_LEVEL"},_t.COPELEVEL={type:3,value:"COPELEVEL"},_t.CORE={type:3,value:"CORE"},_t.CREST={type:3,value:"CREST"},_t.GATEHEAD={type:3,value:"GATEHEAD"},_t.GUDINGSTRUCTURE={type:3,value:"GUDINGSTRUCTURE"},_t.HIGHWATERLINE={type:3,value:"HIGHWATERLINE"},_t.LANDFIELD={type:3,value:"LANDFIELD"},_t.LEEWARDSIDE={type:3,value:"LEEWARDSIDE"},_t.LOWWATERLINE={type:3,value:"LOWWATERLINE"},_t.MANUFACTURING={type:3,value:"MANUFACTURING"},_t.NAVIGATIONALAREA={type:3,value:"NAVIGATIONALAREA"},_t.PROTECTION={type:3,value:"PROTECTION"},_t.SHIPTRANSFER={type:3,value:"SHIPTRANSFER"},_t.STORAGEAREA={type:3,value:"STORAGEAREA"},_t.VEHICLESERVICING={type:3,value:"VEHICLESERVICING"},_t.WATERFIELD={type:3,value:"WATERFIELD"},_t.WEATHERSIDE={type:3,value:"WEATHERSIDE"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarinePartTypeEnum=_t;class Bt{}Bt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},Bt.BOLT={type:3,value:"BOLT"},Bt.CHAIN={type:3,value:"CHAIN"},Bt.COUPLER={type:3,value:"COUPLER"},Bt.DOWEL={type:3,value:"DOWEL"},Bt.NAIL={type:3,value:"NAIL"},Bt.NAILPLATE={type:3,value:"NAILPLATE"},Bt.RAILFASTENING={type:3,value:"RAILFASTENING"},Bt.RAILJOINT={type:3,value:"RAILJOINT"},Bt.RIVET={type:3,value:"RIVET"},Bt.ROPE={type:3,value:"ROPE"},Bt.SCREW={type:3,value:"SCREW"},Bt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},Bt.STAPLE={type:3,value:"STAPLE"},Bt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=Bt;class Ot{}Ot.AIRSTATION={type:3,value:"AIRSTATION"},Ot.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},Ot.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},Ot.OXYGENPLANT={type:3,value:"OXYGENPLANT"},Ot.VACUUMSTATION={type:3,value:"VACUUMSTATION"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=Ot;class St{}St.ARCH_SEGMENT={type:3,value:"ARCH_SEGMENT"},St.BRACE={type:3,value:"BRACE"},St.CHORD={type:3,value:"CHORD"},St.COLLAR={type:3,value:"COLLAR"},St.MEMBER={type:3,value:"MEMBER"},St.MULLION={type:3,value:"MULLION"},St.PLATE={type:3,value:"PLATE"},St.POST={type:3,value:"POST"},St.PURLIN={type:3,value:"PURLIN"},St.RAFTER={type:3,value:"RAFTER"},St.STAY_CABLE={type:3,value:"STAY_CABLE"},St.STIFFENING_RIB={type:3,value:"STIFFENING_RIB"},St.STRINGER={type:3,value:"STRINGER"},St.STRUCTURALCABLE={type:3,value:"STRUCTURALCABLE"},St.STRUT={type:3,value:"STRUT"},St.STUD={type:3,value:"STUD"},St.SUSPENDER={type:3,value:"SUSPENDER"},St.SUSPENSION_CABLE={type:3,value:"SUSPENSION_CABLE"},St.TIEBAR={type:3,value:"TIEBAR"},St.USERDEFINED={type:3,value:"USERDEFINED"},St.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=St;class Nt{}Nt.ACCESSPOINT={type:3,value:"ACCESSPOINT"},Nt.BASEBANDUNIT={type:3,value:"BASEBANDUNIT"},Nt.BASETRANSCEIVERSTATION={type:3,value:"BASETRANSCEIVERSTATION"},Nt.E_UTRAN_NODE_B={type:3,value:"E_UTRAN_NODE_B"},Nt.GATEWAY_GPRS_SUPPORT_NODE={type:3,value:"GATEWAY_GPRS_SUPPORT_NODE"},Nt.MASTERUNIT={type:3,value:"MASTERUNIT"},Nt.MOBILESWITCHINGCENTER={type:3,value:"MOBILESWITCHINGCENTER"},Nt.MSCSERVER={type:3,value:"MSCSERVER"},Nt.PACKETCONTROLUNIT={type:3,value:"PACKETCONTROLUNIT"},Nt.REMOTERADIOUNIT={type:3,value:"REMOTERADIOUNIT"},Nt.REMOTEUNIT={type:3,value:"REMOTEUNIT"},Nt.SERVICE_GPRS_SUPPORT_NODE={type:3,value:"SERVICE_GPRS_SUPPORT_NODE"},Nt.SUBSCRIBERSERVER={type:3,value:"SUBSCRIBERSERVER"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMobileTelecommunicationsApplianceTypeEnum=Nt;class xt{}xt.BOLLARD={type:3,value:"BOLLARD"},xt.LINETENSIONER={type:3,value:"LINETENSIONER"},xt.MAGNETICDEVICE={type:3,value:"MAGNETICDEVICE"},xt.MOORINGHOOKS={type:3,value:"MOORINGHOOKS"},xt.VACUUMDEVICE={type:3,value:"VACUUMDEVICE"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMooringDeviceTypeEnum=xt;class Lt{}Lt.BELTDRIVE={type:3,value:"BELTDRIVE"},Lt.COUPLING={type:3,value:"COUPLING"},Lt.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Lt;class Mt{}Mt.BEACON={type:3,value:"BEACON"},Mt.BUOY={type:3,value:"BUOY"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcNavigationElementTypeEnum=Mt;class Ft{}Ft.ACTOR={type:3,value:"ACTOR"},Ft.CONTROL={type:3,value:"CONTROL"},Ft.GROUP={type:3,value:"GROUP"},Ft.PROCESS={type:3,value:"PROCESS"},Ft.PRODUCT={type:3,value:"PRODUCT"},Ft.PROJECT={type:3,value:"PROJECT"},Ft.RESOURCE={type:3,value:"RESOURCE"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Ft;class Ht{}Ht.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ht.CODEWAIVER={type:3,value:"CODEWAIVER"},Ht.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ht.EXTERNAL={type:3,value:"EXTERNAL"},Ht.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ht.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ht.MODELVIEW={type:3,value:"MODELVIEW"},Ht.PARAMETER={type:3,value:"PARAMETER"},Ht.REQUIREMENT={type:3,value:"REQUIREMENT"},Ht.SPECIFICATION={type:3,value:"SPECIFICATION"},Ht.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ht;class Ut{}Ut.ASSIGNEE={type:3,value:"ASSIGNEE"},Ut.ASSIGNOR={type:3,value:"ASSIGNOR"},Ut.LESSEE={type:3,value:"LESSEE"},Ut.LESSOR={type:3,value:"LESSOR"},Ut.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ut.OWNER={type:3,value:"OWNER"},Ut.TENANT={type:3,value:"TENANT"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=Ut;class Gt{}Gt.OPENING={type:3,value:"OPENING"},Gt.RECESS={type:3,value:"RECESS"},Gt.USERDEFINED={type:3,value:"USERDEFINED"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOpeningElementTypeEnum=Gt;class jt{}jt.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},jt.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},jt.DATAOUTLET={type:3,value:"DATAOUTLET"},jt.POWEROUTLET={type:3,value:"POWEROUTLET"},jt.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=jt;class Vt{}Vt.FLEXIBLE={type:3,value:"FLEXIBLE"},Vt.RIGID={type:3,value:"RIGID"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPavementTypeEnum=Vt;class kt{}kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=kt;class Qt{}Qt.GRILL={type:3,value:"GRILL"},Qt.LOUVER={type:3,value:"LOUVER"},Qt.SCREEN={type:3,value:"SCREEN"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},Qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=Qt;class Wt{}Wt.ACCESS={type:3,value:"ACCESS"},Wt.BUILDING={type:3,value:"BUILDING"},Wt.WORK={type:3,value:"WORK"},Wt.USERDEFINED={type:3,value:"USERDEFINED"},Wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=Wt;class zt{}zt.PHYSICAL={type:3,value:"PHYSICAL"},zt.VIRTUAL={type:3,value:"VIRTUAL"},zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=zt;class Kt{}Kt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},Kt.COMPOSITE={type:3,value:"COMPOSITE"},Kt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},Kt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},Kt.USERDEFINED={type:3,value:"USERDEFINED"},Kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=Kt;class Yt{}Yt.BORED={type:3,value:"BORED"},Yt.COHESION={type:3,value:"COHESION"},Yt.DRIVEN={type:3,value:"DRIVEN"},Yt.FRICTION={type:3,value:"FRICTION"},Yt.JETGROUTING={type:3,value:"JETGROUTING"},Yt.SUPPORT={type:3,value:"SUPPORT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=Yt;class Xt{}Xt.BEND={type:3,value:"BEND"},Xt.CONNECTOR={type:3,value:"CONNECTOR"},Xt.ENTRY={type:3,value:"ENTRY"},Xt.EXIT={type:3,value:"EXIT"},Xt.JUNCTION={type:3,value:"JUNCTION"},Xt.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Xt.TRANSITION={type:3,value:"TRANSITION"},Xt.USERDEFINED={type:3,value:"USERDEFINED"},Xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Xt;class qt{}qt.CULVERT={type:3,value:"CULVERT"},qt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},qt.GUTTER={type:3,value:"GUTTER"},qt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},qt.SPOOL={type:3,value:"SPOOL"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=qt;class Jt{}Jt.BASE_PLATE={type:3,value:"BASE_PLATE"},Jt.COVER_PLATE={type:3,value:"COVER_PLATE"},Jt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Jt.FLANGE_PLATE={type:3,value:"FLANGE_PLATE"},Jt.GUSSET_PLATE={type:3,value:"GUSSET_PLATE"},Jt.SHEET={type:3,value:"SHEET"},Jt.SPLICE_PLATE={type:3,value:"SPLICE_PLATE"},Jt.STIFFENER_PLATE={type:3,value:"STIFFENER_PLATE"},Jt.WEB_PLATE={type:3,value:"WEB_PLATE"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Jt;class Zt{}Zt.CURVE3D={type:3,value:"CURVE3D"},Zt.PCURVE_S1={type:3,value:"PCURVE_S1"},Zt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Zt;class $t{}$t.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},$t.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},$t.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},$t.CALIBRATION={type:3,value:"CALIBRATION"},$t.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},$t.SHUTDOWN={type:3,value:"SHUTDOWN"},$t.STARTUP={type:3,value:"STARTUP"},$t.USERDEFINED={type:3,value:"USERDEFINED"},$t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=$t;class es{}es.AREA={type:3,value:"AREA"},es.CURVE={type:3,value:"CURVE"},e.IfcProfileTypeEnum=es;class ts{}ts.CHANGEORDER={type:3,value:"CHANGEORDER"},ts.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},ts.MOVEORDER={type:3,value:"MOVEORDER"},ts.PURCHASEORDER={type:3,value:"PURCHASEORDER"},ts.WORKORDER={type:3,value:"WORKORDER"},ts.USERDEFINED={type:3,value:"USERDEFINED"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=ts;class ss{}ss.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},ss.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=ss;class ns{}ns.BLISTER={type:3,value:"BLISTER"},ns.DEVIATOR={type:3,value:"DEVIATOR"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=ns;class is{}is.PSET_MATERIALDRIVEN={type:3,value:"PSET_MATERIALDRIVEN"},is.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},is.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},is.PSET_PROFILEDRIVEN={type:3,value:"PSET_PROFILEDRIVEN"},is.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},is.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},is.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},is.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},is.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=is;class as{}as.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},as.ELECTRONIC={type:3,value:"ELECTRONIC"},as.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},as.THERMAL={type:3,value:"THERMAL"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=as;class rs{}rs.ANTI_ARCING_DEVICE={type:3,value:"ANTI_ARCING_DEVICE"},rs.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},rs.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},rs.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},rs.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},rs.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},rs.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},rs.SPARKGAP={type:3,value:"SPARKGAP"},rs.VARISTOR={type:3,value:"VARISTOR"},rs.VOLTAGELIMITER={type:3,value:"VOLTAGELIMITER"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=rs;class ls{}ls.CIRCULATOR={type:3,value:"CIRCULATOR"},ls.ENDSUCTION={type:3,value:"ENDSUCTION"},ls.SPLITCASE={type:3,value:"SPLITCASE"},ls.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},ls.SUMPPUMP={type:3,value:"SUMPPUMP"},ls.VERTICALINLINE={type:3,value:"VERTICALINLINE"},ls.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=ls;class os{}os.BLADE={type:3,value:"BLADE"},os.CHECKRAIL={type:3,value:"CHECKRAIL"},os.GUARDRAIL={type:3,value:"GUARDRAIL"},os.RACKRAIL={type:3,value:"RACKRAIL"},os.RAIL={type:3,value:"RAIL"},os.STOCKRAIL={type:3,value:"STOCKRAIL"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailTypeEnum=os;class cs{}cs.BALUSTRADE={type:3,value:"BALUSTRADE"},cs.FENCE={type:3,value:"FENCE"},cs.GUARDRAIL={type:3,value:"GUARDRAIL"},cs.HANDRAIL={type:3,value:"HANDRAIL"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=cs;class us{}us.DILATATIONSUPERSTRUCTURE={type:3,value:"DILATATIONSUPERSTRUCTURE"},us.LINESIDESTRUCTURE={type:3,value:"LINESIDESTRUCTURE"},us.LINESIDESTRUCTUREPART={type:3,value:"LINESIDESTRUCTUREPART"},us.PLAINTRACKSUPERSTRUCTURE={type:3,value:"PLAINTRACKSUPERSTRUCTURE"},us.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},us.TRACKSTRUCTURE={type:3,value:"TRACKSTRUCTURE"},us.TRACKSTRUCTUREPART={type:3,value:"TRACKSTRUCTUREPART"},us.TURNOUTSUPERSTRUCTURE={type:3,value:"TURNOUTSUPERSTRUCTURE"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayPartTypeEnum=us;class hs{}hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayTypeEnum=hs;class ps{}ps.SPIRAL={type:3,value:"SPIRAL"},ps.STRAIGHT={type:3,value:"STRAIGHT"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=ps;class As{}As.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},As.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},As.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},As.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},As.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},As.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=As;class ds{}ds.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},ds.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},ds.DAILY={type:3,value:"DAILY"},ds.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},ds.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},ds.WEEKLY={type:3,value:"WEEKLY"},ds.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},ds.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=ds;class fs{}fs.BOUNDARY={type:3,value:"BOUNDARY"},fs.INTERSECTION={type:3,value:"INTERSECTION"},fs.KILOPOINT={type:3,value:"KILOPOINT"},fs.LANDMARK={type:3,value:"LANDMARK"},fs.MILEPOINT={type:3,value:"MILEPOINT"},fs.POSITION={type:3,value:"POSITION"},fs.REFERENCEMARKER={type:3,value:"REFERENCEMARKER"},fs.STATION={type:3,value:"STATION"},fs.USERDEFINED={type:3,value:"USERDEFINED"},fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReferentTypeEnum=fs;class Is{}Is.BLINN={type:3,value:"BLINN"},Is.FLAT={type:3,value:"FLAT"},Is.GLASS={type:3,value:"GLASS"},Is.MATT={type:3,value:"MATT"},Is.METAL={type:3,value:"METAL"},Is.MIRROR={type:3,value:"MIRROR"},Is.PHONG={type:3,value:"PHONG"},Is.PHYSICAL={type:3,value:"PHYSICAL"},Is.PLASTIC={type:3,value:"PLASTIC"},Is.STRAUSS={type:3,value:"STRAUSS"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Is;class ys{}ys.DYNAMICALLYCOMPACTED={type:3,value:"DYNAMICALLYCOMPACTED"},ys.GROUTED={type:3,value:"GROUTED"},ys.REPLACED={type:3,value:"REPLACED"},ys.ROLLERCOMPACTED={type:3,value:"ROLLERCOMPACTED"},ys.SURCHARGEPRELOADED={type:3,value:"SURCHARGEPRELOADED"},ys.VERTICALLYDRAINED={type:3,value:"VERTICALLYDRAINED"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcedSoilTypeEnum=ys;class ms{}ms.ANCHORING={type:3,value:"ANCHORING"},ms.EDGE={type:3,value:"EDGE"},ms.LIGATURE={type:3,value:"LIGATURE"},ms.MAIN={type:3,value:"MAIN"},ms.PUNCHING={type:3,value:"PUNCHING"},ms.RING={type:3,value:"RING"},ms.SHEAR={type:3,value:"SHEAR"},ms.STUD={type:3,value:"STUD"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=ms;class vs{}vs.PLAIN={type:3,value:"PLAIN"},vs.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=vs;class ws{}ws.ANCHORING={type:3,value:"ANCHORING"},ws.EDGE={type:3,value:"EDGE"},ws.LIGATURE={type:3,value:"LIGATURE"},ws.MAIN={type:3,value:"MAIN"},ws.PUNCHING={type:3,value:"PUNCHING"},ws.RING={type:3,value:"RING"},ws.SHEAR={type:3,value:"SHEAR"},ws.SPACEBAR={type:3,value:"SPACEBAR"},ws.STUD={type:3,value:"STUD"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=ws;class gs{}gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=gs;class Es{}Es.BICYCLECROSSING={type:3,value:"BICYCLECROSSING"},Es.BUS_STOP={type:3,value:"BUS_STOP"},Es.CARRIAGEWAY={type:3,value:"CARRIAGEWAY"},Es.CENTRALISLAND={type:3,value:"CENTRALISLAND"},Es.CENTRALRESERVE={type:3,value:"CENTRALRESERVE"},Es.HARDSHOULDER={type:3,value:"HARDSHOULDER"},Es.INTERSECTION={type:3,value:"INTERSECTION"},Es.LAYBY={type:3,value:"LAYBY"},Es.PARKINGBAY={type:3,value:"PARKINGBAY"},Es.PASSINGBAY={type:3,value:"PASSINGBAY"},Es.PEDESTRIAN_CROSSING={type:3,value:"PEDESTRIAN_CROSSING"},Es.RAILWAYCROSSING={type:3,value:"RAILWAYCROSSING"},Es.REFUGEISLAND={type:3,value:"REFUGEISLAND"},Es.ROADSEGMENT={type:3,value:"ROADSEGMENT"},Es.ROADSIDE={type:3,value:"ROADSIDE"},Es.ROADSIDEPART={type:3,value:"ROADSIDEPART"},Es.ROADWAYPLATEAU={type:3,value:"ROADWAYPLATEAU"},Es.ROUNDABOUT={type:3,value:"ROUNDABOUT"},Es.SHOULDER={type:3,value:"SHOULDER"},Es.SIDEWALK={type:3,value:"SIDEWALK"},Es.SOFTSHOULDER={type:3,value:"SOFTSHOULDER"},Es.TOLLPLAZA={type:3,value:"TOLLPLAZA"},Es.TRAFFICISLAND={type:3,value:"TRAFFICISLAND"},Es.TRAFFICLANE={type:3,value:"TRAFFICLANE"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadPartTypeEnum=Es;class Ts{}Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadTypeEnum=Ts;class bs{}bs.ARCHITECT={type:3,value:"ARCHITECT"},bs.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},bs.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},bs.CIVILENGINEER={type:3,value:"CIVILENGINEER"},bs.CLIENT={type:3,value:"CLIENT"},bs.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},bs.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},bs.CONSULTANT={type:3,value:"CONSULTANT"},bs.CONTRACTOR={type:3,value:"CONTRACTOR"},bs.COSTENGINEER={type:3,value:"COSTENGINEER"},bs.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},bs.ENGINEER={type:3,value:"ENGINEER"},bs.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},bs.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},bs.MANUFACTURER={type:3,value:"MANUFACTURER"},bs.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},bs.OWNER={type:3,value:"OWNER"},bs.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},bs.RESELLER={type:3,value:"RESELLER"},bs.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},bs.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},bs.SUPPLIER={type:3,value:"SUPPLIER"},bs.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=bs;class Ds{}Ds.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Ds.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Ds.DOME_ROOF={type:3,value:"DOME_ROOF"},Ds.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Ds.FREEFORM={type:3,value:"FREEFORM"},Ds.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Ds.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Ds.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Ds.HIP_ROOF={type:3,value:"HIP_ROOF"},Ds.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Ds.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Ds.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Ds.SHED_ROOF={type:3,value:"SHED_ROOF"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=Ds;class Ps{}Ps.ATTO={type:3,value:"ATTO"},Ps.CENTI={type:3,value:"CENTI"},Ps.DECA={type:3,value:"DECA"},Ps.DECI={type:3,value:"DECI"},Ps.EXA={type:3,value:"EXA"},Ps.FEMTO={type:3,value:"FEMTO"},Ps.GIGA={type:3,value:"GIGA"},Ps.HECTO={type:3,value:"HECTO"},Ps.KILO={type:3,value:"KILO"},Ps.MEGA={type:3,value:"MEGA"},Ps.MICRO={type:3,value:"MICRO"},Ps.MILLI={type:3,value:"MILLI"},Ps.NANO={type:3,value:"NANO"},Ps.PETA={type:3,value:"PETA"},Ps.PICO={type:3,value:"PICO"},Ps.TERA={type:3,value:"TERA"},e.IfcSIPrefix=Ps;class Rs{}Rs.AMPERE={type:3,value:"AMPERE"},Rs.BECQUEREL={type:3,value:"BECQUEREL"},Rs.CANDELA={type:3,value:"CANDELA"},Rs.COULOMB={type:3,value:"COULOMB"},Rs.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Rs.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Rs.FARAD={type:3,value:"FARAD"},Rs.GRAM={type:3,value:"GRAM"},Rs.GRAY={type:3,value:"GRAY"},Rs.HENRY={type:3,value:"HENRY"},Rs.HERTZ={type:3,value:"HERTZ"},Rs.JOULE={type:3,value:"JOULE"},Rs.KELVIN={type:3,value:"KELVIN"},Rs.LUMEN={type:3,value:"LUMEN"},Rs.LUX={type:3,value:"LUX"},Rs.METRE={type:3,value:"METRE"},Rs.MOLE={type:3,value:"MOLE"},Rs.NEWTON={type:3,value:"NEWTON"},Rs.OHM={type:3,value:"OHM"},Rs.PASCAL={type:3,value:"PASCAL"},Rs.RADIAN={type:3,value:"RADIAN"},Rs.SECOND={type:3,value:"SECOND"},Rs.SIEMENS={type:3,value:"SIEMENS"},Rs.SIEVERT={type:3,value:"SIEVERT"},Rs.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Rs.STERADIAN={type:3,value:"STERADIAN"},Rs.TESLA={type:3,value:"TESLA"},Rs.VOLT={type:3,value:"VOLT"},Rs.WATT={type:3,value:"WATT"},Rs.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Rs;class Cs{}Cs.BATH={type:3,value:"BATH"},Cs.BIDET={type:3,value:"BIDET"},Cs.CISTERN={type:3,value:"CISTERN"},Cs.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Cs.SHOWER={type:3,value:"SHOWER"},Cs.SINK={type:3,value:"SINK"},Cs.TOILETPAN={type:3,value:"TOILETPAN"},Cs.URINAL={type:3,value:"URINAL"},Cs.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Cs.WCSEAT={type:3,value:"WCSEAT"},Cs.USERDEFINED={type:3,value:"USERDEFINED"},Cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=Cs;class _s{}_s.TAPERED={type:3,value:"TAPERED"},_s.UNIFORM={type:3,value:"UNIFORM"},e.IfcSectionTypeEnum=_s;class Bs{}Bs.CO2SENSOR={type:3,value:"CO2SENSOR"},Bs.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Bs.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Bs.COSENSOR={type:3,value:"COSENSOR"},Bs.EARTHQUAKESENSOR={type:3,value:"EARTHQUAKESENSOR"},Bs.FIRESENSOR={type:3,value:"FIRESENSOR"},Bs.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Bs.FOREIGNOBJECTDETECTIONSENSOR={type:3,value:"FOREIGNOBJECTDETECTIONSENSOR"},Bs.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Bs.GASSENSOR={type:3,value:"GASSENSOR"},Bs.HEATSENSOR={type:3,value:"HEATSENSOR"},Bs.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Bs.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Bs.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Bs.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Bs.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Bs.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Bs.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Bs.OBSTACLESENSOR={type:3,value:"OBSTACLESENSOR"},Bs.PHSENSOR={type:3,value:"PHSENSOR"},Bs.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Bs.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Bs.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Bs.RAINSENSOR={type:3,value:"RAINSENSOR"},Bs.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Bs.SNOWDEPTHSENSOR={type:3,value:"SNOWDEPTHSENSOR"},Bs.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Bs.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Bs.TRAINSENSOR={type:3,value:"TRAINSENSOR"},Bs.TURNOUTCLOSURESENSOR={type:3,value:"TURNOUTCLOSURESENSOR"},Bs.WHEELSENSOR={type:3,value:"WHEELSENSOR"},Bs.WINDSENSOR={type:3,value:"WINDSENSOR"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},Bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Bs;class Os{}Os.FINISH_FINISH={type:3,value:"FINISH_FINISH"},Os.FINISH_START={type:3,value:"FINISH_START"},Os.START_FINISH={type:3,value:"START_FINISH"},Os.START_START={type:3,value:"START_START"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=Os;class Ss{}Ss.AWNING={type:3,value:"AWNING"},Ss.JALOUSIE={type:3,value:"JALOUSIE"},Ss.SHUTTER={type:3,value:"SHUTTER"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Ss;class Ns{}Ns.MARKER={type:3,value:"MARKER"},Ns.MIRROR={type:3,value:"MIRROR"},Ns.PICTORAL={type:3,value:"PICTORAL"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignTypeEnum=Ns;class xs{}xs.AUDIO={type:3,value:"AUDIO"},xs.MIXED={type:3,value:"MIXED"},xs.VISUAL={type:3,value:"VISUAL"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignalTypeEnum=xs;class Ls{}Ls.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},Ls.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},Ls.P_LISTVALUE={type:3,value:"P_LISTVALUE"},Ls.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},Ls.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},Ls.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},Ls.Q_AREA={type:3,value:"Q_AREA"},Ls.Q_COUNT={type:3,value:"Q_COUNT"},Ls.Q_LENGTH={type:3,value:"Q_LENGTH"},Ls.Q_NUMBER={type:3,value:"Q_NUMBER"},Ls.Q_TIME={type:3,value:"Q_TIME"},Ls.Q_VOLUME={type:3,value:"Q_VOLUME"},Ls.Q_WEIGHT={type:3,value:"Q_WEIGHT"},e.IfcSimplePropertyTemplateTypeEnum=Ls;class Ms{}Ms.APPROACH_SLAB={type:3,value:"APPROACH_SLAB"},Ms.BASESLAB={type:3,value:"BASESLAB"},Ms.FLOOR={type:3,value:"FLOOR"},Ms.LANDING={type:3,value:"LANDING"},Ms.PAVING={type:3,value:"PAVING"},Ms.ROOF={type:3,value:"ROOF"},Ms.SIDEWALK={type:3,value:"SIDEWALK"},Ms.TRACKSLAB={type:3,value:"TRACKSLAB"},Ms.WEARING={type:3,value:"WEARING"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Ms;class Fs{}Fs.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},Fs.SOLARPANEL={type:3,value:"SOLARPANEL"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=Fs;class Hs{}Hs.CONVECTOR={type:3,value:"CONVECTOR"},Hs.RADIATOR={type:3,value:"RADIATOR"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Hs;class Us{}Us.BERTH={type:3,value:"BERTH"},Us.EXTERNAL={type:3,value:"EXTERNAL"},Us.GFA={type:3,value:"GFA"},Us.INTERNAL={type:3,value:"INTERNAL"},Us.PARKING={type:3,value:"PARKING"},Us.SPACE={type:3,value:"SPACE"},Us.USERDEFINED={type:3,value:"USERDEFINED"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Us;class Gs{}Gs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},Gs.FIRESAFETY={type:3,value:"FIRESAFETY"},Gs.INTERFERENCE={type:3,value:"INTERFERENCE"},Gs.LIGHTING={type:3,value:"LIGHTING"},Gs.OCCUPANCY={type:3,value:"OCCUPANCY"},Gs.RESERVATION={type:3,value:"RESERVATION"},Gs.SECURITY={type:3,value:"SECURITY"},Gs.THERMAL={type:3,value:"THERMAL"},Gs.TRANSPORT={type:3,value:"TRANSPORT"},Gs.VENTILATION={type:3,value:"VENTILATION"},Gs.USERDEFINED={type:3,value:"USERDEFINED"},Gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=Gs;class js{}js.BIRDCAGE={type:3,value:"BIRDCAGE"},js.COWL={type:3,value:"COWL"},js.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=js;class Vs{}Vs.CURVED={type:3,value:"CURVED"},Vs.FREEFORM={type:3,value:"FREEFORM"},Vs.SPIRAL={type:3,value:"SPIRAL"},Vs.STRAIGHT={type:3,value:"STRAIGHT"},Vs.WINDER={type:3,value:"WINDER"},Vs.USERDEFINED={type:3,value:"USERDEFINED"},Vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Vs;class ks{}ks.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},ks.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},ks.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},ks.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},ks.LADDER={type:3,value:"LADDER"},ks.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},ks.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},ks.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},ks.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},ks.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},ks.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},ks.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},ks.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},ks.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},ks.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=ks;class Qs{}Qs.LOCKED={type:3,value:"LOCKED"},Qs.READONLY={type:3,value:"READONLY"},Qs.READONLYLOCKED={type:3,value:"READONLYLOCKED"},Qs.READWRITE={type:3,value:"READWRITE"},Qs.READWRITELOCKED={type:3,value:"READWRITELOCKED"},e.IfcStateEnum=Qs;class Ws{}Ws.CONST={type:3,value:"CONST"},Ws.DISCRETE={type:3,value:"DISCRETE"},Ws.EQUIDISTANT={type:3,value:"EQUIDISTANT"},Ws.LINEAR={type:3,value:"LINEAR"},Ws.PARABOLA={type:3,value:"PARABOLA"},Ws.POLYGONAL={type:3,value:"POLYGONAL"},Ws.SINUS={type:3,value:"SINUS"},Ws.USERDEFINED={type:3,value:"USERDEFINED"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=Ws;class zs{}zs.CABLE={type:3,value:"CABLE"},zs.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},zs.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},zs.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},zs.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=zs;class Ks{}Ks.BILINEAR={type:3,value:"BILINEAR"},Ks.CONST={type:3,value:"CONST"},Ks.DISCRETE={type:3,value:"DISCRETE"},Ks.ISOCONTOUR={type:3,value:"ISOCONTOUR"},Ks.USERDEFINED={type:3,value:"USERDEFINED"},Ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=Ks;class Ys{}Ys.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Ys.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Ys.SHELL={type:3,value:"SHELL"},Ys.USERDEFINED={type:3,value:"USERDEFINED"},Ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=Ys;class Xs{}Xs.PURCHASE={type:3,value:"PURCHASE"},Xs.WORK={type:3,value:"WORK"},Xs.USERDEFINED={type:3,value:"USERDEFINED"},Xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=Xs;class qs{}qs.DEFECT={type:3,value:"DEFECT"},qs.HATCHMARKING={type:3,value:"HATCHMARKING"},qs.LINEMARKING={type:3,value:"LINEMARKING"},qs.MARK={type:3,value:"MARK"},qs.NONSKIDSURFACING={type:3,value:"NONSKIDSURFACING"},qs.PAVEMENTSURFACEMARKING={type:3,value:"PAVEMENTSURFACEMARKING"},qs.RUMBLESTRIP={type:3,value:"RUMBLESTRIP"},qs.SYMBOLMARKING={type:3,value:"SYMBOLMARKING"},qs.TAG={type:3,value:"TAG"},qs.TRANSVERSERUMBLESTRIP={type:3,value:"TRANSVERSERUMBLESTRIP"},qs.TREATMENT={type:3,value:"TREATMENT"},qs.USERDEFINED={type:3,value:"USERDEFINED"},qs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=qs;class Js{}Js.BOTH={type:3,value:"BOTH"},Js.NEGATIVE={type:3,value:"NEGATIVE"},Js.POSITIVE={type:3,value:"POSITIVE"},e.IfcSurfaceSide=Js;class Zs{}Zs.CONTACTOR={type:3,value:"CONTACTOR"},Zs.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Zs.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Zs.KEYPAD={type:3,value:"KEYPAD"},Zs.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Zs.RELAY={type:3,value:"RELAY"},Zs.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Zs.STARTER={type:3,value:"STARTER"},Zs.START_AND_STOP_EQUIPMENT={type:3,value:"START_AND_STOP_EQUIPMENT"},Zs.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Zs.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Zs.USERDEFINED={type:3,value:"USERDEFINED"},Zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Zs;class $s{}$s.PANEL={type:3,value:"PANEL"},$s.SUBRACK={type:3,value:"SUBRACK"},$s.WORKSURFACE={type:3,value:"WORKSURFACE"},$s.USERDEFINED={type:3,value:"USERDEFINED"},$s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSystemFurnitureElementTypeEnum=$s;class en{}en.BASIN={type:3,value:"BASIN"},en.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},en.EXPANSION={type:3,value:"EXPANSION"},en.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},en.OILRETENTIONTRAY={type:3,value:"OILRETENTIONTRAY"},en.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},en.STORAGE={type:3,value:"STORAGE"},en.VESSEL={type:3,value:"VESSEL"},en.USERDEFINED={type:3,value:"USERDEFINED"},en.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=en;class tn{}tn.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},tn.WORKTIME={type:3,value:"WORKTIME"},tn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=tn;class sn{}sn.ADJUSTMENT={type:3,value:"ADJUSTMENT"},sn.ATTENDANCE={type:3,value:"ATTENDANCE"},sn.CALIBRATION={type:3,value:"CALIBRATION"},sn.CONSTRUCTION={type:3,value:"CONSTRUCTION"},sn.DEMOLITION={type:3,value:"DEMOLITION"},sn.DISMANTLE={type:3,value:"DISMANTLE"},sn.DISPOSAL={type:3,value:"DISPOSAL"},sn.EMERGENCY={type:3,value:"EMERGENCY"},sn.INSPECTION={type:3,value:"INSPECTION"},sn.INSTALLATION={type:3,value:"INSTALLATION"},sn.LOGISTIC={type:3,value:"LOGISTIC"},sn.MAINTENANCE={type:3,value:"MAINTENANCE"},sn.MOVE={type:3,value:"MOVE"},sn.OPERATION={type:3,value:"OPERATION"},sn.REMOVAL={type:3,value:"REMOVAL"},sn.RENOVATION={type:3,value:"RENOVATION"},sn.SAFETY={type:3,value:"SAFETY"},sn.SHUTDOWN={type:3,value:"SHUTDOWN"},sn.STARTUP={type:3,value:"STARTUP"},sn.TESTING={type:3,value:"TESTING"},sn.TROUBLESHOOTING={type:3,value:"TROUBLESHOOTING"},sn.USERDEFINED={type:3,value:"USERDEFINED"},sn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=sn;class nn{}nn.COUPLER={type:3,value:"COUPLER"},nn.FIXED_END={type:3,value:"FIXED_END"},nn.TENSIONING_END={type:3,value:"TENSIONING_END"},nn.USERDEFINED={type:3,value:"USERDEFINED"},nn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=nn;class an{}an.COUPLER={type:3,value:"COUPLER"},an.DIABOLO={type:3,value:"DIABOLO"},an.DUCT={type:3,value:"DUCT"},an.GROUTING_DUCT={type:3,value:"GROUTING_DUCT"},an.TRUMPET={type:3,value:"TRUMPET"},an.USERDEFINED={type:3,value:"USERDEFINED"},an.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonConduitTypeEnum=an;class rn{}rn.BAR={type:3,value:"BAR"},rn.COATED={type:3,value:"COATED"},rn.STRAND={type:3,value:"STRAND"},rn.WIRE={type:3,value:"WIRE"},rn.USERDEFINED={type:3,value:"USERDEFINED"},rn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=rn;class ln{}ln.DOWN={type:3,value:"DOWN"},ln.LEFT={type:3,value:"LEFT"},ln.RIGHT={type:3,value:"RIGHT"},ln.UP={type:3,value:"UP"},e.IfcTextPath=ln;class on{}on.CONTINUOUS={type:3,value:"CONTINUOUS"},on.DISCRETE={type:3,value:"DISCRETE"},on.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},on.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},on.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},on.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},on.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=on;class cn{}cn.BLOCKINGDEVICE={type:3,value:"BLOCKINGDEVICE"},cn.DERAILER={type:3,value:"DERAILER"},cn.FROG={type:3,value:"FROG"},cn.HALF_SET_OF_BLADES={type:3,value:"HALF_SET_OF_BLADES"},cn.SLEEPER={type:3,value:"SLEEPER"},cn.SPEEDREGULATOR={type:3,value:"SPEEDREGULATOR"},cn.TRACKENDOFALIGNMENT={type:3,value:"TRACKENDOFALIGNMENT"},cn.VEHICLESTOP={type:3,value:"VEHICLESTOP"},cn.USERDEFINED={type:3,value:"USERDEFINED"},cn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTrackElementTypeEnum=cn;class un{}un.CHOPPER={type:3,value:"CHOPPER"},un.COMBINED={type:3,value:"COMBINED"},un.CURRENT={type:3,value:"CURRENT"},un.FREQUENCY={type:3,value:"FREQUENCY"},un.INVERTER={type:3,value:"INVERTER"},un.RECTIFIER={type:3,value:"RECTIFIER"},un.VOLTAGE={type:3,value:"VOLTAGE"},un.USERDEFINED={type:3,value:"USERDEFINED"},un.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=un;class hn{}hn.CONTINUOUS={type:3,value:"CONTINUOUS"},hn.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},hn.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},hn.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},e.IfcTransitionCode=hn;class pn{}pn.CRANEWAY={type:3,value:"CRANEWAY"},pn.ELEVATOR={type:3,value:"ELEVATOR"},pn.ESCALATOR={type:3,value:"ESCALATOR"},pn.HAULINGGEAR={type:3,value:"HAULINGGEAR"},pn.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},pn.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},pn.USERDEFINED={type:3,value:"USERDEFINED"},pn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=pn;class An{}An.CARTESIAN={type:3,value:"CARTESIAN"},An.PARAMETER={type:3,value:"PARAMETER"},An.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=An;class dn{}dn.FINNED={type:3,value:"FINNED"},dn.USERDEFINED={type:3,value:"USERDEFINED"},dn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=dn;class fn{}fn.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},fn.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},fn.AREAUNIT={type:3,value:"AREAUNIT"},fn.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},fn.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},fn.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},fn.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},fn.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},fn.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},fn.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},fn.ENERGYUNIT={type:3,value:"ENERGYUNIT"},fn.FORCEUNIT={type:3,value:"FORCEUNIT"},fn.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},fn.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},fn.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},fn.LENGTHUNIT={type:3,value:"LENGTHUNIT"},fn.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},fn.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},fn.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},fn.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},fn.MASSUNIT={type:3,value:"MASSUNIT"},fn.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},fn.POWERUNIT={type:3,value:"POWERUNIT"},fn.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},fn.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},fn.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},fn.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},fn.TIMEUNIT={type:3,value:"TIMEUNIT"},fn.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},fn.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=fn;class In{}In.ALARMPANEL={type:3,value:"ALARMPANEL"},In.BASESTATIONCONTROLLER={type:3,value:"BASESTATIONCONTROLLER"},In.COMBINED={type:3,value:"COMBINED"},In.CONTROLPANEL={type:3,value:"CONTROLPANEL"},In.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},In.HUMIDISTAT={type:3,value:"HUMIDISTAT"},In.INDICATORPANEL={type:3,value:"INDICATORPANEL"},In.MIMICPANEL={type:3,value:"MIMICPANEL"},In.THERMOSTAT={type:3,value:"THERMOSTAT"},In.WEATHERSTATION={type:3,value:"WEATHERSTATION"},In.USERDEFINED={type:3,value:"USERDEFINED"},In.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=In;class yn{}yn.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},yn.AIRHANDLER={type:3,value:"AIRHANDLER"},yn.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},yn.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},yn.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},yn.USERDEFINED={type:3,value:"USERDEFINED"},yn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=yn;class mn{}mn.AIRRELEASE={type:3,value:"AIRRELEASE"},mn.ANTIVACUUM={type:3,value:"ANTIVACUUM"},mn.CHANGEOVER={type:3,value:"CHANGEOVER"},mn.CHECK={type:3,value:"CHECK"},mn.COMMISSIONING={type:3,value:"COMMISSIONING"},mn.DIVERTING={type:3,value:"DIVERTING"},mn.DOUBLECHECK={type:3,value:"DOUBLECHECK"},mn.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},mn.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},mn.FAUCET={type:3,value:"FAUCET"},mn.FLUSHING={type:3,value:"FLUSHING"},mn.GASCOCK={type:3,value:"GASCOCK"},mn.GASTAP={type:3,value:"GASTAP"},mn.ISOLATING={type:3,value:"ISOLATING"},mn.MIXING={type:3,value:"MIXING"},mn.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},mn.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},mn.REGULATING={type:3,value:"REGULATING"},mn.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},mn.STEAMTRAP={type:3,value:"STEAMTRAP"},mn.STOPCOCK={type:3,value:"STOPCOCK"},mn.USERDEFINED={type:3,value:"USERDEFINED"},mn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=mn;class vn{}vn.CARGO={type:3,value:"CARGO"},vn.ROLLINGSTOCK={type:3,value:"ROLLINGSTOCK"},vn.VEHICLE={type:3,value:"VEHICLE"},vn.VEHICLEAIR={type:3,value:"VEHICLEAIR"},vn.VEHICLEMARINE={type:3,value:"VEHICLEMARINE"},vn.VEHICLETRACKED={type:3,value:"VEHICLETRACKED"},vn.VEHICLEWHEELED={type:3,value:"VEHICLEWHEELED"},vn.USERDEFINED={type:3,value:"USERDEFINED"},vn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVehicleTypeEnum=vn;class wn{}wn.AXIAL_YIELD={type:3,value:"AXIAL_YIELD"},wn.BENDING_YIELD={type:3,value:"BENDING_YIELD"},wn.FRICTION={type:3,value:"FRICTION"},wn.RUBBER={type:3,value:"RUBBER"},wn.SHEAR_YIELD={type:3,value:"SHEAR_YIELD"},wn.VISCOUS={type:3,value:"VISCOUS"},wn.USERDEFINED={type:3,value:"USERDEFINED"},wn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationDamperTypeEnum=wn;class gn{}gn.BASE={type:3,value:"BASE"},gn.COMPRESSION={type:3,value:"COMPRESSION"},gn.SPRING={type:3,value:"SPRING"},gn.USERDEFINED={type:3,value:"USERDEFINED"},gn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=gn;class En{}En.BOUNDARY={type:3,value:"BOUNDARY"},En.CLEARANCE={type:3,value:"CLEARANCE"},En.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},En.USERDEFINED={type:3,value:"USERDEFINED"},En.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVirtualElementTypeEnum=En;class Tn{}Tn.CHAMFER={type:3,value:"CHAMFER"},Tn.CUTOUT={type:3,value:"CUTOUT"},Tn.EDGE={type:3,value:"EDGE"},Tn.HOLE={type:3,value:"HOLE"},Tn.MITER={type:3,value:"MITER"},Tn.NOTCH={type:3,value:"NOTCH"},Tn.USERDEFINED={type:3,value:"USERDEFINED"},Tn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Tn;class bn{}bn.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},bn.MOVABLE={type:3,value:"MOVABLE"},bn.PARAPET={type:3,value:"PARAPET"},bn.PARTITIONING={type:3,value:"PARTITIONING"},bn.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},bn.POLYGONAL={type:3,value:"POLYGONAL"},bn.RETAININGWALL={type:3,value:"RETAININGWALL"},bn.SHEAR={type:3,value:"SHEAR"},bn.SOLIDWALL={type:3,value:"SOLIDWALL"},bn.STANDARD={type:3,value:"STANDARD"},bn.WAVEWALL={type:3,value:"WAVEWALL"},bn.USERDEFINED={type:3,value:"USERDEFINED"},bn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=bn;class Dn{}Dn.FLOORTRAP={type:3,value:"FLOORTRAP"},Dn.FLOORWASTE={type:3,value:"FLOORWASTE"},Dn.GULLYSUMP={type:3,value:"GULLYSUMP"},Dn.GULLYTRAP={type:3,value:"GULLYTRAP"},Dn.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Dn.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Dn.WASTETRAP={type:3,value:"WASTETRAP"},Dn.USERDEFINED={type:3,value:"USERDEFINED"},Dn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Dn;class Pn{}Pn.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Pn.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Pn.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Pn.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Pn.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Pn.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Pn.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Pn.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Pn.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Pn.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Pn.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Pn.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Pn.TOPHUNG={type:3,value:"TOPHUNG"},Pn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Pn;class Rn{}Rn.BOTTOM={type:3,value:"BOTTOM"},Rn.LEFT={type:3,value:"LEFT"},Rn.MIDDLE={type:3,value:"MIDDLE"},Rn.RIGHT={type:3,value:"RIGHT"},Rn.TOP={type:3,value:"TOP"},Rn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Rn;class Cn{}Cn.ALUMINIUM={type:3,value:"ALUMINIUM"},Cn.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Cn.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Cn.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Cn.PLASTIC={type:3,value:"PLASTIC"},Cn.STEEL={type:3,value:"STEEL"},Cn.WOOD={type:3,value:"WOOD"},Cn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Cn;class _n{}_n.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},_n.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},_n.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},_n.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},_n.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},_n.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},_n.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},_n.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},_n.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},_n.USERDEFINED={type:3,value:"USERDEFINED"},_n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=_n;class Bn{}Bn.LIGHTDOME={type:3,value:"LIGHTDOME"},Bn.SKYLIGHT={type:3,value:"SKYLIGHT"},Bn.WINDOW={type:3,value:"WINDOW"},Bn.USERDEFINED={type:3,value:"USERDEFINED"},Bn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Bn;class On{}On.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},On.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},On.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},On.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},On.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},On.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},On.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},On.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},On.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},On.USERDEFINED={type:3,value:"USERDEFINED"},On.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=On;class Sn{}Sn.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},Sn.SECONDSHIFT={type:3,value:"SECONDSHIFT"},Sn.THIRDSHIFT={type:3,value:"THIRDSHIFT"},Sn.USERDEFINED={type:3,value:"USERDEFINED"},Sn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=Sn;class Nn{}Nn.ACTUAL={type:3,value:"ACTUAL"},Nn.BASELINE={type:3,value:"BASELINE"},Nn.PLANNED={type:3,value:"PLANNED"},Nn.USERDEFINED={type:3,value:"USERDEFINED"},Nn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Nn;class xn{}xn.ACTUAL={type:3,value:"ACTUAL"},xn.BASELINE={type:3,value:"BASELINE"},xn.PLANNED={type:3,value:"PLANNED"},xn.USERDEFINED={type:3,value:"USERDEFINED"},xn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=xn;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class Ln extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=Ln;class Mn extends Kb{constructor(e,t,s){super(e),this.StartTag=t,this.EndTag=s,this.type=2879124712}}e.IfcAlignmentParameterSegment=Mn;e.IfcAlignmentVerticalSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=n,this.HorizontalLength=i,this.StartHeight=a,this.StartGradient=r,this.EndGradient=l,this.RadiusOfCurvature=o,this.PredefinedType=c,this.type=3633395639}};e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class Fn extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=411424972}}e.IfcAppliedValue=Fn;e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.TimeOfApproval=i,this.Status=a,this.Level=r,this.Qualifier=l,this.RequestingApproval=o,this.GivingApproval=c,this.type=130549933}};class Hn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Hn;e.IfcBoundaryEdgeCondition=class extends Hn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Hn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=i,this.type=3367102660}};class Un extends Hn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=Un;e.IfcBoundaryNodeConditionWarping=class extends Un{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};class Gn extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Gn;class jn extends Gn{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=jn;e.IfcConnectionSurfaceGeometry=class extends Gn{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Gn{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class Vn extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=Vn;class kn extends Kb{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=kn;class Qn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.type=1466758467}}e.IfcCoordinateReferenceSystem=Qn;e.IfcCostValue=class extends Fn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=602808272}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.Name=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};class Wn extends Kb{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=Wn;class zn extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.Identification=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=zn;e.IfcExternallyDefinedHatchStyle=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Wn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.Location=a,this.Description=r,this.type=2655187982}};e.IfcLibraryReference=class extends zn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.Language=a,this.ReferencedLibrary=r,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends kn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=n,this.Northings=i,this.OrthogonalHeight=a,this.XAxisAbscissa=r,this.XAxisOrdinate=l,this.Scale=o,this.ScaleY=c,this.ScaleZ=u,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class Kn extends Kb{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=Kn;class Yn extends Kn{constructor(e,t,s,n,i,a,r,l){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.type=248100487}}e.IfcMaterialLayer=Yn;e.IfcMaterialLayerSet=class extends Kn{constructor(e,t,s,n){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=n,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends Yn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.OffsetDirection=o,this.OffsetValues=c,this.type=1847252529}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class Xn extends Kn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.type=2235152071}}e.IfcMaterialProfile=Xn;e.IfcMaterialProfileSet=class extends Kn{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=n,this.CompositeProfile=i,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends Xn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.OffsetValues=l,this.type=552965576}};class qn extends Kb{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=qn;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.ReferencePath=h,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Jn extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Jn;class Zn extends Kb{constructor(e,t){super(e),this.PlacementRelTo=t,this.type=3701648758}}e.IfcObjectPlacement=Zn;e.IfcObjective=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.LogicalAggregator=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class $n extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=$n;class ei extends $n{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=ei;e.IfcPostalAddress=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class ti extends Kb{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=ti;class si extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=si;e.IfcPresentationLayerWithStyle=class extends si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class ni extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=ni;class ii extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=ii;class ai extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=ai;e.IfcProjectedCRS=class extends Qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.MapProjection=a,this.MapZone=r,this.MapUnit=l,this.type=3843373140}};class ri extends Kb{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=ri;e.IfcPropertyEnumeration=class extends ri{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.Formula=a,this.type=2044713172}};e.IfcQuantityCount=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.Formula=a,this.type=2093928680}};e.IfcQuantityLength=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.Formula=a,this.type=931644368}};e.IfcQuantityNumber=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.NumberValue=i,this.Formula=a,this.type=2691318326}};e.IfcQuantityTime=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.Formula=a,this.type=3252649465}};e.IfcQuantityVolume=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.Formula=a,this.type=2405470396}};e.IfcQuantityWeight=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.Formula=a,this.type=825690147}};e.IfcRecurrencePattern=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=n,this.MonthComponent=i,this.Position=a,this.Interval=r,this.Occurrences=l,this.TimePeriods=o,this.type=3915482550}};e.IfcReference=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=n,this.ListPositions=i,this.InnerReference=a,this.type=2433181523}};class li extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=li;class oi extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=oi;class ci extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=ci;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class ui extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=ui;class hi extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=hi;e.IfcSIUnit=class extends Jn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Prefix=n,this.Name=i,this.type=448429030}};class pi extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.type=1054537805}}e.IfcSchedulingTime=pi;e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Ai extends li{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Ai;e.IfcShapeRepresentation=class extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class di extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=di;class fi extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=fi;e.IfcStructuralLoadConfiguration=class extends fi{constructor(e,t,s,n){super(e,t),this.Name=t,this.Values=s,this.Locations=n,this.type=3478079324}};class Ii extends fi{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Ii;class yi extends Ii{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=yi;e.IfcStructuralLoadTemperature=class extends yi{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=n,this.DeltaTZ=i,this.type=3408363356}};class mi extends li{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=mi;e.IfcStyledItem=class extends ci{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}};e.IfcStyledRepresentation=class extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Ii{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=n,this.ShearReinforcement=i,this.type=2934153892}};e.IfcSurfaceStyle=class extends ni{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends ti{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends ti{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class vi extends ti{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=vi;e.IfcSurfaceStyleWithTextures=class extends ti{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class wi extends ti{constructor(e,t,s,n,i,a){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.type=626085974}}e.IfcSurfaceTexture=wi;e.IfcTable=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Rows=s,this.Columns=n,this.type=985171141}};e.IfcTableColumn=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.Unit=i,this.ReferencePath=a,this.type=2043862942}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class gi extends pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.type=1549132990}}e.IfcTaskTime=gi;e.IfcTaskTimeRecurring=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.Recurrence=g,this.type=2771591690}};e.IfcTelecomAddress=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.MessagingIDs=c,this.type=912023232}};e.IfcTextStyle=class extends ni{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.ModelOrDraughting=a,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends ti{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends ti{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};class Ei extends ti{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=Ei;e.IfcTextureCoordinateGenerator=class extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=n,this.type=1742049831}};class Ti extends Kb{constructor(e,t,s){super(e),this.TexCoordIndex=t,this.TexCoordsOf=s,this.type=222769930}}e.IfcTextureCoordinateIndices=Ti;e.IfcTextureCoordinateIndicesWithVoids=class extends Ti{constructor(e,t,s,n){super(e,t,s),this.TexCoordIndex=t,this.TexCoordsOf=s,this.InnerTexCoordIndices=n,this.type=1010789467}};e.IfcTextureMap=class extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=n,this.type=2552916305}};e.IfcTextureVertex=class extends ti{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends ti{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends Kb{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class bi extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=bi;e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Di extends ci{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Di;e.IfcTopologyRepresentation=class extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Pi extends Di{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Pi;e.IfcVertexPoint=class extends Pi{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends pi{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.RecurrencePattern=i,this.StartDate=a,this.FinishDate=r,this.type=1236880293}};e.IfcAlignmentCantSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=n,this.HorizontalLength=i,this.StartCantLeft=a,this.EndCantLeft=r,this.StartCantRight=l,this.EndCantRight=o,this.PredefinedType=c,this.type=3752311538}};e.IfcAlignmentHorizontalSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartPoint=n,this.StartDirection=i,this.StartRadiusOfCurvature=a,this.EndRadiusOfCurvature=r,this.SegmentLength=l,this.GravityCenterLineHeight=o,this.PredefinedType=c,this.type=536804194}};e.IfcApprovalRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=n,this.RelatedApprovals=i,this.type=3869604511}};class Ri extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ri;class Ci extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Ci;e.IfcArbitraryProfileDefWithVoids=class extends Ri{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends wi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.RasterFormat=r,this.RasterCode=l,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Ci{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassification=class extends Wn{constructor(e,t,s,n,i,a,r,l){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.Description=a,this.Specification=r,this.ReferenceTokens=l,this.type=747523909}};e.IfcClassificationReference=class extends zn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.ReferencedSource=i,this.Description=a,this.Sort=r,this.type=647927063}};e.IfcColourRgbList=class extends ti{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class _i extends ti{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=_i;e.IfcCompositeProfileDef=class extends ai{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class Bi extends Di{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Bi;e.IfcConnectionCurveGeometry=class extends Gn{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends jn{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends Jn{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};class Oi extends Jn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}}e.IfcConversionBasedUnit=Oi;e.IfcConversionBasedUnitWithOffset=class extends Oi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.ConversionOffset=a,this.type=2713554722}};e.IfcCurrencyRelationship=class extends ui{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=i,this.ExchangeRate=a,this.RateDateTime=r,this.RateSource=l,this.type=539742890}};e.IfcCurveStyle=class extends ni{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.ModelOrDraughting=a,this.type=3800577675}};e.IfcCurveStyleFont=class extends ti{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends ti{constructor(e,t,s,n){super(e),this.Name=t,this.CurveStyleFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends ti{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class Si extends ai{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}}e.IfcDerivedProfileDef=Si;e.IfcDocumentInformation=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Location=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=n,this.RelatedDocuments=i,this.RelationshipType=a,this.type=770865208}};e.IfcDocumentReference=class extends zn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.ReferencedDocument=a,this.type=3732053477}};class Ni extends Di{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Ni;e.IfcEdgeCurve=class extends Ni{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcEventTime=class extends pi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ActualDate=i,this.EarlyDate=a,this.LateDate=r,this.ScheduleDate=l,this.type=211053100}};class xi extends ri{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Properties=n,this.type=297599258}}e.IfcExtendedProperties=xi;e.IfcExternalReferenceRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=n,this.RelatedResourceObjects=i,this.type=1437805879}};class Li extends Di{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Li;class Mi extends Di{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Mi;e.IfcFaceOuterBound=class extends Mi{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Fi extends Li{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}}e.IfcFaceSurface=Fi;e.IfcFailureConnectionCondition=class extends di{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends ni{constructor(e,t,s,n){super(e,t),this.Name=t,this.FillStyles=s,this.ModelOrDraughting=n,this.type=738692330}};class Hi extends oi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=Hi;class Ui extends ci{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Ui;e.IfcGeometricRepresentationSubContext=class extends Hi{constructor(e,s,n,i,a,r,l,o){super(e,s,n,new t(0),null,i,null),this.ContextIdentifier=s,this.ContextType=n,this.WorldCoordinateSystem=i,this.ParentContext=a,this.TargetScale=r,this.TargetView=l,this.UserDefinedTargetView=o,this.type=4142052618}};class Gi extends Ui{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Gi;e.IfcGridPlacement=class extends Zn{constructor(e,t,s,n){super(e,t),this.PlacementRelTo=t,this.PlacementLocation=s,this.PlacementRefDirection=n,this.type=178086475}};class ji extends Ui{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=ji;e.IfcImageTexture=class extends wi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.URLReference=r,this.type=3905492369}};e.IfcIndexedColourMap=class extends ti{constructor(e,t,s,n,i){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=n,this.ColourIndex=i,this.type=3570813810}};class Vi extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.type=1437953363}}e.IfcIndexedTextureMap=Vi;e.IfcIndexedTriangleTextureMap=class extends Vi{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndex=i,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};e.IfcLagTime=class extends pi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.LagValue=i,this.DurationType=a,this.type=1585845231}};class ki extends Ui{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=ki;e.IfcLightSourceAmbient=class extends ki{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends ki{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class Qi extends ki{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=Qi;e.IfcLightSourceSpot=class extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLinearPlacement=class extends Zn{constructor(e,t,s,n){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.CartesianPosition=n,this.type=388784114}};e.IfcLocalPlacement=class extends Zn{constructor(e,t,s){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class Wi extends Di{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=Wi;e.IfcMappedItem=class extends ci{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends Kn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Category=n,this.type=1838606355}};e.IfcMaterialConstituent=class extends Kn{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.Material=n,this.Fraction=i,this.Category=a,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends Kn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=n,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends ii{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends qn{constructor(e,t,s,n,i,a){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.ReferenceExtent=a,this.type=1303795690}};class zi extends qn{constructor(e,t,s,n){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.type=3079605661}}e.IfcMaterialProfileSetUsage=zi;e.IfcMaterialProfileSetUsageTapering=class extends zi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.ForProfileEndSet=i,this.CardinalEndPoint=a,this.type=3404854881}};e.IfcMaterialProperties=class extends xi{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.Material=i,this.type=3265635763}};e.IfcMaterialRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=n,this.RelatedMaterials=i,this.MaterialExpression=a,this.type=853536259}};e.IfcMirroredProfileDef=class extends Si{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=2998442950}};class Ki extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=Ki;e.IfcOpenCrossProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.HorizontalWidths=n,this.Widths=i,this.Slopes=a,this.Tags=r,this.OffsetPoint=l,this.type=182550632}};e.IfcOpenShell=class extends Bi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOrientedEdge=class extends Ni{constructor(e,t,s,n){super(e,t,new zb(0)),this.EdgeStart=t,this.EdgeElement=s,this.Orientation=n,this.type=1029017970}};class Yi extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=Yi;e.IfcPath=class extends Di{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends $n{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.Width=r,this.Height=l,this.ColourComponents=o,this.Pixel=c,this.type=597895409}};class Xi extends Ui{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=Xi;class qi extends Ui{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=qi;class Ji extends Ui{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=Ji;e.IfcPointByDistanceExpression=class extends Ji{constructor(e,t,s,n,i,a){super(e),this.DistanceAlong=t,this.OffsetLateral=s,this.OffsetVertical=n,this.OffsetLongitudinal=i,this.BasisCurve=a,this.type=2165702409}};e.IfcPointOnCurve=class extends Ji{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends Ji{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends Wi{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends ji{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class Zi extends ti{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=Zi;class $i extends ri{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=$i;class ea extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=ea;e.IfcProductDefinitionShape=class extends ii{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcProfileProperties=class extends xi{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.ProfileDefinition=i,this.type=2802850158}};class ta extends ri{constructor(e,t,s){super(e),this.Name=t,this.Specification=s,this.type=2598011224}}e.IfcProperty=ta;class sa extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=sa;e.IfcPropertyDependencyRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=n,this.DependantProperty=i,this.Expression=a,this.type=148025276}};class na extends sa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=na;class ia extends sa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1482703590}}e.IfcPropertyTemplateDefinition=ia;class aa extends na{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2090586900}}e.IfcQuantitySet=aa;class ra extends Yi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=ra;e.IfcRegularTimeSeries=class extends bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends $i{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};class la extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=la;e.IfcResourceApprovalRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=n,this.RelatingApproval=i,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedResourceObjects=i,this.type=1608871552}};e.IfcResourceTime=class extends pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ScheduleWork=i,this.ScheduleUsage=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.ScheduleContour=o,this.LevelingDelay=c,this.IsOverAllocated=u,this.StatusTime=h,this.ActualWork=p,this.ActualUsage=A,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=I,this.RemainingUsage=y,this.Completion=m,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionProperties=class extends $i{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends $i{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcSectionedSpine=class extends Ui{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};class oa extends Ui{constructor(e,t){super(e),this.Transition=t,this.type=823603102}}e.IfcSegment=oa;e.IfcShellBasedSurfaceModel=class extends Ui{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class ca extends ta{constructor(e,t,s){super(e,t,s),this.Name=t,this.Specification=s,this.type=3692461612}}e.IfcSimpleProperty=ca;e.IfcSlippageConnectionCondition=class extends di{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class ua extends Ui{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=ua;e.IfcStructuralLoadLinearForce=class extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends yi{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class ha extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=ha;e.IfcStructuralLoadSingleDisplacementDistortion=class extends ha{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class pa extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=pa;e.IfcStructuralLoadSingleForceWarping=class extends pa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};e.IfcSubedge=class extends Ni{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Aa extends Ui{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Aa;e.IfcSurfaceStyleRendering=class extends vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class da extends ua{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=da;class fa extends ua{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}}e.IfcSweptDiskSolid=fa;e.IfcSweptDiskSolidPolygonal=class extends fa{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.FilletRadius=r,this.type=1096409881}};class Ia extends Aa{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Ia;e.IfcTShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.type=3071757647}};class ya extends Ui{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=ya;class ma extends Ui{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=ma;e.IfcTextLiteralWithExtent=class extends ma{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTextStyleFontModel=class extends ea{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};class va extends Ki{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=va;class wa extends va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.type=3736923433}}e.IfcTypeProcess=wa;class ga extends va{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=ga;class Ea extends va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.type=3698973494}}e.IfcTypeResource=Ea;e.IfcUShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.type=427810014}};e.IfcVector=class extends Ui{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends Wi{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcZShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};e.IfcAdvancedFace=class extends Fi{constructor(e,t,s,n){super(e,t,s,n),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Ui{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomFlangeWidth=i,this.OverallDepth=a,this.WebThickness=r,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.BottomFlangeEdgeRadius=p,this.BottomFlangeSlope=A,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends Xi{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends Xi{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends Xi{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};e.IfcAxis2PlacementLinear=class extends Xi{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=3425423356}};class Ta extends Ui{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Ta;class ba extends Aa{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=ba;e.IfcBoundingBox=class extends Ui{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends ji{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.type=2898889636}};e.IfcCartesianPoint=class extends Ji{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Da extends Ui{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Da;e.IfcCartesianPointList2D=class extends Da{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Da{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=2059837836}};class Pa extends Ui{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Pa;class Ra extends Pa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Ra;e.IfcCartesianTransformationOperator2DnonUniform=class extends Ra{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Ca extends Pa{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Ca;e.IfcCartesianTransformationOperator3DnonUniform=class extends Ca{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class _a extends Yi{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=_a;e.IfcClosedShell=class extends Bi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends _i{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends ta{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};class Ba extends oa{constructor(e,t,s,n){super(e,t),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}}e.IfcCompositeCurveSegment=Ba;class Oa extends Ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.type=2574617495}}e.IfcConstructionResourceType=Oa;class Sa extends Ki{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=3419103109}}e.IfcContext=Sa;e.IfcCrewResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1815067380}};class Na extends Ui{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Na;e.IfcCsgSolid=class extends ua{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class xa extends Ui{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=xa;e.IfcCurveBoundedPlane=class extends ba{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends ba{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=n,this.type=2629017746}};e.IfcCurveSegment=class extends oa{constructor(e,t,s,n,i,a){super(e,t),this.Transition=t,this.Placement=s,this.SegmentStart=n,this.SegmentLength=i,this.ParentCurve=a,this.type=4212018352}};e.IfcDirection=class extends Ui{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};class La extends da{constructor(e,t,s,n,i,a){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.type=593015953}}e.IfcDirectrixCurveSweptAreaSolid=La;e.IfcEdgeLoop=class extends Wi{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends aa{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Ma extends ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Ma;class Fa extends Aa{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Fa;e.IfcEllipseProfileDef=class extends Yi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};e.IfcEventType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.EventTriggerType=h,this.UserDefinedEventTriggerType=p,this.type=4024345920}};class Ha extends da{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}}e.IfcExtrudedAreaSolid=Ha;e.IfcExtrudedAreaSolidTapered=class extends Ha{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.EndSweptArea=a,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Ui{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Ui{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Ui{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};class Ua extends La{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=Ua;class Ga extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Ga;e.IfcFurnitureType=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.PredefinedType=h,this.type=1268542332}};e.IfcGeographicElementType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Gi{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.FlangeSlope=u,this.type=1484403080}};class ja extends ya{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=ja;e.IfcIndexedPolygonalFaceWithVoids=class extends ja{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcIndexedPolygonalTextureMap=class extends Vi{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndices=i,this.type=3465909080}};e.IfcLShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.type=572779678}};e.IfcLaborResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=428585644}};e.IfcLine=class extends xa{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Va extends ua{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Va;class ka extends Ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=ka;class Qa extends xa{constructor(e,t){super(e),this.BasisCurve=t,this.type=590820931}}e.IfcOffsetCurve=Qa;e.IfcOffsetCurve2D=class extends Qa{constructor(e,t,s,n){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qa{constructor(e,t,s,n,i){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcOffsetCurveByDistances=class extends Qa{constructor(e,t,s,n){super(e,t),this.BasisCurve=t,this.OffsetValues=s,this.Tag=n,this.type=2485787929}};e.IfcPcurve=class extends xa{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends qi{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends Fa{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};e.IfcPolynomialCurve=class extends xa{constructor(e,t,s,n,i){super(e),this.Position=t,this.CoefficientsX=s,this.CoefficientsY=n,this.CoefficientsZ=i,this.type=3381221214}};class Wa extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Wa;class za extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=za;class Ka extends na{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3967405729}}e.IfcPreDefinedPropertySet=Ka;e.IfcProcedureType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.type=569719735}};class Ya extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2945172077}}e.IfcProcess=Ya;class Xa extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=Xa;e.IfcProject=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectLibrary=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=653396225}};e.IfcPropertyBoundedValue=class extends ca{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Specification=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.SetPointValue=r,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};e.IfcPropertySet=class extends na{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcPropertySetTemplate=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.ApplicableEntity=r,this.HasPropertyTemplates=l,this.type=492091185}};e.IfcPropertySingleValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends ca{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.Name=t,this.Specification=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.CurveInterpolation=o,this.type=110355661}};class qa extends ia{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3521284610}}e.IfcPropertyTemplate=qa;e.IfcRectangleHollowProfileDef=class extends ra{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends Na{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends ba{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends Ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class Ja extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=Ja;e.IfcRelAssignsToActor=class extends Ja{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}};e.IfcRelAssignsToControl=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}};class Za extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}}e.IfcRelAssignsToGroup=Za;e.IfcRelAssignsToGroupByFactor=class extends Za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.Factor=o,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends Ja{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToResource=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class $a extends la{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=$a;e.IfcRelAssociatesApproval=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $a{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};e.IfcRelAssociatesProfileDef=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingProfileDef=r,this.type=1033248425}};class er extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=er;class tr extends er{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=tr;e.IfcRelConnectsPathElements=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends er{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};class sr extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sr;e.IfcRelConnectsWithEccentricity=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedCoverings=r,this.type=2802773753}};e.IfcRelDeclares=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingContext=a,this.RelatedDefinitions=r,this.type=2565941209}};class nr extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2551354335}}e.IfcRelDecomposes=nr;class ir extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=693640335}}e.IfcRelDefines=ir;e.IfcRelDefinesByObject=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingObject=r,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedPropertySets=a,this.RelatingTemplate=r,this.type=307848117}};e.IfcRelDefinesByType=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInterferesElements=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedElement=r,this.InterferenceGeometry=l,this.InterferenceSpace=o,this.InterferenceType=c,this.ImpliedOrder=u,this.type=427948657}};e.IfcRelNests=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelPositions=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPositioningElement=a,this.RelatedProducts=r,this.type=1441486842}};e.IfcRelProjectsElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSequence=class extends er{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.UserDefinedSequenceType=c,this.type=4122056220}};e.IfcRelServicesBuildings=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};class ar extends er{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}}e.IfcRelSpaceBoundary=ar;class rr extends ar{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=rr;e.IfcRelSpaceBoundary2ndLevel=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.CorrespondingBoundary=h,this.type=1521410863}};e.IfcRelVoidsElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Ba{constructor(e,t,s,n,i){super(e,t,s,n),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.ParamLength=i,this.type=816062949}};class lr extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2914609552}}e.IfcResource=lr;class or extends da{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}}e.IfcRevolvedAreaSolid=or;e.IfcRevolvedAreaSolidTapered=class extends or{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.EndSweptArea=a,this.type=3243963512}};e.IfcRightCircularCone=class extends Na{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Na{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};class cr extends ua{constructor(e,t,s){super(e),this.Directrix=t,this.CrossSections=s,this.type=1862484736}}e.IfcSectionedSolid=cr;e.IfcSectionedSolidHorizontal=class extends cr{constructor(e,t,s,n){super(e,t,s),this.Directrix=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1290935644}};e.IfcSectionedSurface=class extends Aa{constructor(e,t,s,n){super(e),this.Directrix=t,this.CrossSectionPositions=s,this.CrossSections=n,this.type=1356537516}};e.IfcSimplePropertyTemplate=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.PrimaryMeasureType=r,this.SecondaryMeasureType=l,this.Enumerators=o,this.PrimaryUnit=c,this.SecondaryUnit=u,this.Expression=h,this.AccessState=p,this.type=3663146110}};class ur extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=1412071761}}e.IfcSpatialElement=ur;class hr extends ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=710998568}}e.IfcSpatialElementType=hr;class pr extends ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=pr;class Ar extends hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=Ar;e.IfcSpatialZone=class extends ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=463610769}};e.IfcSpatialZoneType=class extends hr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=2481509218}};e.IfcSphere=class extends Na{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Fa{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class dr extends xa{constructor(e,t){super(e),this.Position=t,this.type=2735484536}}e.IfcSpiral=dr;class fr extends Xa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=fr;class Ir extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=Ir;class yr extends Ir{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=yr;class mr extends fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=mr;class vr extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=vr;e.IfcStructuralSurfaceMemberVarying=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=603775116}};e.IfcSubContractResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4095615324}};class wr extends xa{constructor(e,t,s,n){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=699246055}}e.IfcSurfaceCurve=wr;e.IfcSurfaceCurveSweptAreaSolid=class extends La{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Ia{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Ia{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1580310250}};e.IfcTask=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Status=o,this.WorkMethod=c,this.IsMilestone=u,this.Priority=h,this.TaskTime=p,this.PredefinedType=A,this.type=3473067441}};e.IfcTaskType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.WorkMethod=h,this.type=3206491090}};class gr extends ya{constructor(e,t,s){super(e),this.Coordinates=t,this.Closed=s,this.type=2387106220}}e.IfcTessellatedFaceSet=gr;e.IfcThirdOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i,a){super(e,t),this.Position=t,this.CubicTerm=s,this.QuadraticTerm=n,this.LinearTerm=i,this.ConstantTerm=a,this.type=782932809}};e.IfcToroidalSurface=class extends Fa{constructor(e,t,s,n){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=n,this.type=1935646853}};class Er extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3665877780}}e.IfcTransportationDeviceType=Er;class Tr extends gr{constructor(e,t,s,n,i,a){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Normals=n,this.CoordIndex=i,this.PnIndex=a,this.type=2916149573}}e.IfcTriangulatedFaceSet=Tr;e.IfcTriangulatedIrregularNetwork=class extends Tr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Coordinates=t,this.Closed=s,this.Normals=n,this.CoordIndex=i,this.PnIndex=a,this.Flags=r,this.type=1229763772}};e.IfcVehicleType=class extends Er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3651464721}};e.IfcWindowLiningProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=I,this.type=336235671}};e.IfcWindowPanelProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};class br extends ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=br;class Dr extends Va{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Dr;e.IfcAdvancedBrepWithVoids=class extends Dr{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=1674181508}};class Pr extends ba{constructor(e,t,s,n,i,a,r,l){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.type=2887950389}}e.IfcBSplineSurface=Pr;class Rr extends Pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Rr;e.IfcBlock=class extends Na{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Ta{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class Cr extends xa{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Cr;e.IfcBuildingStorey=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};class _r extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1626504194}}e.IfcBuiltElementType=_r;e.IfcChimneyType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends _a{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcCivilElementType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893394355}};e.IfcClothoid=class extends dr{constructor(e,t,s){super(e,t),this.Position=t,this.ClothoidConstant=s,this.type=3497074424}};e.IfcColumnType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends qa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.UsageName=a,this.TemplateType=r,this.HasPropertyTemplates=l,this.type=3875453745}};class Br extends Cr{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Br;class Or extends Br{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Or;class Sr extends xa{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=Sr;e.IfcConstructionEquipmentResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1525564444}};class Nr extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.type=2559216714}}e.IfcConstructionResource=Nr;class xr extends ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.type=3293443760}}e.IfcControl=xr;e.IfcCosineSpiral=class extends dr{constructor(e,t,s,n){super(e,t),this.Position=t,this.CosineTerm=s,this.ConstantTerm=n,this.type=2000195564}};e.IfcCostItem=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.CostValues=o,this.CostQuantities=c,this.type=3895139033}};e.IfcCostSchedule=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.SubmittedOn=c,this.UpdateDate=u,this.type=1419761937}};e.IfcCourseType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4189326743}};e.IfcCoveringType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3295246426}};e.IfcCurtainWallType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};e.IfcCylindricalSurface=class extends Fa{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Lr extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1306400036}}e.IfcDeepFoundationType=Lr;e.IfcDirectrixDerivedReferenceSweptAreaSolid=class extends Ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=4234616927}};class Mr extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=Mr;class Fr extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Fr;e.IfcDoorLiningProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=I,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.OperationType=h,this.ParameterTakesPrecedence=p,this.UserDefinedOperationType=A,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Wa{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends za{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Hr extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Hr;e.IfcElementAssembly=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};e.IfcElementAssemblyType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2397081782}};class Ur extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=Ur;class Gr extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Gr;e.IfcEllipse=class extends Sr{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class jr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=jr;e.IfcEngineType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcEvent=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.EventTriggerType=c,this.UserDefinedEventTriggerType=u,this.EventOccurenceTime=h,this.type=4148101412}};class Vr extends ur{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Vr;class kr extends Va{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=kr;e.IfcFacetedBrepWithVoids=class extends kr{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Qr extends pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=24185140}}e.IfcFacility=Qr;class Wr extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.type=1310830890}}e.IfcFacilityPart=Wr;e.IfcFacilityPartCommon=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=4228831410}};e.IfcFastener=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=647756555}};e.IfcFastenerType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2489546625}};class zr extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=zr;class Kr extends zr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Kr;class Yr extends zr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=Yr;class Xr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Xr;class qr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=qr;e.IfcFlowMeterType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Jr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Jr;class Zr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Zr;class $r extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=$r;class el extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=el;class tl extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tl;e.IfcFootingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1893162501}};class sl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}}e.IfcFurnishingElement=sl;e.IfcFurniture=class extends sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1509553395}};e.IfcGeographicElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3493046030}};class nl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4230923436}}e.IfcGeotechnicalElement=nl;e.IfcGeotechnicalStratum=class extends nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1594536857}};e.IfcGradientCurve=class extends Br{constructor(e,t,s,n,i){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=n,this.EndPoint=i,this.type=2898700619}};class il extends ka{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=il;e.IfcHeatExchangerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcImpactProtectionDevice=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2568555532}};e.IfcImpactProtectionDeviceType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3948183225}};e.IfcIndexedPolyCurve=class extends Cr{constructor(e,t,s,n){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=n,this.type=2571569899}};e.IfcInterceptorType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3946677679}};e.IfcIntersectionCurve=class extends wr{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=3113134337}};e.IfcInventory=class extends il{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcKerbType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.Mountable=u,this.type=679976338}};e.IfcLaborResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3827777499}};e.IfcLampType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};class al extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=2176059722}}e.IfcLinearElement=al;e.IfcLiquidTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1770583370}};e.IfcMarineFacility=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=525669439}};e.IfcMarinePart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=976884017}};e.IfcMechanicalFastener=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.PredefinedType=h,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.NominalLength=p,this.type=2108223431}};e.IfcMedicalDeviceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1114901282}};e.IfcMemberType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMobileTelecommunicationsApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1950438474}};e.IfcMooringDeviceType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=710110818}};e.IfcMotorConnectionType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcNavigationElementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=506776471}};e.IfcOccupant=class extends br{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};e.IfcOpeningElement=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3588315303}};e.IfcOutletType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPavementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=514975943}};e.IfcPerformanceHistory=class extends xr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LifeCyclePhase=l,this.PredefinedType=o,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPermit=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3327091369}};e.IfcPileType=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1158309216}};e.IfcPipeFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends gr{constructor(e,t,s,n,i){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Faces=n,this.PnIndex=i,this.type=2839578677}};e.IfcPolyline=class extends Cr{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class rl extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=rl;class ll extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1946335990}}e.IfcPositioningElement=ll;e.IfcProcedure=class extends Ya{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.type=2744685151}};e.IfcProjectOrder=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=2904328755}};e.IfcProjectionElement=class extends Kr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRailType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1763565496}};e.IfcRailingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRailway=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=3992365140}};e.IfcRailwayPart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=1891881377}};e.IfcRampFlightType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRampType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.WeightsData=A,this.type=683857671}};e.IfcReferent=class extends ll{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=4021432810}};class ol extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=ol;class cl extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=964333572}}e.IfcReinforcingElementType=cl;e.IfcReinforcingMesh=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.PredefinedType=m,this.type=2320036040}};e.IfcReinforcingMeshType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.MeshLength=h,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=I,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=m,this.BendingShapeCode=v,this.BendingParameters=w,this.type=2310774935}};e.IfcRelAdheresToElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedSurfaceFeatures=r,this.type=3818125796}};e.IfcRelAggregates=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRoad=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=146592293}};e.IfcRoadPart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=550521510}};e.IfcRoofType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcSeamCurve=class extends wr{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=2157484638}};e.IfcSecondOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.QuadraticTerm=s,this.LinearTerm=n,this.ConstantTerm=i,this.type=3649235739}};e.IfcSegmentedReferenceCurve=class extends Br{constructor(e,t,s,n,i){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=n,this.EndPoint=i,this.type=544395925}};e.IfcSeventhOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t),this.Position=t,this.SepticTerm=s,this.SexticTerm=n,this.QuinticTerm=i,this.QuarticTerm=a,this.CubicTerm=r,this.QuadraticTerm=l,this.LinearTerm=o,this.ConstantTerm=c,this.type=1027922057}};e.IfcShadingDeviceType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4074543187}};e.IfcSign=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=33720170}};e.IfcSignType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3599934289}};e.IfcSignalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1894708472}};e.IfcSineSpiral=class extends dr{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.SineTerm=s,this.LinearTerm=n,this.ConstantTerm=i,this.type=42703149}};e.IfcSite=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSolarDeviceType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1072016465}};e.IfcSpace=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceType=class extends Ar{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=3812236995}};e.IfcStackTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};e.IfcStairType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=338393293}};class ul extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=682877961}}e.IfcStructuralAction=ul;class hl extends Ir{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=hl;class pl extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1004757350}}e.IfcStructuralCurveAction=pl;e.IfcStructuralCurveConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.AxisDirection=c,this.type=4243806635}};class Al extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=214636428}}e.IfcStructuralCurveMember=Al;e.IfcStructuralCurveMemberVarying=class extends Al{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=2757150158}};e.IfcStructuralLinearAction=class extends pl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1807405624}};class dl extends il{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}}e.IfcStructuralLoadGroup=dl;e.IfcStructuralPointAction=class extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.ConditionCoordinateSystem=c,this.type=734778138}};e.IfcStructuralPointReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends il{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};class fl extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=3657597509}}e.IfcStructuralSurfaceAction=fl;e.IfcStructuralSurfaceConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=148013059}};e.IfcSurfaceFeature=class extends zr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class Il extends il{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=Il;e.IfcSystemFurnitureElement=class extends sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=413509423}};e.IfcTankType=class extends $r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTendon=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=2347447852}};e.IfcTendonAnchorType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3081323446}};e.IfcTendonConduit=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=3663046924}};e.IfcTendonConduitType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2281632017}};e.IfcTendonType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.SheathDiameter=A,this.type=2415094496}};e.IfcTrackElementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=618700268}};e.IfcTransformerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElementType=class extends Er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};class yl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1953115116}}e.IfcTransportationDevice=yl;e.IfcTrimmedCurve=class extends Cr{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVehicle=class extends yl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=840318589}};e.IfcVibrationDamper=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1530820697}};e.IfcVibrationDamperType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3956297820}};e.IfcVibrationIsolator=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};e.IfcVirtualElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2769231204}};e.IfcVoidingFeature=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=926996030}};e.IfcWallType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};e.IfcWindowType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.PartitioningType=h,this.ParameterTakesPrecedence=p,this.UserDefinedPartitioningType=A,this.type=4009809668}};e.IfcWorkCalendar=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.WorkingTimes=l,this.ExceptionTimes=o,this.PredefinedType=c,this.type=4088093105}};class ml extends xr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.type=1028945134}}e.IfcWorkControl=ml;e.IfcWorkPlan=class extends ml{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends ml{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends Il{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.type=1033361043}};e.IfcActionRequest=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAlignmentCant=class extends al{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.RailHeadDistance=o,this.type=4266260250}};e.IfcAlignmentHorizontal=class extends al{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1545765605}};e.IfcAlignmentSegment=class extends al{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.DesignParameters=o,this.type=317615605}};e.IfcAlignmentVertical=class extends al{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1662888072}};e.IfcAsset=class extends il{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1532957894}};class vl extends Cr{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=vl;class wl extends vl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.type=2461110595}}e.IfcBSplineCurveWithKnots=wl;e.IfcBeamType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};e.IfcBearingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3649138523}};e.IfcBoilerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class gl extends Or{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=gl;e.IfcBridge=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=644574406}};e.IfcBridgePart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=963979645}};e.IfcBuilding=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};e.IfcBuildingElementPart=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=39481116}};e.IfcBuildingElementProxyType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcBuildingSystem=class extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=1177604601}};class El extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1876633798}}e.IfcBuiltElement=El;e.IfcBuiltSystem=class extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=3862327254}};e.IfcBurnerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2674252688}};e.IfcCableSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcCaissonFoundationType=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3203706013}};e.IfcChillerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcChimney=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3296154744}};e.IfcCircle=class extends Sr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1677625105}};e.IfcCoilType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};e.IfcColumn=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=843113511}};e.IfcCommunicationsApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=400855858}};e.IfcCompressorType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=488727124}};e.IfcConveyorSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2940368186}};e.IfcCooledBeamType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCourse=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1502416096}};e.IfcCovering=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3495092785}};e.IfcDamperType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};class Tl extends El{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3426335179}}e.IfcDeepFoundation=Tl;e.IfcDiscreteAccessory=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2635815018}};e.IfcDistributionBoardType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=479945903}};e.IfcDistributionChamberElementType=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class bl extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=bl;class Dl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=Dl;class Pl extends Dl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=Pl;e.IfcDistributionPort=class extends rl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.PredefinedType=c,this.SystemType=u,this.type=3041715199}};class Rl extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=3205830791}}e.IfcDistributionSystem=Rl;e.IfcDoor=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=395920057}};e.IfcDuctFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};e.IfcEarthworksCut=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3071239417}};class Cl extends El{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1077100507}}e.IfcEarthworksElement=Cl;e.IfcEarthworksFill=class extends Cl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3376911765}};e.IfcElectricApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricFlowTreatmentDeviceType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2142170206}};e.IfcElectricGeneratorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricMotorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};class _l extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}}e.IfcEnergyConversionDevice=_l;e.IfcEngine=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2814081492}};e.IfcEvaporativeCooler=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3747195512}};e.IfcEvaporator=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=484807127}};e.IfcExternalSpatialElement=class extends Vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=1209101575}};e.IfcFanType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class Bl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=Bl;class Ol extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}}e.IfcFlowFitting=Ol;e.IfcFlowInstrumentType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMeter=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2188021234}};class Sl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}}e.IfcFlowMovingDevice=Sl;class Nl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}}e.IfcFlowSegment=Nl;class xl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}}e.IfcFlowStorageDevice=xl;class Ll extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}}e.IfcFlowTerminal=Ll;class Ml extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}}e.IfcFlowTreatmentDevice=Ml;e.IfcFooting=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};class Fl extends nl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2713699986}}e.IfcGeotechnicalAssembly=Fl;e.IfcGrid=class extends ll{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.PredefinedType=h,this.type=3009204131}};e.IfcHeatExchanger=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3319311131}};e.IfcHumidifier=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2068733104}};e.IfcInterceptor=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4175244083}};e.IfcJunctionBox=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2176052936}};e.IfcKerb=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.Mountable=c,this.type=2696325953}};e.IfcLamp=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=76236018}};e.IfcLightFixture=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=629592764}};class Hl extends ll{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1154579445}}e.IfcLinearPositioningElement=Hl;e.IfcLiquidTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1638804497}};e.IfcMedicalDevice=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1437502449}};e.IfcMember=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1073191201}};e.IfcMobileTelecommunicationsAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2078563270}};e.IfcMooringDevice=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=234836483}};e.IfcMotorConnection=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2474470126}};e.IfcNavigationElement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2182337498}};e.IfcOuterBoundaryCurve=class extends gl{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3694346114}};e.IfcPavement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1383356374}};e.IfcPile=class extends Tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPipeFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=310824031}};e.IfcPipeSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3612865200}};e.IfcPlate=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3171933400}};e.IfcProtectiveDevice=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=655969474}};e.IfcPump=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=90941305}};e.IfcRail=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3290496277}};e.IfcRailing=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3024970846}};e.IfcRampFlight=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends wl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.WeightsData=c,this.type=1232101972}};e.IfcReinforcedSoil=class extends Cl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3798194928}};e.IfcReinforcingBar=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.PredefinedType=A,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.BarLength=A,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=I,this.type=2572171363}};e.IfcRoof=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3053780830}};e.IfcSensorType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcShadingDevice=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1329646415}};e.IfcSignal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=991950508}};e.IfcSlab=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}};e.IfcSolarDevice=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3420628829}};e.IfcSpaceHeater=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1999602285}};e.IfcStackTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1404847402}};e.IfcStair=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=331165859}};e.IfcStairFlight=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRisers=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.PredefinedType=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Il{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.SharedPlacement=u,this.type=2515109513}};e.IfcStructuralLoadCase=class extends dl{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.SelfWeightCoefficients=h,this.type=385403989}};e.IfcStructuralPlanarAction=class extends fl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1621171031}};e.IfcSwitchingDevice=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1162798199}};e.IfcTank=class extends xl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=812556717}};e.IfcTrackElement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3425753595}};e.IfcTransformer=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3825984169}};e.IfcTransportElement=class extends yl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1620046519}};e.IfcTubeBundle=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3179687236}};e.IfcUnitaryEquipment=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4292641817}};e.IfcValve=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4207607924}};class Ul extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391406946}}e.IfcWall=Ul;e.IfcWallStandardCase=class extends Ul{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3512223829}};e.IfcWasteTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4237592921}};e.IfcWindow=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=3304561284}};e.IfcActuatorType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAirTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1634111441}};e.IfcAirTerminalBox=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2056796094}};e.IfcAlarmType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcAlignment=class extends Hl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=325726236}};e.IfcAudioVisualAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=277319702}};e.IfcBeam=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=753842376}};e.IfcBearing=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4196446775}};e.IfcBoiler=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=32344328}};e.IfcBorehole=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3314249567}};e.IfcBuildingElementProxy=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1095909175}};e.IfcBurner=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=635142910}};e.IfcCableCarrierSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3758799889}};e.IfcCableFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1051757585}};e.IfcCableSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4217484030}};e.IfcCaissonFoundation=class extends Tl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3999819293}};e.IfcChiller=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3902619387}};e.IfcCoil=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3221913625}};e.IfcCompressor=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3571504051}};e.IfcCondenser=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2272882330}};e.IfcControllerType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcConveyorSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3460952963}};e.IfcCooledBeam=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4136498852}};e.IfcCoolingTower=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3640358203}};e.IfcDamper=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4074379575}};e.IfcDistributionBoard=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3693000487}};e.IfcDistributionChamberElement=class extends Pl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1052013943}};e.IfcDistributionCircuit=class extends Rl{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=562808652}};class Gl extends Dl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1062813311}}e.IfcDistributionControlElement=Gl;e.IfcDuctFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=342316401}};e.IfcDuctSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3518393246}};e.IfcDuctSilencer=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1360408905}};e.IfcElectricAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends xl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3310460725}};e.IfcElectricFlowTreatmentDevice=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=24726584}};e.IfcElectricGenerator=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=264262732}};e.IfcElectricMotor=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=402227799}};e.IfcElectricTimeControl=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1003880860}};e.IfcFan=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3415622556}};e.IfcFilter=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1426591983}};e.IfcFlowInstrument=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=182646315}};e.IfcGeomodel=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2680139844}};e.IfcGeoslice=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1971632696}};e.IfcProtectiveDeviceTrippingUnit=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2295281155}};e.IfcSensor=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4086658281}};e.IfcUnitaryControlElement=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=630975310}};e.IfcActuator=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4288193352}};e.IfcAlarm=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3087945054}};e.IfcController=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=25142252}}}(hb||(hb={}));var nD,iD,aD={aggregates:{name:160246688,relating:"RelatingObject",related:"RelatedObjects",key:"children"},spatial:{name:3242617779,relating:"RelatingStructure",related:"RelatedElements",key:"children"},psets:{name:4186316022,relating:"RelatingPropertyDefinition",related:"RelatedObjects",key:"IsDefinedBy"},materials:{name:2655215786,relating:"RelatingMaterial",related:"RelatedObjects",key:"HasAssociations"},type:{name:781010003,relating:"RelatingType",related:"RelatedObjects",key:"IsDefinedBy"}},rD=class{constructor(e){this.api=e}getItemProperties(e,t,s=!1,n=!1){return gb(this,null,(function*(){return this.api.GetLine(e,t,s,n)}))}getPropertySets(e,t=0,s=!1){return gb(this,null,(function*(){return yield this.getRelatedProperties(e,t,aD.psets,s)}))}setPropertySets(e,t,s){return gb(this,null,(function*(){return this.setItemProperties(e,t,s,aD.psets)}))}getTypeProperties(e,t=0,s=!1){return gb(this,null,(function*(){return"IFC2X3"==this.api.GetModelSchema(e)?yield this.getRelatedProperties(e,t,aD.type,s):yield this.getRelatedProperties(e,t,((e,t)=>Ab(e,db(t)))(vb({},aD.type),{key:"IsTypedBy"}),s)}))}getMaterialsProperties(e,t=0,s=!1){return gb(this,null,(function*(){return yield this.getRelatedProperties(e,t,aD.materials,s)}))}setMaterialsProperties(e,t,s){return gb(this,null,(function*(){return this.setItemProperties(e,t,s,aD.materials)}))}getSpatialStructure(e,t=!1){return gb(this,null,(function*(){const s=yield this.getSpatialTreeChunks(e),n=(yield this.api.GetLineIDsWithType(e,103090709)).get(0),i=rD.newIfcProject(n);return yield this.getSpatialNode(e,i,s,t),i}))}getRelatedProperties(e,t,s,n=!1){return gb(this,null,(function*(){const i=[];let a=null;if(0!==t)a=yield this.api.GetLine(e,t,!1,!0)[s.key];else{let t=this.api.GetLineIDsWithType(e,s.name);a=[];for(let e=0;ee.value));null==e[n]?e[n]=i:e[n]=e[n].concat(i)}setItemProperties(e,t,s,n){return gb(this,null,(function*(){Array.isArray(t)||(t=[t]),Array.isArray(s)||(s=[s]);let i=0;const a=[],r=[];for(const s of t){const t=yield this.api.GetLine(e,s,!1,!0);t[n.key]&&r.push(t)}if(r.length<1)return!1;const l=this.api.GetLineIDsWithType(e,n.name);for(let t=0;te.value===s.expressID))||t[n.key].push({type:5,value:s.expressID}),s[n.related].some((e=>e.value===t.expressID))||(s[n.related].push({type:5,value:t.expressID}),this.api.WriteLine(e,s));this.api.WriteLine(e,t)}return!0}))}};(iD=nD||(nD={}))[iD.LOG_LEVEL_DEBUG=0]="LOG_LEVEL_DEBUG",iD[iD.LOG_LEVEL_INFO=1]="LOG_LEVEL_INFO",iD[iD.LOG_LEVEL_WARN=2]="LOG_LEVEL_WARN",iD[iD.LOG_LEVEL_ERROR=3]="LOG_LEVEL_ERROR",iD[iD.LOG_LEVEL_OFF=4]="LOG_LEVEL_OFF";var lD,oD=class{static setLogLevel(e){this.logLevel=e}static log(e,...t){this.logLevel<=3&&console.log(e,...t)}static debug(e,...t){this.logLevel<=0&&console.trace("DEBUG: ",e,...t)}static info(e,...t){this.logLevel<=1&&console.info("INFO: ",e,...t)}static warn(e,...t){this.logLevel<=2&&console.warn("WARN: ",e,...t)}static error(e,...t){this.logLevel<=3&&console.error("ERROR: ",e,...t)}};if(oD.logLevel=1,"undefined"!=typeof self&&self.crossOriginIsolated)try{lD=Eb()}catch(e){lD=Tb()}else lD=Tb();class cD{constructor(){}getIFC(e,t,s){var n=()=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{let t=0,s=0,n=0;const i=new DataView(e),a=new Uint8Array(6e3),r=({item:n,format:a,size:r})=>{let l,o;switch(a){case"char":return o=new Uint8Array(e,t,r),t+=r,l=ID(o),[n,l];case"uShort":return l=i.getUint16(t,!0),t+=r,[n,l];case"uLong":return l=i.getUint32(t,!0),"NumberOfVariableLengthRecords"===n&&(s=l),t+=r,[n,l];case"uChar":return l=i.getUint8(t),t+=r,[n,l];case"double":return l=i.getFloat64(t,!0),t+=r,[n,l];default:t+=r}};return(()=>{const e={};pD.forEach((t=>{const s=r({...t});if(void 0!==s){if("FileSignature"===s[0]&&"LASF"!==s[1])throw new Error("Ivalid FileSignature. Is this a LAS/LAZ file");e[s[0]]=s[1]}}));const i=[];let l=s;for(;l--;){const e={};AD.forEach((s=>{const i=r({...s});e[i[0]]=i[1],"UserId"===i[0]&&"LASF_Projection"===i[1]&&(n=t-18+54)})),i.push(e)}const o=(e=>{if(void 0===e)return;const t=n+e.RecordLengthAfterHeader,s=a.slice(n,t),i=fD(s),r=new DataView(i);let l=6,o=Number(r.getUint16(l,!0));const c=[];for(;o--;){const e={};e.key=r.getUint16(l+=2,!0),e.tiffTagLocation=r.getUint16(l+=2,!0),e.count=r.getUint16(l+=2,!0),e.valueOffset=r.getUint16(l+=2,!0),c.push(e)}const u=c.find((e=>3072===e.key));if(u&&u.hasOwnProperty("valueOffset"))return u.valueOffset})(i.find((e=>"LASF_Projection"===e.UserId)));return o&&(e.epsg=o),e})()},fD=e=>{let t=new ArrayBuffer(e.length),s=new Uint8Array(t);for(let t=0;t{let t="";return e.forEach((e=>{let s=String.fromCharCode(e);"\0"!==s&&(t+=s)})),t.trim()};function yD(e,t){if(t>=e.length)return e;let s=[];for(let n=0;n{t(e)}),(function(e){s(e)}))}}function vD(e,t,s){s=s||2;var n,i,a,r,l,o,c,u=t&&t.length,h=u?t[0]*s:e.length,p=wD(e,0,h,s,!0),A=[];if(!p||p.next===p.prev)return A;if(u&&(p=function(e,t,s,n){var i,a,r,l=[];for(i=0,a=t.length;i80*s){n=a=e[0],i=r=e[1];for(var d=s;da&&(a=l),o>r&&(r=o);c=0!==(c=Math.max(a-n,r-i))?1/c:0}return ED(p,A,s,n,i,c),A}function wD(e,t,s,n,i){var a,r;if(i===QD(e,t,s,n)>0)for(a=t;a=t;a-=n)r=jD(a,e[a],e[a+1],r);return r&&LD(r,r.next)&&(VD(r),r=r.next),r}function gD(e,t){if(!e)return e;t||(t=e);var s,n=e;do{if(s=!1,n.steiner||!LD(n,n.next)&&0!==xD(n.prev,n,n.next))n=n.next;else{if(VD(n),(n=t=n.prev)===n.next)break;s=!0}}while(s||n!==t);return t}function ED(e,t,s,n,i,a,r){if(e){!r&&a&&function(e,t,s,n){var i=e;do{null===i.z&&(i.z=BD(i.x,i.y,t,s,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,s,n,i,a,r,l,o,c=1;do{for(s=e,e=null,a=null,r=0;s;){for(r++,n=s,l=0,t=0;t0||o>0&&n;)0!==l&&(0===o||!n||s.z<=n.z)?(i=s,s=s.nextZ,l--):(i=n,n=n.nextZ,o--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;s=n}a.nextZ=null,c*=2}while(r>1)}(i)}(e,n,i,a);for(var l,o,c=e;e.prev!==e.next;)if(l=e.prev,o=e.next,a?bD(e,n,i,a):TD(e))t.push(l.i/s),t.push(e.i/s),t.push(o.i/s),VD(e),e=o.next,c=o.next;else if((e=o)===c){r?1===r?ED(e=DD(gD(e),t,s),t,s,n,i,a,2):2===r&&PD(e,t,s,n,i,a):ED(gD(e),t,s,n,i,a,1);break}}}function TD(e){var t=e.prev,s=e,n=e.next;if(xD(t,s,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(SD(t.x,t.y,s.x,s.y,n.x,n.y,i.x,i.y)&&xD(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function bD(e,t,s,n){var i=e.prev,a=e,r=e.next;if(xD(i,a,r)>=0)return!1;for(var l=i.xa.x?i.x>r.x?i.x:r.x:a.x>r.x?a.x:r.x,u=i.y>a.y?i.y>r.y?i.y:r.y:a.y>r.y?a.y:r.y,h=BD(l,o,t,s,n),p=BD(c,u,t,s,n),A=e.prevZ,d=e.nextZ;A&&A.z>=h&&d&&d.z<=p;){if(A!==e.prev&&A!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,A.x,A.y)&&xD(A.prev,A,A.next)>=0)return!1;if(A=A.prevZ,d!==e.prev&&d!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,d.x,d.y)&&xD(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;A&&A.z>=h;){if(A!==e.prev&&A!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,A.x,A.y)&&xD(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;d&&d.z<=p;){if(d!==e.prev&&d!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,d.x,d.y)&&xD(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function DD(e,t,s){var n=e;do{var i=n.prev,a=n.next.next;!LD(i,a)&&MD(i,n,n.next,a)&&UD(i,a)&&UD(a,i)&&(t.push(i.i/s),t.push(n.i/s),t.push(a.i/s),VD(n),VD(n.next),n=e=a),n=n.next}while(n!==e);return gD(n)}function PD(e,t,s,n,i,a){var r=e;do{for(var l=r.next.next;l!==r.prev;){if(r.i!==l.i&&ND(r,l)){var o=GD(r,l);return r=gD(r,r.next),o=gD(o,o.next),ED(r,t,s,n,i,a),void ED(o,t,s,n,i,a)}l=l.next}r=r.next}while(r!==e)}function RD(e,t){return e.x-t.x}function CD(e,t){if(t=function(e,t){var s,n=t,i=e.x,a=e.y,r=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var l=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(l<=i&&l>r){if(r=l,l===i){if(a===n.y)return n;if(a===n.next.y)return n.next}s=n.x=n.x&&n.x>=u&&i!==n.x&&SD(as.x||n.x===s.x&&_D(s,n)))&&(s=n,p=o)),n=n.next}while(n!==c);return s}(e,t),t){var s=GD(t,e);gD(t,t.next),gD(s,s.next)}}function _D(e,t){return xD(e.prev,e,t.prev)<0&&xD(t.next,e,e.next)<0}function BD(e,t,s,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-s)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function OD(e){var t=e,s=e;do{(t.x=0&&(e-r)*(n-l)-(s-r)*(t-l)>=0&&(s-r)*(a-l)-(i-r)*(n-l)>=0}function ND(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var s=e;do{if(s.i!==e.i&&s.next.i!==e.i&&s.i!==t.i&&s.next.i!==t.i&&MD(s,s.next,e,t))return!0;s=s.next}while(s!==e);return!1}(e,t)&&(UD(e,t)&&UD(t,e)&&function(e,t){var s=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{s.y>a!=s.next.y>a&&s.next.y!==s.y&&i<(s.next.x-s.x)*(a-s.y)/(s.next.y-s.y)+s.x&&(n=!n),s=s.next}while(s!==e);return n}(e,t)&&(xD(e.prev,e,t.prev)||xD(e,t.prev,t))||LD(e,t)&&xD(e.prev,e,e.next)>0&&xD(t.prev,t,t.next)>0)}function xD(e,t,s){return(t.y-e.y)*(s.x-t.x)-(t.x-e.x)*(s.y-t.y)}function LD(e,t){return e.x===t.x&&e.y===t.y}function MD(e,t,s,n){var i=HD(xD(e,t,s)),a=HD(xD(e,t,n)),r=HD(xD(s,n,e)),l=HD(xD(s,n,t));return i!==a&&r!==l||(!(0!==i||!FD(e,s,t))||(!(0!==a||!FD(e,n,t))||(!(0!==r||!FD(s,e,n))||!(0!==l||!FD(s,t,n)))))}function FD(e,t,s){return t.x<=Math.max(e.x,s.x)&&t.x>=Math.min(e.x,s.x)&&t.y<=Math.max(e.y,s.y)&&t.y>=Math.min(e.y,s.y)}function HD(e){return e>0?1:e<0?-1:0}function UD(e,t){return xD(e.prev,e,e.next)<0?xD(e,t,e.next)>=0&&xD(e,e.prev,t)>=0:xD(e,t,e.prev)<0||xD(e,e.next,t)<0}function GD(e,t){var s=new kD(e.i,e.x,e.y),n=new kD(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,s.next=i,i.prev=s,n.next=s,s.prev=n,a.next=n,n.prev=a,n}function jD(e,t,s,n){var i=new kD(e,t,s);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function VD(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function kD(e,t,s){this.i=e,this.x=t,this.y=s,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function QD(e,t,s,n){for(var i=0,a=t,r=s-n;a0&&(n+=e[i-1].length,s.holes.push(n))}return s};const WD=h.vec2(),zD=h.vec3(),KD=h.vec3(),YD=h.vec3();exports.AlphaFormat=1021,exports.AmbientLight=gt,exports.AngleMeasurementsControl=he,exports.AngleMeasurementsMouseControl=pe,exports.AngleMeasurementsPlugin=class extends H{constructor(e,t={}){super("AngleMeasurements",e),this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,angleMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get control(){return this._defaultControl||(this._defaultControl=new pe(this,{})),this._defaultControl}get measurements(){return this._measurements}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.corner,n=e.target,i=new ue(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:s.entity,worldPos:s.worldPos},target:{entity:n.entity,worldPos:n.worldPos},visible:e.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(()=>{delete this._measurements[i.id]})),this.fire("measurementCreated",i),i}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t",this._markerHTML=t.markerHTML||"
",this._container=t.container||document.body,this._values=t.values||{},this.annotations={},this.surfaceOffset=t.surfaceOffset}getContainerElement(){return this._container}send(e,t){if("clearAnnotations"===e)this.clear()}set surfaceOffset(e){null==e&&(e=.3),this._surfaceOffset=e}get surfaceOffset(){return this._surfaceOffset}createAnnotation(e){var t,s;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){const n=e.pickResult;if(n.worldPos&&n.worldNormal){const e=h.normalizeVec3(n.worldNormal,de),i=h.mulVec3Scalar(e,this._surfaceOffset,fe);t=h.addVec3(n.worldPos,i,Ie),s=n.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,s=e.entity;var n=null;e.markerElementId&&((n=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var i=null;e.labelElementId&&((i=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));const a=new Ae(this.viewer.scene,{id:e.id,plugin:this,entity:s,worldPos:t,container:this._container,markerElement:n,labelElement:i,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:m.apply(e.values,m.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[a.id]=a,a.on("destroyed",(()=>{delete this.annotations[a.id],this.fire("annotationDestroyed",a.id)})),this.fire("annotationCreated",a.id),a}destroyAnnotation(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}clear(){const e=Object.keys(this.annotations);for(var t=0,s=e.length;td.has(e.id)||I.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let n,i=function(e){let t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0"),t}(s.colorize);s.xrayed?(n=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,n=Math.round(255*n).toString(16).padStart(2,"0"),i=n+i):d.has(s.id)&&(n=Math.round(255*s.opacity).toString(16).padStart(2,"0"),i=n+i),e[i]||(e[i]=[]);const a=s.id,r=s.originalSystemId,l={ifc_guid:r,originating_system:this.originatingSystem};return r!==a&&(l.authoring_tool_id=a),e[i].push(l),e}),{}),m=Object.entries(y).map((([e,t])=>({color:e,components:t})));a.components.coloring=m;const v=t.objectIds,w=t.visibleObjects,g=t.visibleObjectIds,E=v.filter((e=>!w[e])),T=t.selectedObjectIds;return e.defaultInvisible||g.length0&&e.clipping_planes.forEach((function(e){let t=Vo(e.location,Fo),s=Vo(e.direction,Fo);c&&h.negateVec3(s),h.subVec3(t,o),i.yUp&&(t=Qo(t),s=Qo(s)),new Ys(n,{pos:t,dir:s})})),n.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let i=0;e.lines.forEach((e=>{e.start_point&&e.end_point&&(t.push(e.start_point.x),t.push(e.start_point.y),t.push(e.start_point.z),t.push(e.end_point.x),t.push(e.end_point.y),t.push(e.end_point.z),s.push(i++),s.push(i++))})),new Mo(n,{positions:t,indices:s,clippable:!1,collidable:!0})}if(n.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let a=Vo(e.location,Ho),r=Vo(e.normal,Uo),l=Vo(e.up,Go),o=e.height||1;t&&s&&a&&r&&l&&(i.yUp&&(a=Qo(a),r=Qo(r),l=Qo(l)),new _n(n,{src:s,type:t,pos:a,normal:r,up:l,clippable:!1,collidable:!0,height:o}))})),l&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),n.setObjectsHighlighted(n.highlightedObjectIds,!1),n.setObjectsSelected(n.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(n.setObjectsVisible(n.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(n.setObjectsVisible(n.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const i=e.components.visibility.view_setup_hints;i&&(!1===i.spaces_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==i.spaces_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),i.space_boundaries_visible,!1===i.openings_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),i.space_boundaries_translucent,void 0!==i.openings_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(n.setObjectsSelected(n.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let s=e.color,n=0,i=!1;8===s.length&&(n=parseInt(s.substring(0,2),16)/256,n<=1&&n>=.95&&(n=1),s=s.substring(2),i=!0);const a=[parseInt(s.substring(0,2),16)/256,parseInt(s.substring(2,4),16)/256,parseInt(s.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=a,i&&(e.opacity=n)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let l,c,u,p;if(e.perspective_camera?(l=Vo(e.perspective_camera.camera_view_point,Fo),c=Vo(e.perspective_camera.camera_direction,Fo),u=Vo(e.perspective_camera.camera_up_vector,Fo),i.perspective.fov=e.perspective_camera.field_of_view,p="perspective"):(l=Vo(e.orthogonal_camera.camera_view_point,Fo),c=Vo(e.orthogonal_camera.camera_direction,Fo),u=Vo(e.orthogonal_camera.camera_up_vector,Fo),i.ortho.scale=e.orthogonal_camera.view_to_world_scale,p="ortho"),h.subVec3(l,o),i.yUp&&(l=Qo(l),c=Qo(c),u=Qo(u)),a){const e=n.pick({pickSurface:!0,origin:l,direction:c});c=e?e.worldPos:h.addVec3(l,c,Fo)}else c=h.addVec3(l,c,Fo);r?(i.eye=l,i.look=c,i.up=u,i.projection=p):s.cameraFlight.flyTo({eye:l,look:c,up:u,duration:t.duration,projection:p})}}_withBCFComponent(e,t,s){const n=this.viewer,i=n.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const a=t.authoring_tool_id,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}}if(t.ifc_guid){const a=t.ifc_guid,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}Object.keys(i.models).forEach((t=>{const r=h.globalizeObjectId(t,a),l=i.objects[r];if(l)s(l);else if(e.updateCompositeObjects){n.metaScene.metaObjects[r]&&i.withObjects(n.metaScene.getObjectIDsInSubtree(r),s)}}))}}destroy(){super.destroy()}},exports.Bitmap=_n,exports.ByteType=1010,exports.CameraMemento=mc,exports.CameraPath=class extends _{get type(){return"CameraPath"}constructor(e,t={}){super(e,t),this._frames=[],this._eyeCurve=new tc(this),this._lookCurve=new tc(this),this._upCurve=new tc(this),t.frames&&(this.addFrames(t.frames),this.smoothFrameTimes(1))}get frames(){return this._frames}get eyeCurve(){return this._eyeCurve}get lookCurve(){return this._lookCurve}get upCurve(){return this._upCurve}saveFrame(e){const t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}addFrame(e,t,s,n){const i={t:e,eye:t.slice(0),look:s.slice(0),up:n.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}addFrames(e){let t;for(let s=0,n=e.length;s1?1:e,t.eye=this._eyeCurve.getPoint(e,sc),t.look=this._lookCurve.getPoint(e,sc),t.up=this._upCurve.getPoint(e,sc)}sampleFrame(e,t,s,n){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,s),this._upCurve.getPoint(e,n)}smoothFrameTimes(e){if(0===this._frames.length)return;const t=h.vec3();var s=0;this._frames[0].t=0;const n=[];for(let e=1,a=this._frames.length;e{this._parseModel(e,t,s,n),i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){if(n.destroyed)return;const i=e.transform?this._transformVertices(e.vertices,e.transform,s.rotateX):e.vertices,a=t.stats||{};a.sourceFormat=e.type||"CityJSON",a.schemaVersion=e.version||"",a.title="",a.author="",a.created="",a.numMetaObjects=0,a.numPropertySets=0,a.numObjects=0,a.numGeometries=0,a.numTriangles=0,a.numVertices=0;const r=!1!==t.loadMetadata,l=r?{id:h.createUUID(),name:"Model",type:"Model"}:null,o=r?{id:"",projectId:"",author:"",createdAt:"",schema:e.version||"",creatingApplication:"",metaObjects:[l],propertySets:[]}:null,c={data:e,vertices:i,sceneModel:n,loadMetadata:r,metadata:o,rootMetaObject:l,nextId:0,stats:a};if(this._parseCityJSON(c),n.finalize(),r){const e=n.id;this.viewer.metaScene.createMetaModel(e,c.metadata,s)}n.scene.once("tick",(()=>{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))}))}_transformVertices(e,t,s){const n=[],i=t.scale||h.vec3([1,1,1]),a=t.translate||h.vec3([0,0,0]);for(let t=0,r=0;t0))return;const a=[];for(let s=0,n=t.geometry.length;s0){const i=t[n[0]];if(void 0!==i.value)r=e[i.value];else{const t=i.values;if(t){l=[];for(let n=0,i=t.length;n0&&(n.createEntity({id:s,meshIds:a,isObject:!0}),e.stats.numObjects++)}_parseGeometrySurfacesWithOwnMaterials(e,t,s,n){switch(t.type){case"MultiPoint":case"MultiLineString":break;case"MultiSurface":case"CompositeSurface":const i=t.boundaries;this._parseSurfacesWithOwnMaterials(e,s,i,n);break;case"Solid":const a=t.boundaries;for(let t=0;t0&&u.push(c.length);const s=this._extractLocalIndices(e,l[t],p,A);c.push(...s)}if(3===c.length)A.indices.push(c[0]),A.indices.push(c[1]),A.indices.push(c[2]);else if(c.length>3){const e=[];for(let t=0;t0&&r.indices.length>0){const t=""+e.nextId++;i.createMesh({id:t,primitive:"triangles",positions:r.positions,indices:r.indices,color:s&&s.diffuseColor?s.diffuseColor:[.8,.8,.8],opacity:1}),n.push(t),e.stats.numGeometries++,e.stats.numVertices+=r.positions.length/3,e.stats.numTriangles+=r.indices.length/3}}_parseSurfacesWithSharedMaterial(e,t,s,n){const i=e.vertices;for(let a=0;a0&&l.push(r.length);const o=this._extractLocalIndices(e,t[a][i],s,n);r.push(...o)}if(3===r.length)n.indices.push(r[0]),n.indices.push(r[1]),n.indices.push(r[2]);else if(r.length>3){let e=[];for(let t=0;t{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),e.items&&(this.items=e.items),this._hideOnAction=!1!==e.hideOnAction,this.context=e.context,this.enabled=!1!==e.enabled,this.hide()}on(e,t){let s=this._eventSubs[e];s||(s=[],this._eventSubs[e]=s),s.push(t)}fire(e,t){const s=this._eventSubs[e];if(s)for(let e=0,n=s.length;e{const a=this._getNextId(),r=new s(a);for(let s=0,a=e.length;s0,c=this._getNextId(),u=s.getTitle||(()=>s.title||""),h=s.doAction||s.callback||(()=>{}),p=s.getEnabled||(()=>!0),A=s.getShown||(()=>!0),d=new i(c,u,h,p,A);if(d.parentMenu=r,l.items.push(d),o){const e=t(n);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(r),this._menuMap[r.id]=r,r};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const s=t.groups;for(let t=0,n=s.length;t'),s.push("
    "),t)for(let e=0,n=t.length;e'+o+" [MORE]"):s.push('
  • '+o+"
  • ")}}s.push("
"),s.push("");const n=s.join("");document.body.insertAdjacentHTML("beforeend",n);const i=document.querySelector("."+e.id);e.menuElement=i,i.style["border-radius"]="4px",i.style.display="none",i.style["z-index"]=3e5,i.style.background="white",i.style.border="1px solid black",i.style["box-shadow"]="0 4px 5px 0 gray",i.oncontextmenu=e=>{e.preventDefault()};const a=this;let r=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(r&&(a._hideMenu(r.id),r=null));if(r&&r.id!==s.id&&(a._hideMenu(r.id),r=null),!1===t.enabled)return;const n=t.itemElement,i=s.menuElement,l=n.getBoundingClientRect();i.getBoundingClientRect();l.right+200>window.innerWidth?a._showMenu(s.id,l.left-200,l.top-1):a._showMenu(s.id,l.right-5,l.top-1),r=s})),n||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),a._context&&!1!==t.enabled&&(t.doAction&&t.doAction(a._context),this._hideOnAction?a.hide():(a._updateItemsTitles(),a._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(a._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(s=window.innerHeight-n),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}},exports.CubicBezierCurve=class extends ec{constructor(e,t={}){super(e,t),this.v0=t.v0,this.v1=t.v1,this.v2=t.v2,this.v3=t.v3,this.t=t.t}set v0(e){this._v0=e||h.vec3([0,0,0])}get v0(){return this._v0}set v1(e){this._v1=e||h.vec3([0,0,0])}get v1(){return this._v1}set v2(e){this._v2=e||h.vec3([0,0,0])}get v2(){return this._v2}set v3(e){this.fire("v3",this._v3=e||h.vec3([0,0,0]))}get v3(){return this._v3}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=h.vec3();return t[0]=h.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=h.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=h.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}},exports.Curve=ec,exports.DefaultLoadingManager=_r,exports.DepthFormat=1026,exports.DepthStencilFormat=1027,exports.DirLight=wt,exports.DistanceMeasurementsControl=Yo,exports.DistanceMeasurementsMouseControl=Xo,exports.DistanceMeasurementsPlugin=class extends H{constructor(e,t={}){super("DistanceMeasurements",e),this._pointerLens=t.pointerLens,this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.labelMinAxisLength=t.labelMinAxisLength,this.defaultVisible=!1!==t.defaultVisible,this.defaultOriginVisible=!1!==t.defaultOriginVisible,this.defaultTargetVisible=!1!==t.defaultTargetVisible,this.defaultWireVisible=!1!==t.defaultWireVisible,this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.defaultAxisVisible=!1!==t.defaultAxisVisible,this.defaultXAxisVisible=!1!==t.defaultXAxisVisible,this.defaultYAxisVisible=!1!==t.defaultYAxisVisible,this.defaultZAxisVisible=!1!==t.defaultZAxisVisible,this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,distanceMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get pointerLens(){return this._pointerLens}get control(){return this._defaultControl||(this._defaultControl=new Xo(this,{})),this._defaultControl}get measurements(){return this._measurements}set labelMinAxisLength(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}get labelMinAxisLength(){return this._labelMinAxisLength}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.target,n=new Ko(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:s.entity,worldPos:s.worldPos},visible:e.visible,wireVisible:e.wireVisible,axisVisible:!1!==e.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==e.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==e.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==e.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==e.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:e.originVisible,targetVisible:e.targetVisible,color:e.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[n.id]=n,n.on("destroyed",(()=>{delete this._measurements[n.id]})),this.fire("measurementCreated",n),n}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}setAxisVisible(e){for(const[t,s]of Object.entries(this.measurements))s.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;QE.set(this.viewer.scene.aabb),h.getAABB3Center(QE,WE),QE[0]+=t[0]-WE[0],QE[1]+=t[1]-WE[1],QE[2]+=t[2]-WE[2],QE[3]+=t[0]-WE[0],QE[4]+=t[1]-WE[1],QE[5]+=t[2]-WE[2],this.viewer.cameraFlight.flyTo({aabb:QE,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}null===t.controlElementId||void 0===t.controlElementId?this.error("Parameter expected: controlElementId"):(this._controlElement=document.getElementById(t.controlElementId),this._controlElement||this.warn("Can't find control element: '"+t.controlElementId+"' - will create plugin without control element")),this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setDragSensitivity(e){this._dragSensitivity=e||1}getDragSensitivity(){return this._dragSensitivity}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new Ys(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new jE(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(let e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){let t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(let t=0,s=e.length;t{s=1e3*this._delayBeforeRestoreSeconds,n||(e.scene._renderer.setColorTextureEnabled(!this._hideColorTexture),e.scene._renderer.setPBREnabled(!this._hidePBR),e.scene._renderer.setSAOEnabled(!this._hideSAO),e.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!this._hideEdges),this._scaleCanvasResolution?e.scene.canvas.resolutionScale=this._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,n=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",i),this._onCameraMatrix=e.scene.camera.on("matrix",i),this._onSceneTick=e.scene.on("tick",(t=>{n&&(s-=t.deltaTime,(!this._delayBeforeRestore||s<=0)&&(e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),n=!1))}));let a=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{a=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{a=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{a&&i()}))}get hideColorTexture(){return this._hideColorTexture}set hideColorTexture(e){this._hideColorTexture=e}get hidePBR(){return this._hidePBR}set hidePBR(e){this._hidePBR=e}get hideSAO(){return this._hideSAO}set hideSAO(e){this._hideSAO=e}get hideEdges(){return this._hideEdges}set hideEdges(e){this._hideEdges=e}get hideTransparentObjects(){return this._hideTransparentObjects}set hideTransparentObjects(e){this._hideTransparentObjects=!1!==e}get scaleCanvasResolution(){return this._scaleCanvasResolution}set scaleCanvasResolution(e){this._scaleCanvasResolution=e}get scaleCanvasResolutionFactor(){return this._scaleCanvasResolutionFactor}set scaleCanvasResolutionFactor(e){this._scaleCanvasResolutionFactor=e||.6}get delayBeforeRestore(){return this._delayBeforeRestore}set delayBeforeRestore(e){this._delayBeforeRestore=e}get delayBeforeRestoreSeconds(){return this._delayBeforeRestoreSeconds}set delayBeforeRestoreSeconds(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}send(e,t){}destroy(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),super.destroy()}},exports.FloatType=1015,exports.Fresnel=class extends _{get type(){return"Fresnel"}constructor(e,t={}){super(e,t),this._state=new Je({edgeColor:h.vec3([0,0,0]),centerColor:h.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),this.edgeColor=t.edgeColor,this.centerColor=t.centerColor,this.edgeBias=t.edgeBias,this.centerBias=t.centerBias,this.power=t.power}set edgeColor(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set centerColor(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}get centerColor(){return this._state.centerColor}set edgeBias(e){this._state.edgeBias=e||0,this.glRedraw()}get edgeBias(){return this._state.edgeBias}set centerBias(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}get centerBias(){return this._state.centerBias}set power(e){this._state.power=null!=e?e:1,this.glRedraw()}get power(){return this._state.power}destroy(){super.destroy(),this._state.destroy()}},exports.Frustum=x,exports.FrustumPlane=N,exports.GIFMediaType=1e4,exports.GLTFDefaultDataSource=qo,exports.GLTFLoaderPlugin=class extends H{constructor(e,t={}){super("GLTFLoader",e,t),this._sceneModelLoader=new aE(this,t),this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults}set dataSource(e){this._dataSource=e||new qo}get dataSource(){return this._dataSource}set objectDefaults(e){this._objectDefaults=e||IE}get objectDefaults(){return this._objectDefaults}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0,dtxEnabled:e.dtxEnabled})),s=t.id;if(!e.src&&!e.gltf)return this.error("load() param expected: src or gltf"),t;if(e.metaModelSrc||e.metaModelJSON){const n=e.objectDefaults||this._objectDefaults||IE,i=i=>{let a;if(this.viewer.metaScene.createMetaModel(s,i,{includeTypes:e.includeTypes,excludeTypes:e.excludeTypes}),this.viewer.scene.canvas.spinner.processes--,e.includeTypes){a={};for(let t=0,s=e.includeTypes.length;t{const i=t.name;if(!i)return!0;const a=i,r=this.viewer.metaScene.metaObjects[a],l=(r?r.type:"DEFAULT")||"DEFAULT";s.createEntity={id:a,isObject:!0};const o=n[l];return o&&(!1===o.visible&&(s.createEntity.visible=!1),o.colorize&&(s.createEntity.colorize=o.colorize),!1===o.pickable&&(s.createEntity.pickable=!1),void 0!==o.opacity&&null!==o.opacity&&(s.createEntity.opacity=o.opacity)),!0},e.src?this._sceneModelLoader.load(this,e.src,i,e,t):this._sceneModelLoader.parse(this,e.gltf,i,e,t)};if(e.metaModelSrc){const t=e.metaModelSrc;this.viewer.scene.canvas.spinner.processes++,this._dataSource.getMetaModel(t,(e=>{this.viewer.scene.canvas.spinner.processes--,i(e)}),(e=>{this.error(`load(): Failed to load model metadata for model '${s} from '${t}' - ${e}`),this.viewer.scene.canvas.spinner.processes--}))}else e.metaModelJSON&&i(e.metaModelJSON)}else e.handleGLTFNode=(e,t,s)=>{const n=t.name;if(!n)return!0;const i=n;return s.createEntity={id:i,isObject:!0},!0},e.src?this._sceneModelLoader.load(this,e.src,null,e,t):this._sceneModelLoader.parse(this,e.gltf,null,e,t);return t.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(s)})),t}destroy(){super.destroy()}},exports.HalfFloatType=1016,exports.ImagePlane=class extends _{constructor(e,t={}){super(e,t),this._src=null,this._image=null,this._pos=h.vec3(),this._origin=h.vec3(),this._rtcPos=h.vec3(),this._dir=h.vec3(),this._size=1,this._imageSize=h.vec2(),this._texture=new gn(this),this._plane=new Vs(this,{geometry:new Nt(this,Rn({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0}),clippable:t.clippable}),this._grid=new Vs(this,{geometry:new Nt(this,Pn({size:1,divisions:10})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:t.clippable}),this._node=new an(this,{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[this._plane,this._grid]}),this._gridVisible=!1,this.visible=!0,this.gridVisible=t.gridVisible,this.position=t.position,this.rotation=t.rotation,this.dir=t.dir,this.size=t.size,this.collidable=t.collidable,this.clippable=t.clippable,this.pickable=t.pickable,this.opacity=t.opacity,t.image?this.image=t.image:this.src=t.src}set visible(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}get visible(){return this._plane.visible}set gridVisible(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}get gridVisible(){return this._gridVisible}set image(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}get image(){return this._image}set src(e){if(this._src=e,this._src){this._image=null;const e=new Image;e.onload=()=>{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set position(e){this._pos.set(e||[0,0,0]),j(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}get position(){return this._pos}set rotation(e){this._node.rotation=e}get rotation(){return this._node.rotation}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set dir(e){if(this._dir.set(e||[0,0,-1]),e){const t=this.scene.center,s=[-this._dir[0],-this._dir[1],-this._dir[2]];h.subVec3(t,this.position,uc);const n=-h.dotVec3(s,uc);h.normalizeVec3(s),h.mulVec3Scalar(s,n,hc),h.vec3PairToQuaternion(pc,e,Ac),this._node.quaternion=Ac}}get dir(){return this._dir}set collidable(e){this._node.collidable=!1!==e}get collidable(){return this._node.collidable}set clippable(e){this._node.clippable=!1!==e}get clippable(){return this._node.clippable}set pickable(e){this._node.pickable=!1!==e}get pickable(){return this._node.pickable}set opacity(e){this._node.opacity=e}get opacity(){return this._node.opacity}destroy(){super.destroy()}_updatePlaneSizeFromImage(){const e=this._size,t=this._imageSize[0],s=this._imageSize[1];if(t>s){const n=s/t;this._node.scale=[e,1,e*n]}else{const n=t/s;this._node.scale=[e*n,1,e]}}},exports.IntType=1013,exports.JPEGMediaType=10001,exports.KTX2TextureTranscoder=Lr,exports.LASLoaderPlugin=class extends H{constructor(e,t={}){super("lasLoader",e,t),this.dataSource=t.dataSource,this.skip=t.skip,this.fp64=t.fp64,this.colorDepth=t.colorDepth}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new uD}get skip(){return this._skip}set skip(e){this._skip=e||1}get fp64(){return this._fp64}set fp64(e){this._fp64=!!e}get colorDepth(){return this._colorDepth}set colorDepth(e){this._colorDepth=e||"auto"}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0}));if(!e.src&&!e.las)return this.error("load() param expected: src or las"),t;const s={las:{skip:this._skip,fp64:this._fp64,colorDepth:this._colorDepth}};if(e.src)this._loadModel(e.src,e,s,t);else{const n=this.viewer.scene.canvas.spinner;n.processes++,this._parseModel(e.las,e,s,t).then((()=>{n.processes--}),(e=>{n.processes--,this.error(e),t.fire("error",e)}))}return t}_loadModel(e,t,s,n){const i=this.viewer.scene.canvas.spinner;i.processes++,this._dataSource.getLAS(t.src,(e=>{this._parseModel(e,t,s,n).then((()=>{i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){function i(e){const s=e.value;if(t.rotateX&&s)for(let e=0,t=s.length;e{if(n.destroyed)return void o();const c=t.stats||{};c.sourceFormat="LAS",c.schemaVersion="",c.title="",c.author="",c.created="",c.numMetaObjects=0,c.numPropertySets=0,c.numObjects=0,c.numGeometries=0,c.numTriangles=0,c.numVertices=0;try{const c=dD(e);Tv(e,hD,s).then((e=>{const u=e.attributes,p=e.loaderData,A=void 0!==p.pointsFormatId?p.pointsFormatId:-1;if(!u.POSITION)return n.finalize(),void o("No positions found in file");let d,f;switch(A){case 0:d=i(u.POSITION),f=r(u.intensity);break;case 1:if(!u.intensity)return n.finalize(),void o("No positions found in file");d=i(u.POSITION),f=r(u.intensity);break;case 2:case 3:if(!u.intensity)return n.finalize(),void o("No positions found in file");d=i(u.POSITION),f=a(u.COLOR_0,u.intensity)}const I=yD(d,15e5),y=yD(f,2e6),m=[];for(let e=0,t=I.length;e{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))})),l()}))}catch(e){n.finalize(),o(e)}}))}},exports.LambertMaterial=rn,exports.LightMap=class extends yc{get type(){return"LightMap"}constructor(e,t={}){super(e,t),this.scene._lightMapCreated(this)}destroy(){super.destroy(),this.scene._lightMapDestroyed(this)}},exports.LineSet=Mo,exports.LinearEncoding=3e3,exports.LinearFilter=1006,exports.LinearMipMapLinearFilter=1008,exports.LinearMipMapNearestFilter=1007,exports.LinearMipmapLinearFilter=1008,exports.LinearMipmapNearestFilter=1007,exports.Loader=Br,exports.LoadingManager=Cr,exports.LocaleService=Jo,exports.LuminanceAlphaFormat=1025,exports.LuminanceFormat=1024,exports.Map=e,exports.Marker=ie,exports.MarqueePicker=F,exports.MarqueePickerMouseControl=class extends _{constructor(e){super(e.marqueePicker,e);const t=e.marqueePicker,s=t.viewer.scene.canvas.canvas;let n,i,a,r,l,o,c,u=!1,h=!1,p=!1;s.addEventListener("mousedown",(e=>{this.getActive()&&0===e.button&&(c=setTimeout((function(){const a=t.viewer.scene.input;a.keyDown[a.KEY_CTRL]||t.clear(),n=e.pageX,i=e.pageY,l=e.offsetX,t.setMarqueeCorner1([n,i]),u=!0,t.viewer.cameraControl.pointerEnabled=!1,t.setMarqueeVisible(!0),s.style.cursor="crosshair"}),400),h=!0)})),s.addEventListener("mouseup",(e=>{if(!this.getActive())return;if(!u&&!p)return;if(0!==e.button)return;clearTimeout(c),a=e.pageX,r=e.pageY;const s=Math.abs(a-n),l=Math.abs(r-i);u=!1,t.viewer.cameraControl.pointerEnabled=!0,p&&(p=!1),(s>3||l>3)&&t.pick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&0===e.button&&(clearTimeout(c),u&&(t.setMarqueeVisible(!1),u=!1,h=!1,p=!0,t.viewer.cameraControl.pointerEnabled=!0))}),!0),s.addEventListener("mousemove",(e=>{this.getActive()&&0===e.button&&h&&(clearTimeout(c),u&&(a=e.pageX,r=e.pageY,o=e.offsetX,t.setMarqueeVisible(!0),t.setMarqueeCorner2([a,r]),t.setPickMode(l{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var a=-1;function r(e){var t=[0,0];if(e){for(var s=e.target,n=0,i=0;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var l,o,c=null,u=null,p=!1,A=!1,d=.5;n._navCubeCanvas.addEventListener("mouseenter",n._onMouseEnter=function(e){A=!0}),n._navCubeCanvas.addEventListener("mouseleave",n._onMouseLeave=function(e){A=!1}),n._navCubeCanvas.addEventListener("mousedown",n._onMouseDown=function(e){if(1===e.which){c=e.x,u=e.y,l=e.clientX,o=e.clientY;var t=r(e),n=s.pick({canvasPos:t});p=!!n}}),document.addEventListener("mouseup",n._onMouseUp=function(e){if(1===e.which&&(p=!1,null!==c)){var t=r(e),l=s.pick({canvasPos:t,pickSurface:!0});if(l&&l.uv){var o=n._cubeTextureCanvas.getArea(l.uv);if(o>=0&&(document.body.style.cursor="pointer",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),o>=0)){if(n._cubeTextureCanvas.setAreaHighlighted(o,!0),a=o,n._repaint(),e.xc+3||e.yu+3)return;var h=n._cubeTextureCanvas.getAreaDir(o);if(h){var A=n._cubeTextureCanvas.getAreaUp(o);n._isProjectNorth&&n._projectNorthOffsetAngle&&(h=i(1,h,mE),A=i(1,A,vE)),f(h,A,(function(){a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),document.body.style.cursor="pointer",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),o>=0&&(n._cubeTextureCanvas.setAreaHighlighted(o,!1),a=-1,n._repaint())}))}}}}}),document.addEventListener("mousemove",n._onMouseMove=function(t){if(a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),1!==t.buttons||p){if(p){var i=t.clientX,c=t.clientY;return document.body.style.cursor="move",void function(t,s){var n=(t-l)*-d,i=(s-o)*-d;e.camera.orbitYaw(n),e.camera.orbitPitch(-i),l=t,o=s}(i,c)}if(A){var u=r(t),h=s.pick({canvasPos:u,pickSurface:!0});if(h){if(h.uv){document.body.style.cursor="pointer";var f=n._cubeTextureCanvas.getArea(h.uv);if(f===a)return;a>=0&&n._cubeTextureCanvas.setAreaHighlighted(a,!1),f>=0&&(n._cubeTextureCanvas.setAreaHighlighted(f,!0),n._repaint(),a=f)}}else document.body.style.cursor="default",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1)}}});var f=function(){var t=h.vec3();return function(s,i,a){var r=n._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,l=h.getAABB3Diag(r);h.getAABB3Center(r,t);var o=Math.abs(l/Math.tan(n._cameraFitFOV*h.DEGTORAD));e.cameraControl.pivotPos=t,n._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-o*s[0],t[1]-o*s[1],t[2]-o*s[2]],up:i||[0,1,0],orthoScale:1.1*l,fitFOV:n._cameraFitFOV,duration:n._cameraFlyDuration},a):e.cameraFlight.jumpTo({look:t,eye:[t[0]-o*s[0],t[1]-o*s[1],t[2]-o*s[2]],up:i||[0,1,0],orthoScale:1.1*l,fitFOV:n._cameraFitFOV},a)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}},exports.NearestFilter=1003,exports.NearestMipMapLinearFilter=1005,exports.NearestMipMapNearestFilter=1004,exports.NearestMipmapLinearFilter=1005,exports.NearestMipmapNearestFilter=1004,exports.Node=an,exports.OBJLoaderPlugin=class extends H{constructor(e,t){super("OBJLoader",e,t),this._sceneGraphLoader=new gE}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);var t=new an(this.viewer.scene,m.apply(e,{isModel:!0}));const s=t.id,n=e.src;if(!n)return this.error("load() param expected: src"),t;if(e.metaModelSrc){const i=e.metaModelSrc;m.loadJSON(i,(i=>{this.viewer.metaScene.createMetaModel(s,i),this._sceneGraphLoader.load(t,n,e)}),(e=>{this.error(`load(): Failed to load model modelMetadata for model '${s} from '${i}' - ${e}`)}))}else this._sceneGraphLoader.load(t,n,e);return t.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(s)})),t}destroy(){super.destroy()}},exports.ObjectsKdTree3=class{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const s=e.objects[t];this._insertEntity(this._root,s,1)}this._needsRebuild=!1}_insertEntity(e,t,s){const n=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&h.containsAABB3(e.left.aabb,n))return void this._insertEntity(e.left,t,s+1);if(e.right&&h.containsAABB3(e.right.aabb,n))return void this._insertEntity(e.right,t,s+1);const i=e.aabb;p[0]=i[3]-i[0],p[1]=i[4]-i[1],p[2]=i[5]-i[2];let a=0;if(p[1]>p[a]&&(a=1),p[2]>p[a]&&(a=2),!e.left){const r=i.slice();if(r[a+3]=(i[a]+i[a+3])/2,e.left={aabb:r},h.containsAABB3(r,n))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const r=i.slice();if(r[a]=(i[a]+i[a+3])/2,e.right={aabb:r},h.containsAABB3(r,n))return void this._insertEntity(e.right,t,s+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}},exports.ObjectsMemento=gc,exports.PNGMediaType=10002,exports.Path=class extends ec{constructor(e,t={}){super(e,t),this._cachedLengths=[],this._dirty=!0,this._curves=[],this._t=0,this._dirtySubs=[],this._destroyedSubs=[],this.curves=t.curves||[],this.t=t.t}addCurve(e){this._curves.push(e),this._dirty=!0}set curves(e){var t,s,n;for(e=e||[],s=0,n=this._curves.length;s1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}get length(){var e=this._getCurveLengths();return e[e.length-1]}getPoint(e){for(var t,s=e*this.length,n=this._getCurveLengths(),i=0;i=s){var a=1-(n[i]-s)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}_getCurveLengths(){if(!this._dirty)return this._cachedLengths;var e,t=[],s=0,n=this._curves.length;for(e=0;e{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=n.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Je({type:"point",pos:h.vec3([1,1,1]),color:h.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(s._shadowViewMatrixDirty){s._shadowViewMatrix||(s._shadowViewMatrix=h.identityMat4());const e=s._state.pos,t=n.look,i=n.up;h.lookAtMat4v(e,t,i,s._shadowViewMatrix),s._shadowViewMatrixDirty=!1}return s._shadowViewMatrix},getShadowProjMatrix:()=>{if(s._shadowProjMatrixDirty){s._shadowProjMatrix||(s._shadowProjMatrix=h.identityMat4());const e=s.scene.canvas.canvas;h.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,s._shadowProjMatrix),s._shadowProjMatrixDirty=!1}return s._shadowProjMatrix},getShadowRenderBuf:()=>(s._shadowRenderBuf||(s._shadowRenderBuf=new We(s.scene.canvas.canvas,s.scene.canvas.gl,{size:[1024,1024]})),s._shadowRenderBuf)}),this.pos=t.pos,this.color=t.color,this.intensity=t.intensity,this.constantAttenuation=t.constantAttenuation,this.linearAttenuation=t.linearAttenuation,this.quadraticAttenuation=t.quadraticAttenuation,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set pos(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get pos(){return this._state.pos}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set constantAttenuation(e){this._state.attenuation[0]=e||0,this.glRedraw()}get constantAttenuation(){return this._state.attenuation[0]}set linearAttenuation(e){this._state.attenuation[1]=e||0,this.glRedraw()}get linearAttenuation(){return this._state.attenuation[1]}set quadraticAttenuation(e){this._state.attenuation[2]=e||0,this.glRedraw()}get quadraticAttenuation(){return this._state.attenuation[2]}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}},exports.PointerLens=class{constructor(e,t={}){this.viewer=e,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=t.zoomLevel||2,this._active=!1!==t.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(()=>{this._active&&this._visible&&this.update()}))}update(){if(!this._active||!this._visible)return;if(!this._canvasPos)return;const e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),s=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",s&&(this._lensPosToggle?this._lensContainer.style.marginTop=t.bottom-t.top-this._lensCanvas.height-85+"px":this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);const n=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-n/2,this._canvasPos[1]-n/2,n,n,0,0,this._lensCanvas.width,this._lensCanvas.height);const i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){const e=this._snappedCanvasPos[0]-this._canvasPos[0],t=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft=i[0]+e*this._zoomLevel-10+"px",this._lensCursorDiv.style.marginTop=i[1]+t*this._zoomLevel-10+"px"}else this._lensCursorDiv.style.marginLeft=i[0]-10+"px",this._lensCursorDiv.style.marginTop=i[1]-10+"px"}set zoomFactor(e){this._zoomFactor=e,this.update()}get zoomFactor(){return this._zoomFactor}set canvasPos(e){this._canvasPos=e,this.update()}get canvasPos(){return this._canvasPos}set snappedCanvasPos(e){this._snappedCanvasPos=e,this.update()}get snappedCanvasPos(){return this._snappedCanvasPos}set snapped(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}get snapped(){return this._snapped}set active(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get active(){return this._active}set visible(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get visible(){return this._visible}destroy(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}},exports.QuadraticBezierCurve=class extends ec{constructor(e,t={}){super(e,t),this.v0=t.v0,this.v1=t.v1,this.v2=t.v2,this.t=t.t}set v0(e){this._v0=e||h.vec3([0,0,0])}get v0(){return this._v0}set v1(e){this._v1=e||h.vec3([0,0,0])}get v1(){return this._v1}set v2(e){this._v2=e||h.vec3([0,0,0])}get v2(){return this._v2}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=h.vec3();return t[0]=h.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=h.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=h.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}},exports.Queue=A,exports.RGBAFormat=1023,exports.RGBAIntegerFormat=1033,exports.RGBA_ASTC_10x10_Format=37819,exports.RGBA_ASTC_10x5_Format=37816,exports.RGBA_ASTC_10x6_Format=37817,exports.RGBA_ASTC_10x8_Format=37818,exports.RGBA_ASTC_12x10_Format=37820,exports.RGBA_ASTC_12x12_Format=37821,exports.RGBA_ASTC_4x4_Format=37808,exports.RGBA_ASTC_5x4_Format=37809,exports.RGBA_ASTC_5x5_Format=37810,exports.RGBA_ASTC_6x5_Format=37811,exports.RGBA_ASTC_6x6_Format=37812,exports.RGBA_ASTC_8x5_Format=37813,exports.RGBA_ASTC_8x6_Format=37814,exports.RGBA_ASTC_8x8_Format=37815,exports.RGBA_BPTC_Format=36492,exports.RGBA_ETC2_EAC_Format=37496,exports.RGBA_PVRTC_2BPPV1_Format=35843,exports.RGBA_PVRTC_4BPPV1_Format=35842,exports.RGBA_S3TC_DXT1_Format=33777,exports.RGBA_S3TC_DXT3_Format=33778,exports.RGBA_S3TC_DXT5_Format=33779,exports.RGBFormat=1022,exports.RGB_ETC1_Format=36196,exports.RGB_ETC2_Format=37492,exports.RGB_PVRTC_2BPPV1_Format=35841,exports.RGB_PVRTC_4BPPV1_Format=35840,exports.RGB_S3TC_DXT1_Format=33776,exports.RGFormat=1030,exports.RGIntegerFormat=1031,exports.ReadableGeometry=Nt,exports.RedFormat=1028,exports.RedIntegerFormat=1029,exports.ReflectionMap=class extends yc{get type(){return"ReflectionMap"}constructor(e,t={}){super(e,t),this.scene._lightsState.addReflectionMap(this._state),this.scene._reflectionMapCreated(this)}destroy(){super.destroy(),this.scene._reflectionMapDestroyed(this)}},exports.RepeatWrapping=1e3,exports.STLDefaultDataSource=zE,exports.STLLoaderPlugin=class extends H{constructor(e,t={}){super("STLLoader",e,t),this._sceneGraphLoader=new YE,this.dataSource=t.dataSource}set dataSource(e){this._dataSource=e||new zE}get dataSource(){return this._dataSource}load(e){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new an(this.viewer.scene,m.apply(e,{isModel:!0})),s=e.src,n=e.stl;return s||n?(s?this._sceneGraphLoader.load(this,t,s,e):this._sceneGraphLoader.parse(this,t,n,e),t):(this.error("load() param expected: either 'src' or 'stl'"),t)}},exports.SceneModel=xo,exports.SceneModelMesh=Nn,exports.SceneModelTransform=Do,exports.SectionPlane=Ys,exports.SectionPlanesPlugin=class extends H{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new SE(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;NE.set(this.viewer.scene.aabb),h.getAABB3Center(NE,xE),NE[0]+=t[0]-xE[0],NE[1]+=t[1]-xE[1],NE[2]+=t[2]-xE[2],NE[3]+=t[0]-xE[0],NE[4]+=t[1]-xE[1],NE[5]+=t[2]-xE[2],this.viewer.cameraFlight.flyTo({aabb:NE,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new Ys(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new BE(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,s=e.length;t{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set collidable(e){this._mesh.collidable=!1!==e}get collidable(){return this._mesh.collidable}set clippable(e){this._mesh.clippable=!1!==e}get clippable(){return this._mesh.clippable}set pickable(e){this._mesh.pickable=!1!==e}get pickable(){return this._mesh.pickable}set opacity(e){this._mesh.opacity=e}get opacity(){return this._mesh.opacity}_updatePlaneSizeFromImage(){const e=.5*this._size,t=this._imageSize[0],s=this._imageSize[1],n=s/t;this._geometry.positions=t>s?[e,e*n,0,-e,e*n,0,-e,-e*n,0,e,-e*n,0]:[e/n,e,0,-e/n,e,0,-e/n,-e,0,e/n,-e,0]}},exports.StoreyViewsPlugin=class extends H{constructor(e,t={}){super("StoreyViews",e),this._objectsMemento=new gc,this._cameraMemento=new mc,this.storeys={},this.modelStoreys={},this._fitStoreyMaps=!!t.fitStoreyMaps,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._registerModelStoreys(e),this.fire("storeys",this.storeys)}))}_registerModelStoreys(e){const t=this.viewer,s=t.scene,n=t.metaScene,i=n.metaModels[e],a=s.models[e];if(!i||!i.rootMetaObjects)return;const r=i.rootMetaObjects;for(let t=0,i=r.length;t.5?l.length:0,u=new LE(this,a.aabb,o,e,r,c);u._onModelDestroyed=a.once("destroyed",(()=>{this._deregisterModelStoreys(e),this.fire("storeys",this.storeys)})),this.storeys[r]=u,this.modelStoreys[e]||(this.modelStoreys[e]={}),this.modelStoreys[e][r]=u}}}_deregisterModelStoreys(e){const t=this.modelStoreys[e];if(t){const s=this.viewer.scene;for(let e in t)if(t.hasOwnProperty(e)){const n=t[e],i=s.models[n.modelId];i&&i.off(n._onModelDestroyed),delete this.storeys[e]}delete this.modelStoreys[e]}}get fitStoreyMaps(){return this._fitStoreyMaps}gotoStoreyCamera(e,t={}){const s=this.storeys[e];if(!s)return this.error("IfcBuildingStorey not found with this ID: "+e),void(t.done&&t.done());const n=this.viewer,i=n.scene.camera,a=s.storeyAABB;if(a[3]{t.done()})):(n.cameraFlight.jumpTo(m.apply(t,{eye:u,look:r,up:p,orthoScale:c})),n.camera.ortho.scale=c)}showStoreyObjects(e,t={}){if(!this.storeys[e])return void this.error("IfcBuildingStorey not found with this ID: "+e);const s=this.viewer,n=s.scene;s.metaScene.metaObjects[e]&&(t.hideOthers&&n.setObjectsVisible(s.scene.visibleObjectIds,!1),this.withStoreyObjects(e,((e,t)=>{e&&(e.visible=!0)})))}withStoreyObjects(e,t){const s=this.viewer,n=s.scene,i=s.metaScene,a=i.metaObjects[e];if(!a)return;const r=a.getObjectIDsInSubtree();for(var l=0,o=r.length;lp[1]&&p[0]>p[2],d=!A&&p[1]>p[0]&&p[1]>p[2];!A&&!d&&p[2]>p[0]&&(p[2],p[1]);const f=e.width/c,I=d?e.height/h:e.height/u;return s[0]=Math.floor(e.width-(t[0]-r)*f),s[1]=Math.floor(e.height-(t[2]-o)*I),s[0]>=0&&s[0]=0&&s[1]<=e.height}worldDirToStoreyMap(e,t,s){const n=this.viewer.camera,i=n.eye,a=n.look,r=h.subVec3(a,i,FE),l=n.worldUp,o=l[0]>l[1]&&l[0]>l[2],c=!o&&l[1]>l[0]&&l[1]>l[2];!o&&!c&&l[2]>l[0]&&(l[2],l[1]),o?(s[0]=r[1],s[1]=r[2]):c?(s[0]=r[0],s[1]=r[2]):(s[0]=r[0],s[1]=r[1]),h.normalizeVec2(s)}destroy(){this.viewer.scene.off(this._onModelLoaded),super.destroy()}},exports.Texture=gn,exports.TextureTranscoder=class{transcode(e,t,s={}){}destroy(){}},exports.TreeViewPlugin=class extends H{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const s=t.containerElement||document.getElementById(t.containerElementId);if(s instanceof HTMLElement){for(let e=0;;e++)if(!tT[e]){tT[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=s,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._pruneEmptyNodes=!1!==t.pruneEmptyNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootName=t.rootName,this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,s=this._objectNodes[t];if(!s)return;const n=e.visible;if(!(n!==s.checked))return;this._muteTreeEvents=!0,s.checked=n,n?s.numVisibleEntities++:s.numVisibleEntities--;const i=document.getElementById(`checkbox-${s.nodeId}`);i&&(i.checked=n);let a=s.parent;for(;a;){a.checked=n,n?a.numVisibleEntities++:a.numVisibleEntities--;const e=document.getElementById(`checkbox-${a.nodeId}`);if(e){const t=a.numVisibleEntities>0;t!==e.checked&&(e.checked=t)}a=a.parent}this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,s=this._objectNodes[t];if(!s)return;this._muteTreeEvents=!0;const n=e.xrayed;if(!(n!==s.xrayed))return;s.xrayed=n;const i=s.nodeId,a=document.getElementById(i);null!==a&&(n?a.classList.add("xrayed-node"):a.classList.remove("xrayed-node")),this._muteTreeEvents=!1})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,s=t.checked,n=t.id.replace("checkbox-",""),i=this._nodeNodes[n],a=this._viewer.scene.objects;let r=0;this._withNodeTree(i,(e=>{const t=e.objectId,n=`checkbox-${e.nodeId}`,i=a[t],l=0===e.children.length;e.numVisibleEntities=s?e.numEntities:0,l&&s!==e.checked&&r++,e.checked=s;const o=document.getElementById(n);o&&(o.checked=s),i&&(i.visible=s)}));let l=i.parent;for(;l;){l.checked=s;const e=document.getElementById(`checkbox-${l.nodeId}`);s?l.numVisibleEntities+=r:l.numVisibleEntities-=r;const t=l.numVisibleEntities>0;t!==e.checked&&(e.checked=t),l=l.parent}this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,s=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const s=this.viewer.scene.models[e];if(!s)throw"Model not found: "+e;const n=this.viewer.metaScene.metaModels[e];n?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=n,s.on("destroyed",(()=>{this.removeModel(s.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(delete this._metaModels[e],this._createNodes())}showNode(e){this._showListItemElementId&&this.unShowNode();const t=this._objectNodes[e];if(!t)return;const s=t.nodeId,n="switch-"+s,i=document.getElementById(n);if(i)return this._expandSwitchElement(i),void i.scrollIntoView();const a=[];a.unshift(t);let r=t.parent;for(;r;)a.unshift(r),r=r.parent;for(let e=0,t=a.length;e{if(n===e)return;const i="switch-"+s.nodeId,a=document.getElementById(i);if(a){this._expandSwitchElement(a);const e=s.children;for(var r=0,l=e.length;r0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,s){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=document.createElement("ul");this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let s in t){const n=t[s],i=n.type,a=n.name,r=a&&""!==a&&"Undefined"!==a&&"Default"!==a?a:i,l=document.createElement("li");e.appendChild(l);const o=document.createElement("a");o.href="#",o.textContent="!",o.classList.add("warn"),o.classList.add("warning"),l.appendChild(o);const c=document.createElement("span");c.textContent=r,l.appendChild(c)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const s=this.viewer.scene,n=e.children,i=e.id,a=s.objects[i];if(e._countEntities=0,a&&e._countEntities++,n)for(let t=0,s=n.length;t{e.aabb&&i.aabb||(e.aabb||(e.aabb=t.getAABB(n.getObjectIDsInSubtree(e.objectId))),i.aabb||(i.aabb=t.getAABB(n.getObjectIDsInSubtree(i.objectId))));let a=0;return a=s.xUp?0:s.yUp?1:2,e.aabb[a]>i.aabb[a]?-1:e.aabb[a]n?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,s=this._viewer.scene.objects;for(let n=0,i=e.length;nthis._createNodeElement(e))),t=document.createElement("ul");e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){const t=document.createElement("li"),s=e.nodeId;if(e.xrayed&&t.classList.add("xrayed-node"),t.id=s,e.children.length>0){const e="switch-"+s,n=document.createElement("a");n.href="#",n.id=e,n.textContent="+",n.classList.add("plus"),n.addEventListener("click",this._switchExpandHandler),t.appendChild(n)}const n=document.createElement("input");n.id=`checkbox-${s}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",n.addEventListener("change",this._checkboxChangeHandler),t.appendChild(n);const i=document.createElement("span");return i.textContent=e.title,t.appendChild(i),i.oncontextmenu=t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()},i.onclick=t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()},t}_expandSwitchElement(e){const t=e.parentElement;if(t.getElementsByTagName("li")[0])return;const s=t.id,n=this._nodeNodes[s].children.map((e=>this._createNodeElement(e))),i=document.createElement("ul");n.forEach((e=>{i.appendChild(e)})),t.appendChild(i),e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",this._switchExpandHandler),e.addEventListener("click",this._switchCollapseHandler)}_collapseNode(e){const t="switch-"+e,s=document.getElementById(t);this._collapseSwitchElement(s)}_collapseSwitchElement(e){if(!e)return;const t=e.parentElement;if(!t)return;const s=t.querySelector("ul");s&&(t.removeChild(s),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",this._switchCollapseHandler),e.addEventListener("click",this._switchExpandHandler))}},exports.UnsignedByteType=1009,exports.UnsignedInt248Type=1020,exports.UnsignedIntType=1014,exports.UnsignedShort4444Type=1017,exports.UnsignedShort5551Type=1018,exports.UnsignedShortType=1012,exports.VBOGeometry=bn,exports.ViewCullPlugin=class extends H{constructor(e,t={}){super("ViewCull",e),this._objectCullStates=function(e){const t=e.id;let s=nT[t];return s||(s=new sT(e),nT[t]=s,e.on("destroyed",(()=>{delete nT[t],s._destroy()}))),s}(e.scene),this._maxTreeDepth=t.maxTreeDepth||8,this._modelInfos={},this._frustum=new x,this._kdRoot=null,this._frustumDirty=!1,this._kdTreeDirty=!1,this._onViewMatrix=e.scene.camera.on("viewMatrix",(()=>{this._frustumDirty=!0})),this._onProjMatrix=e.scene.camera.on("projMatMatrix",(()=>{this._frustumDirty=!0})),this._onModelLoaded=e.scene.on("modelLoaded",(e=>{const t=this.viewer.scene.models[e];t&&this._addModel(t)})),this._onSceneTick=e.scene.on("tick",(()=>{this._doCull()}))}set enabled(e){this._enabled=e}get enabled(){return this._enabled}_addModel(e){const t={model:e,onDestroyed:e.on("destroyed",(()=>{this._removeModel(e)}))};this._modelInfos[e.id]=t,this._kdTreeDirty=!0}_removeModel(e){const t=this._modelInfos[e.id];t&&(t.model.off(t.onDestroyed),delete this._modelInfos[e.id],this._kdTreeDirty=!0)}_doCull(){const e=this._frustumDirty||this._kdTreeDirty;if(this._frustumDirty&&this._buildFrustum(),this._kdTreeDirty&&this._buildKDTree(),e){const e=this._kdRoot;e&&this._visitKDNode(e)}}_buildFrustum(){const e=this.viewer.scene.camera;L(this._frustum,e.viewMatrix,e.projMatrix),this._frustumDirty=!1}_buildKDTree(){const e=this.viewer.scene;this._kdRoot,this._kdRoot={aabb:e.getAABB(),intersection:x.INTERSECT};for(let e=0,t=this._objectCullStates.numObjects;e=this._maxTreeDepth)return e.objects=e.objects||[],e.objects.push(s),void h.expandAABB3(e.aabb,i);if(e.left&&h.containsAABB3(e.left.aabb,i))return void this._insertEntityIntoKDTree(e.left,t,s,n+1);if(e.right&&h.containsAABB3(e.right.aabb,i))return void this._insertEntityIntoKDTree(e.right,t,s,n+1);const a=e.aabb;iT[0]=a[3]-a[0],iT[1]=a[4]-a[1],iT[2]=a[5]-a[2];let r=0;if(iT[1]>iT[r]&&(r=1),iT[2]>iT[r]&&(r=2),!e.left){const l=a.slice();if(l[r+3]=(a[r]+a[r+3])/2,e.left={aabb:l,intersection:x.INTERSECT},h.containsAABB3(l,i))return void this._insertEntityIntoKDTree(e.left,t,s,n+1)}if(!e.right){const l=a.slice();if(l[r]=(a[r]+a[r+3])/2,e.right={aabb:l,intersection:x.INTERSECT},h.containsAABB3(l,i))return void this._insertEntityIntoKDTree(e.right,t,s,n+1)}e.objects=e.objects||[],e.objects.push(s),h.expandAABB3(e.aabb,i)}_visitKDNode(e,t=x.INTERSECT){if(t!==x.INTERSECT&&e.intersects===t)return;t===x.INTERSECT&&(t=M(this._frustum,e.aabb),e.intersects=t);const s=t===x.OUTSIDE,n=e.objects;if(n&&n.length>0)for(let e=0,t=n.length;ee.endsWith(".wasm")?this.isWasmPathAbsolute?this.wasmPath+e:t+this.wasmPath+e:t+e;this.wasmModule=yield lD({noInitialRun:!0,locateFile:e||t})}else oD.error("Could not find wasm module at './web-ifc' from web-ifc-api.ts")}))}OpenModels(e,t){let s=vb({MEMORY_LIMIT:3221225472},t);s.MEMORY_LIMIT=s.MEMORY_LIMIT/e.length;let n=[];for(let t of e)n.push(this.OpenModel(t,s));return n}CreateSettings(e){let t=vb({COORDINATE_TO_ORIGIN:!1,CIRCLE_SEGMENTS:12,TAPE_SIZE:67108864,MEMORY_LIMIT:3221225472},e),s=["USE_FAST_BOOLS","CIRCLE_SEGMENTS_LOW","CIRCLE_SEGMENTS_MEDIUM","CIRCLE_SEGMENTS_HIGH"];for(let e in s)e in t&&oD.info("Use of deprecated settings "+e+" detected");return t}OpenModel(e,t){let s=this.CreateSettings(t),n=this.wasmModule.OpenModel(s,((t,s,n)=>{let i=Math.min(e.byteLength-s,n),a=this.wasmModule.HEAPU8.subarray(t,t+i),r=e.subarray(s,s+i);return a.set(r),i}));var i=this.GetHeaderLine(n,1109904537).arguments[0][0].value;return this.modelSchemaList[n]=eD.indexOf(i),-1==this.modelSchemaList[n]?(oD.error("Unsupported Schema:"+i),this.CloseModel(n),-1):(oD.info("Parsing Model using "+i+" Schema"),n)}GetModelSchema(e){return eD[this.modelSchemaList[e]]}CreateModel(e,t){var s,n,i;let a=this.CreateSettings(t),r=this.wasmModule.CreateModel(a);this.modelSchemaList[r]=eD.indexOf(e.schema);const l=e.name||"web-ifc-model-"+r+".ifc",o=(new Date).toISOString().slice(0,19),c=(null==(s=e.description)?void 0:s.map((e=>({type:1,value:e}))))||[{type:1,value:"ViewDefinition [CoordinationView]"}],u=(null==(n=e.authors)?void 0:n.map((e=>({type:1,value:e}))))||[null],h=(null==(i=e.organizations)?void 0:i.map((e=>({type:1,value:e}))))||[null],p=e.authorization?{type:1,value:e.authorization}:null;return this.wasmModule.WriteHeaderLine(r,599546466,[c,{type:1,value:"2;1"}]),this.wasmModule.WriteHeaderLine(r,1390159747,[{type:1,value:l},{type:1,value:o},u,h,{type:1,value:"ifcjs/web-ifc-api"},{type:1,value:"ifcjs/web-ifc-api"},p]),this.wasmModule.WriteHeaderLine(r,1109904537,[[{type:1,value:e.schema}]]),r}SaveModel(e){let t=this.wasmModule.GetModelSize(e),s=new Uint8Array(t+512),n=0;this.wasmModule.SaveModel(e,((e,t)=>{let i=this.wasmModule.HEAPU8.subarray(e,e+t);n=t,s.set(i,0)}));let i=new Uint8Array(n);return i.set(s.subarray(0,n),0),i}ExportFileAsIFC(e){return oD.warn("ExportFileAsIFC is deprecated, use SaveModel instead"),this.SaveModel(e)}GetGeometry(e,t){return this.wasmModule.GetGeometry(e,t)}GetHeaderLine(e,t){return this.wasmModule.GetHeaderLine(e,t)}GetAllTypesOfModel(e){let t=[];const s=Object.keys(Yb[this.modelSchemaList[e]]).map((e=>parseInt(e)));for(let n=0;n0&&t.push({typeID:s[n],typeName:this.wasmModule.GetNameFromTypeCode(s[n])});return t}GetLine(e,t,s=!1,n=!1){if(!this.wasmModule.ValidateExpressID(e,t))return;let i=this.GetRawLineData(e,t),a=Yb[this.modelSchemaList[e]][i.type](i.ID,i.arguments);s&&this.FlattenLine(e,a);let r=Xb[this.modelSchemaList[e]][i.type];if(n&&null!=r)for(let n of r){n[3]?a[n[0]]=[]:a[n[0]]=null;let i=[n[1]];void 0!==qb[this.modelSchemaList[e]][n[1]]&&(i=i.concat(qb[this.modelSchemaList[e]][n[1]]));let r=this.wasmModule.GetInversePropertyForItem(e,t,i,n[2],n[3]);if(!n[3]&&r.size()>0)a[n[0]]=s?this.GetLine(e,r.get(0)):{type:5,value:r.get(0)};else for(let t=0;tparseInt(e)))}WriteLine(e,t){let s;for(s in t){const n=t[s];if(n&&void 0!==n.expressID)this.WriteLine(e,n),t[s]=new zb(n.expressID);else if(Array.isArray(n)&&n.length>0)for(let i=0;i{let n=t[s];if(n&&5===n.type)n.value&&(t[s]=this.GetLine(e,n.value,!0));else if(Array.isArray(n)&&n.length>0&&5===n[0].type)for(let i=0;i{this.fire("initialized",!0,!1)})).catch((e=>{this.error(e)}))}get supportedVersions(){return["2x3","4"]}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new cD}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||IE}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0}));if(!e.src&&!e.ifc)return this.error("load() param expected: src or IFC"),t;const s={autoNormals:!0};if(!1!==e.loadMetadata){const t=e.includeTypes||this._includeTypes,n=e.excludeTypes||this._excludeTypes,i=e.objectDefaults||this._objectDefaults;if(t){s.includeTypesMap={};for(let e=0,n=t.length;e{try{e.src?this._loadModel(e.src,e,s,t):this._parseModel(e.ifc,e,s,t)}catch(e){this.error(e),t.fire("error",e)}})),t}_loadModel(e,t,s,n){const i=this.viewer.scene.canvas.spinner;i.processes++,this._dataSource.getIFC(t.src,(e=>{this._parseModel(e,t,s,n),i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){if(n.destroyed)return;const i=t.stats||{};i.sourceFormat="IFC",i.schemaVersion="",i.title="",i.author="",i.created="",i.numMetaObjects=0,i.numPropertySets=0,i.numObjects=0,i.numGeometries=0,i.numTriangles=0,i.numVertices=0,s.wasmPath&&this._ifcAPI.SetWasmPath(s.wasmPath);const a=new Uint8Array(e),r=this._ifcAPI.OpenModel(a),l=this._ifcAPI.GetLineIDsWithType(r,103090709).get(0),o=!1!==t.loadMetadata,c={modelID:r,sceneModel:n,loadMetadata:o,metadata:o?{id:"",projectId:""+l,author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[],propertySets:[]}:null,metaObjects:{},options:s,log:function(e){},nextId:0,stats:i};if(o){if(s.includeTypes){c.includeTypes={};for(let e=0,t=s.includeTypes.length;e{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))}))}_parseMetaObjects(e){const t=this._ifcAPI.GetLineIDsWithType(e.modelID,103090709).get(0),s=this._ifcAPI.GetLine(e.modelID,t);this._parseSpatialChildren(e,s)}_parseSpatialChildren(e,t,s){const n=t.__proto__.constructor.name;if(e.includeTypes&&!e.includeTypes[n])return;if(e.excludeTypes&&e.excludeTypes[n])return;this._createMetaObject(e,t,s);const i=t.GlobalId.value;this._parseRelatedItemsOfType(e,t.expressID,"RelatingObject","RelatedObjects",160246688,i),this._parseRelatedItemsOfType(e,t.expressID,"RelatingStructure","RelatedElements",3242617779,i)}_createMetaObject(e,t,s){const n=t.GlobalId.value,i=t.__proto__.constructor.name,a={id:n,name:t.Name&&""!==t.Name.value?t.Name.value:i,type:i,parent:s};e.metadata.metaObjects.push(a),e.metaObjects[n]=a,e.stats.numMetaObjects++}_parseRelatedItemsOfType(e,t,s,n,i,a){const r=this._ifcAPI.GetLineIDsWithType(e.modelID,i);for(let i=0;ie.value)).includes(t)}else u=c.value===t;if(u){const t=o[n];if(Array.isArray(t))t.forEach((t=>{const s=this._ifcAPI.GetLine(e.modelID,t.value);this._parseSpatialChildren(e,s,a)}));else{const s=this._ifcAPI.GetLine(e.modelID,t.value);this._parseSpatialChildren(e,s,a)}}}}_parsePropertySets(e){const t=this._ifcAPI.GetLineIDsWithType(e.modelID,4186316022);for(let s=0;s0){const a="Default",r=t.Name.value,l=[];for(let e=0,t=n.length;e{const s=t.expressID,n=t.geometries,i=[],a=this._ifcAPI.GetLine(e.modelID,s).GlobalId.value;if(e.loadMetadata){const t=a,s=e.metaObjects[t];if(e.includeTypes&&(!s||!e.includeTypes[s.type]))return;if(e.excludeTypes&&(!s||e.excludeTypes[s.type]))return}const r=h.mat4(),l=h.vec3();for(let t=0,s=n.size();t{a.finalize(),l.finalize(),this.viewer.scene.canvas.spinner.processes--,a.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(l.id)})),a.scene.once("tick",(()=>{a.destroyed||(a.scene.fire("modelLoaded",a.id),a.fire("loaded",!0,!1))}))},c=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),a.fire("error",e)};let u=0;const h={getNextId:()=>`${r}.${u++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const i=e.metaModelSrc;this._dataSource.getMetaModel(i,(i=>{a.destroyed||(l.loadData(i,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,a,null,h,o,c):(this._parseModel(e.xkt,e,t,a,null,h),o()))}),(e=>{c(`load(): Failed to load model metadata for model '${r} from '${i}' - ${e}`)}))}else e.metaModelData&&(l.loadData(e.metaModelData,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,a,null,h,o,c):(this._parseModel(e.xkt,e,t,a,null,h),o()));else if(e.src)this._loadModel(e.src,e,t,a,l,h,o,c);else if(e.xkt)this._parseModel(e.xkt,e,t,a,l,h),o();else if(e.manifestSrc||e.manifest){const i=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",r=(e,a,r)=>{let o=0;const c=()=>{o>=e.length?a():this._dataSource.getMetaModel(`${i}${e[o]}`,(e=>{l.loadData(e,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),o++,this.viewer.scene.once("tick",c)}),r)};c()},u=(s,n,r)=>{let o=0;const c=()=>{o>=s.length?n():this._dataSource.getXKT(`${i}${s[o]}`,(s=>{this._parseModel(s,e,t,a,l,h),o++,this.viewer.scene.once("tick",c)}),r)};c()};if(e.manifest){const t=e.manifest,s=t.xktFiles;if(!s||0===s.length)return void c("load(): Failed to load model manifest - manifest not valid");const n=t.metaModelFiles;n?r(n,(()=>{u(s,o,c)}),c):u(s,o,c)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(a.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void c("load(): Failed to load model manifest - manifest not valid");const s=e.metaModelFiles;s?r(s,(()=>{u(t,o,c)}),c):u(t,o,c)}),c)}return a}_loadModel(e,t,s,n,i,a,r,l){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,s,n,i,a),r()}),l)}_parseModel(e,t,s,n,i,a){if(n.destroyed)return;const r=new DataView(e),l=new Uint8Array(e),o=r.getUint32(0,!0),c=zT[o];if(!c)return void this.error("Unsupported .XKT file version: "+o+" - this XKTLoaderPlugin supports versions "+Object.keys(zT));this.log("Loading .xkt V"+o);const u=r.getUint32(4,!0),h=[];let p=4*(u+2);for(let e=0;e0?l:null,autoNormals:0===l.length,uv:o,indices:c}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,n()}))}))},exports.math=h,exports.rtcToWorldPos=function(e,t,s){return s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s},exports.sRGBEncoding=3001,exports.setFrustum=L,exports.stats=d,exports.utils=m,exports.worldToRTCPos=j,exports.worldToRTCPositions=V; +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).pako={})}(void 0,(function(e){function t(e){let t=e.length;for(;--t>=0;)e[t]=0}const s=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),n=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),i=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),a=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r=new Array(576);t(r);const l=new Array(60);t(l);const o=new Array(512);t(o);const c=new Array(256);t(c);const u=new Array(29);t(u);const h=new Array(30);function p(e,t,s,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let A,d,f;function I(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(h);const y=e=>e<256?o[e]:o[256+(e>>>7)],m=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,s)=>{e.bi_valid>16-s?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=s-16):(e.bi_buf|=t<{v(e,s[2*t],s[2*t+1])},g=(e,t)=>{let s=0;do{s|=1&e,e>>>=1,s<<=1}while(--t>0);return s>>>1},E=(e,t,s)=>{const n=new Array(16);let i,a,r=0;for(i=1;i<=15;i++)r=r+s[i-1]<<1,n[i]=r;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=g(n[t]++,t))}},T=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},b=e=>{e.bi_valid>8?m(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},D=(e,t,s,n)=>{const i=2*t,a=2*s;return e[i]{const n=e.heap[s];let i=s<<1;for(;i<=e.heap_len&&(i{let a,r,l,o,p=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+p++],a+=(255&e.pending_buf[e.sym_buf+p++])<<8,r=e.pending_buf[e.sym_buf+p++],0===a?w(e,r,t):(l=c[r],w(e,l+256+1,t),o=s[l],0!==o&&(r-=u[l],v(e,r,o)),a--,l=y(a),w(e,l,i),o=n[l],0!==o&&(a-=h[l],v(e,a,o)))}while(p{const s=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let r,l,o,c=-1;for(e.heap_len=0,e.heap_max=573,r=0;r>1;r>=1;r--)P(e,s,r);o=a;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],P(e,s,1),l=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=l,s[2*o]=s[2*r]+s[2*l],e.depth[o]=(e.depth[r]>=e.depth[l]?e.depth[r]:e.depth[l])+1,s[2*r+1]=s[2*l+1]=o,e.heap[1]=o++,P(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const s=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,r=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,o=t.stat_desc.max_length;let c,u,h,p,A,d,f=0;for(p=0;p<=15;p++)e.bl_count[p]=0;for(s[2*e.heap[e.heap_max]+1]=0,c=e.heap_max+1;c<573;c++)u=e.heap[c],p=s[2*s[2*u+1]+1]+1,p>o&&(p=o,f++),s[2*u+1]=p,u>n||(e.bl_count[p]++,A=0,u>=l&&(A=r[u-l]),d=s[2*u],e.opt_len+=d*(p+A),a&&(e.static_len+=d*(i[2*u+1]+A)));if(0!==f){do{for(p=o-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[o]--,f-=2}while(f>0);for(p=o;0!==p;p--)for(u=e.bl_count[p];0!==u;)h=e.heap[--c],h>n||(s[2*h+1]!==p&&(e.opt_len+=(p-s[2*h+1])*s[2*h],s[2*h+1]=p),u--)}})(e,t),E(s,c,e.bl_count)},_=(e,t,s)=>{let n,i,a=-1,r=t[1],l=0,o=7,c=4;for(0===r&&(o=138,c=3),t[2*(s+1)+1]=65535,n=0;n<=s;n++)i=r,r=t[2*(n+1)+1],++l{let n,i,a=-1,r=t[1],l=0,o=7,c=4;for(0===r&&(o=138,c=3),n=0;n<=s;n++)if(i=r,r=t[2*(n+1)+1],!(++l{v(e,0+(n?1:0),3),b(e),m(e,s),m(e,~s),s&&e.pending_buf.set(e.window.subarray(t,t+s),e.pending),e.pending+=s};var N={_tr_init:e=>{O||((()=>{let e,t,a,I,y;const m=new Array(16);for(a=0,I=0;I<28;I++)for(u[I]=a,e=0;e<1<>=7;I<30;I++)for(h[I]=y<<7,e=0;e<1<{let i,o,c=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,s=4093624447;for(t=0;t<=31;t++,s>>>=1)if(1&s&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),C(e,e.l_desc),C(e,e.d_desc),c=(e=>{let t;for(_(e,e.dyn_ltree,e.l_desc.max_code),_(e,e.dyn_dtree,e.d_desc.max_code),C(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*a[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=s+5,s+4<=i&&-1!==t?S(e,t,s,n):4===e.strategy||o===i?(v(e,2+(n?1:0),3),R(e,r,l)):(v(e,4+(n?1:0),3),((e,t,s,n)=>{let i;for(v(e,t-257,5),v(e,s-1,5),v(e,n-4,4),i=0;i(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=s,0===t?e.dyn_ltree[2*s]++:(e.matches++,t--,e.dyn_ltree[2*(c[s]+256+1)]++,e.dyn_dtree[2*y(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),w(e,256,r),(e=>{16===e.bi_valid?(m(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},x=(e,t,s,n)=>{let i=65535&e|0,a=e>>>16&65535|0,r=0;for(;0!==s;){r=s>2e3?2e3:s,s-=r;do{i=i+t[n++]|0,a=a+i|0}while(--r);i%=65521,a%=65521}return i|a<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var s=0;s<256;s++){e=s;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t})());var M=(e,t,s,n)=>{const i=L,a=n+s;e^=-1;for(let s=n;s>>8^i[255&(e^t[s])];return-1^e},F={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:U,_tr_stored_block:G,_tr_flush_block:j,_tr_tally:V,_tr_align:k}=N,{Z_NO_FLUSH:Q,Z_PARTIAL_FLUSH:W,Z_FULL_FLUSH:z,Z_FINISH:K,Z_BLOCK:Y,Z_OK:X,Z_STREAM_END:q,Z_STREAM_ERROR:J,Z_DATA_ERROR:Z,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:se,Z_RLE:ne,Z_FIXED:ie,Z_DEFAULT_STRATEGY:ae,Z_UNKNOWN:re,Z_DEFLATED:le}=H,oe=258,ce=262,ue=42,he=113,pe=666,Ae=(e,t)=>(e.msg=F[t],t),de=e=>2*e-(e>4?9:0),fe=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Ie=e=>{let t,s,n,i=e.w_size;t=e.hash_size,n=t;do{s=e.head[--n],e.head[n]=s>=i?s-i:0}while(--t);t=i,n=t;do{s=e.prev[--n],e.prev[n]=s>=i?s-i:0}while(--t)};let ye=(e,t,s)=>(t<{const t=e.state;let s=t.pending;s>e.avail_out&&(s=e.avail_out),0!==s&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+s),e.next_out),e.next_out+=s,t.pending_out+=s,e.total_out+=s,e.avail_out-=s,t.pending-=s,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{j(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,me(e.strm)},we=(e,t)=>{e.pending_buf[e.pending++]=t},ge=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ee=(e,t,s,n)=>{let i=e.avail_in;return i>n&&(i=n),0===i?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),s),1===e.state.wrap?e.adler=x(e.adler,t,i,s):2===e.state.wrap&&(e.adler=M(e.adler,t,i,s)),e.next_in+=i,e.total_in+=i,i)},Te=(e,t)=>{let s,n,i=e.max_chain_length,a=e.strstart,r=e.prev_length,l=e.nice_match;const o=e.strstart>e.w_size-ce?e.strstart-(e.w_size-ce):0,c=e.window,u=e.w_mask,h=e.prev,p=e.strstart+oe;let A=c[a+r-1],d=c[a+r];e.prev_length>=e.good_match&&(i>>=2),l>e.lookahead&&(l=e.lookahead);do{if(s=t,c[s+r]===d&&c[s+r-1]===A&&c[s]===c[a]&&c[++s]===c[a+1]){a+=2,s++;do{}while(c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&c[++a]===c[++s]&&ar){if(e.match_start=t,r=n,n>=l)break;A=c[a+r-1],d=c[a+r]}}}while((t=h[t&u])>o&&0!=--i);return r<=e.lookahead?r:e.lookahead},be=e=>{const t=e.w_size;let s,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ce)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Ie(e),n+=t),0===e.strm.avail_in)break;if(s=Ee(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=s,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ye(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ye(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let s,n,i,a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r=0,l=e.strm.avail_in;do{if(s=65535,i=e.bi_valid+42>>3,e.strm.avail_outn+e.strm.avail_in&&(s=n+e.strm.avail_in),s>i&&(s=i),s>8,e.pending_buf[e.pending-2]=~s,e.pending_buf[e.pending-1]=~s>>8,me(e.strm),n&&(n>s&&(n=s),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,s-=n),s&&(Ee(e.strm,e.strm.output,e.strm.next_out,s),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s)}while(0===r);return l-=e.strm.avail_in,l&&(l>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=l&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-l,e.strm.next_in),e.strstart),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.block_start=e.strstart),e.high_wateri&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,i+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),i>e.strm.avail_in&&(i=e.strm.avail_in),i&&(Ee(e.strm,e.window,e.strstart,i),e.strstart+=i,e.insert+=i>e.w_size-e.insert?e.w_size-e.insert:i),e.high_water>3,i=e.pending_buf_size-i>65535?65535:e.pending_buf_size-i,a=i>e.w_size?e.w_size:i,n=e.strstart-e.block_start,(n>=a||(n||t===K)&&t!==Q&&0===e.strm.avail_in&&n<=i)&&(s=n>i?i:n,r=t===K&&0===e.strm.avail_in&&s===n?1:0,G(e,e.block_start,s,r),e.block_start+=s,me(e.strm)),r?3:1)},Pe=(e,t)=>{let s,n;for(;;){if(e.lookahead=3&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==s&&e.strstart-s<=e.w_size-ce&&(e.match_length=Te(e,s)),e.match_length>=3)if(n=V(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ye(e,e.ins_h,e.window[e.strstart+1]);else n=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Re=(e,t)=>{let s,n,i;for(;;){if(e.lookahead=3&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==s&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=V(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=ye(e,e.ins_h,e.window[e.strstart+3-1]),s=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=V(e,0,e.window[e.strstart-1]),n&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=V(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ce(e,t,s,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=n,this.func=i}const _e=[new Ce(0,0,0,0,De),new Ce(4,4,8,4,Pe),new Ce(4,5,16,8,Pe),new Ce(4,6,32,32,Pe),new Ce(4,4,16,16,Re),new Ce(8,16,32,32,Re),new Ce(8,16,128,128,Re),new Ce(8,32,128,256,Re),new Ce(32,128,258,1024,Re),new Ce(32,258,258,4096,Re)];function Be(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=le,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),fe(this.dyn_ltree),fe(this.dyn_dtree),fe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),fe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),fe(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Oe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ue&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==he&&t.status!==pe?1:0},Se=e=>{if(Oe(e))return Ae(e,J);e.total_in=e.total_out=0,e.data_type=re;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?ue:he,e.adler=2===t.wrap?0:1,t.last_flush=-2,U(t),X},Ne=e=>{const t=Se(e);var s;return t===X&&((s=e.state).window_size=2*s.w_size,fe(s.head),s.max_lazy_match=_e[s.level].max_lazy,s.good_match=_e[s.level].good_length,s.nice_match=_e[s.level].nice_length,s.max_chain_length=_e[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=2,s.match_available=0,s.ins_h=0),t},xe=(e,t,s,n,i,a)=>{if(!e)return J;let r=1;if(t===ee&&(t=6),n<0?(r=0,n=-n):n>15&&(r=2,n-=16),i<1||i>9||s!==le||n<8||n>15||t<0||t>9||a<0||a>ie||8===n&&1!==r)return Ae(e,J);8===n&&(n=9);const l=new Be;return e.state=l,l.strm=e,l.status=ue,l.wrap=r,l.gzhead=null,l.w_bits=n,l.w_size=1<Oe(e)||2!==e.state.wrap?J:(e.state.gzhead=t,X),Fe=(e,t)=>{if(Oe(e)||t>Y||t<0)return e?Ae(e,J):J;const s=e.state;if(!e.output||0!==e.avail_in&&!e.input||s.status===pe&&t!==K)return Ae(e,0===e.avail_out?$:J);const n=s.last_flush;if(s.last_flush=t,0!==s.pending){if(me(e),0===e.avail_out)return s.last_flush=-1,X}else if(0===e.avail_in&&de(t)<=de(n)&&t!==K)return Ae(e,$);if(s.status===pe&&0!==e.avail_in)return Ae(e,$);if(s.status===ue&&0===s.wrap&&(s.status=he),s.status===ue){let t=le+(s.w_bits-8<<4)<<8,n=-1;if(n=s.strategy>=se||s.level<2?0:s.level<6?1:6===s.level?2:3,t|=n<<6,0!==s.strstart&&(t|=32),t+=31-t%31,ge(s,t),0!==s.strstart&&(ge(s,e.adler>>>16),ge(s,65535&e.adler)),e.adler=1,s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X}if(57===s.status)if(e.adler=0,we(s,31),we(s,139),we(s,8),s.gzhead)we(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),we(s,255&s.gzhead.time),we(s,s.gzhead.time>>8&255),we(s,s.gzhead.time>>16&255),we(s,s.gzhead.time>>24&255),we(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),we(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(we(s,255&s.gzhead.extra.length),we(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=M(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69;else if(we(s,0),we(s,0),we(s,0),we(s,0),we(s,0),we(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),we(s,3),s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X;if(69===s.status){if(s.gzhead.extra){let t=s.pending,n=(65535&s.gzhead.extra.length)-s.gzindex;for(;s.pending+n>s.pending_buf_size;){let i=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+i),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>t&&(e.adler=M(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex+=i,me(e),0!==s.pending)return s.last_flush=-1,X;t=0,n-=i}let i=new Uint8Array(s.gzhead.extra);s.pending_buf.set(i.subarray(s.gzindex,s.gzindex+n),s.pending),s.pending+=n,s.gzhead.hcrc&&s.pending>t&&(e.adler=M(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex=0}s.status=73}if(73===s.status){if(s.gzhead.name){let t,n=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),me(e),0!==s.pending)return s.last_flush=-1,X;n=0}t=s.gzindexn&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),s.gzindex=0}s.status=91}if(91===s.status){if(s.gzhead.comment){let t,n=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>n&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n)),me(e),0!==s.pending)return s.last_flush=-1,X;n=0}t=s.gzindexn&&(e.adler=M(e.adler,s.pending_buf,s.pending-n,n))}s.status=103}if(103===s.status){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(me(e),0!==s.pending))return s.last_flush=-1,X;we(s,255&e.adler),we(s,e.adler>>8&255),e.adler=0}if(s.status=he,me(e),0!==s.pending)return s.last_flush=-1,X}if(0!==e.avail_in||0!==s.lookahead||t!==Q&&s.status!==pe){let n=0===s.level?De(s,t):s.strategy===se?((e,t)=>{let s;for(;;){if(0===e.lookahead&&(be(e),0===e.lookahead)){if(t===Q)return 1;break}if(e.match_length=0,s=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(s,t):s.strategy===ne?((e,t)=>{let s,n,i,a;const r=e.window;for(;;){if(e.lookahead<=oe){if(be(e),e.lookahead<=oe&&t===Q)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,n=r[i],n===r[++i]&&n===r[++i]&&n===r[++i])){a=e.strstart+oe;do{}while(n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&n===r[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(s=V(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(s=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(s,t):_e[s.level].func(s,t);if(3!==n&&4!==n||(s.status=pe),1===n||3===n)return 0===e.avail_out&&(s.last_flush=-1),X;if(2===n&&(t===W?k(s):t!==Y&&(G(s,0,0,!1),t===z&&(fe(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),me(e),0===e.avail_out))return s.last_flush=-1,X}return t!==K?X:s.wrap<=0?q:(2===s.wrap?(we(s,255&e.adler),we(s,e.adler>>8&255),we(s,e.adler>>16&255),we(s,e.adler>>24&255),we(s,255&e.total_in),we(s,e.total_in>>8&255),we(s,e.total_in>>16&255),we(s,e.total_in>>24&255)):(ge(s,e.adler>>>16),ge(s,65535&e.adler)),me(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?X:q)},He=e=>{if(Oe(e))return J;const t=e.state.status;return e.state=null,t===he?Ae(e,Z):X},Ue=(e,t)=>{let s=t.length;if(Oe(e))return J;const n=e.state,i=n.wrap;if(2===i||1===i&&n.status!==ue||n.lookahead)return J;if(1===i&&(e.adler=x(e.adler,t,s,0)),n.wrap=0,s>=n.w_size){0===i&&(fe(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(s-n.w_size,s),0),t=e,s=n.w_size}const a=e.avail_in,r=e.next_in,l=e.input;for(e.avail_in=s,e.next_in=0,e.input=t,be(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=ye(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,be(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=r,e.input=l,e.avail_in=a,n.wrap=i,X};const Ge=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var je=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const s=t.shift();if(s){if("object"!=typeof s)throw new TypeError(s+"must be non-object");for(const t in s)Ge(s,t)&&(e[t]=s[t])}}return e},Ve=e=>{let t=0;for(let s=0,n=e.length;s=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Qe[254]=Qe[254]=1;var We=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,s,n,i,a,r=e.length,l=0;for(i=0;i>>6,t[a++]=128|63&s):s<65536?(t[a++]=224|s>>>12,t[a++]=128|s>>>6&63,t[a++]=128|63&s):(t[a++]=240|s>>>18,t[a++]=128|s>>>12&63,t[a++]=128|s>>>6&63,t[a++]=128|63&s);return t},ze=(e,t)=>{const s=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,i;const a=new Array(2*s);for(i=0,n=0;n4)a[i++]=65533,n+=r-1;else{for(t&=2===r?31:3===r?15:7;r>1&&n1?a[i++]=65533:t<65536?a[i++]=t:(t-=65536,a[i++]=55296|t>>10&1023,a[i++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&ke)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let s="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let s=t-1;for(;s>=0&&128==(192&e[s]);)s--;return s<0||0===s?t:s+Qe[e[s]]>t?s:t},Ye=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Xe=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Je,Z_FULL_FLUSH:Ze,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:st,Z_DEFAULT_STRATEGY:nt,Z_DEFLATED:it}=H;function at(e){this.options=je({level:st,method:it,chunkSize:16384,windowBits:15,memLevel:8,strategy:nt},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ye,this.strm.avail_out=0;let s=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==et)throw new Error(F[s]);if(t.header&&Me(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?We(t.dictionary):"[object ArrayBuffer]"===Xe.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,s=Ue(this.strm,e),s!==et)throw new Error(F[s]);this._dict_set=!0}}function rt(e,t){const s=new at(t);if(s.push(e,!0),s.err)throw s.msg||F[s.err];return s.result}at.prototype.push=function(e,t){const s=this.strm,n=this.options.chunkSize;let i,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?$e:qe,"string"==typeof e?s.input=We(e):"[object ArrayBuffer]"===Xe.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;)if(0===s.avail_out&&(s.output=new Uint8Array(n),s.next_out=0,s.avail_out=n),(a===Je||a===Ze)&&s.avail_out<=6)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else{if(i=Fe(s,a),i===tt)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),i=He(this.strm),this.onEnd(i),this.ended=!0,i===et;if(0!==s.avail_out){if(a>0&&s.next_out>0)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else if(0===s.avail_in)break}else this.onData(s.output)}return!0},at.prototype.onData=function(e){this.chunks.push(e)},at.prototype.onEnd=function(e){e===et&&(this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var lt={Deflate:at,deflate:rt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,rt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,rt(e,t)},constants:H};const ot=16209;var ct=function(e,t){let s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b,D;const P=e.state;s=e.next_in,b=e.input,n=s+(e.avail_in-5),i=e.next_out,D=e.output,a=i-(t-e.avail_out),r=i+(e.avail_out-257),l=P.dmax,o=P.wsize,c=P.whave,u=P.wnext,h=P.window,p=P.hold,A=P.bits,d=P.lencode,f=P.distcode,I=(1<>>24,p>>>=v,A-=v,v=m>>>16&255,0===v)D[i++]=65535&m;else{if(!(16&v)){if(0==(64&v)){m=d[(65535&m)+(p&(1<>>=v,A-=v),A<15&&(p+=b[s++]<>>24,p>>>=v,A-=v,v=m>>>16&255,!(16&v)){if(0==(64&v)){m=f[(65535&m)+(p&(1<l){e.msg="invalid distance too far back",P.mode=ot;break e}if(p>>>=v,A-=v,v=i-a,g>v){if(v=g-v,v>c&&P.sane){e.msg="invalid distance too far back",P.mode=ot;break e}if(E=0,T=h,0===u){if(E+=o-v,v2;)D[i++]=T[E++],D[i++]=T[E++],D[i++]=T[E++],w-=3;w&&(D[i++]=T[E++],w>1&&(D[i++]=T[E++]))}else{E=i-g;do{D[i++]=D[E++],D[i++]=D[E++],D[i++]=D[E++],w-=3}while(w>2);w&&(D[i++]=D[E++],w>1&&(D[i++]=D[E++]))}break}}break}}while(s>3,s-=w,A-=w<<3,p&=(1<{const o=l.bits;let c,u,h,p,A,d,f=0,I=0,y=0,m=0,v=0,w=0,g=0,E=0,T=0,b=0,D=null;const P=new Uint16Array(16),R=new Uint16Array(16);let C,_,B,O=null;for(f=0;f<=15;f++)P[f]=0;for(I=0;I=1&&0===P[m];m--);if(v>m&&(v=m),0===m)return i[a++]=20971520,i[a++]=20971520,l.bits=1,0;for(y=1;y0&&(0===e||1!==m))return-1;for(R[1]=0,f=1;f<15;f++)R[f+1]=R[f]+P[f];for(I=0;I852||2===e&&T>592)return 1;for(;;){C=f-g,r[I]+1=d?(_=O[r[I]-d],B=D[r[I]-d]):(_=96,B=0),c=1<>g)+u]=C<<24|_<<16|B|0}while(0!==u);for(c=1<>=1;if(0!==c?(b&=c-1,b+=c):b=0,I++,0==--P[f]){if(f===m)break;f=t[s+r[I]]}if(f>v&&(b&p)!==h){for(0===g&&(g=v),A+=y,w=f-g,E=1<852||2===e&&T>592)return 1;h=b&p,i[h]=v<<24|w<<16|A-a|0}}return 0!==b&&(i[A+b]=f-g<<24|64<<16|0),l.bits=v,0};const{Z_FINISH:ft,Z_BLOCK:It,Z_TREES:yt,Z_OK:mt,Z_STREAM_END:vt,Z_NEED_DICT:wt,Z_STREAM_ERROR:gt,Z_DATA_ERROR:Et,Z_MEM_ERROR:Tt,Z_BUF_ERROR:bt,Z_DEFLATED:Dt}=H,Pt=16180,Rt=16190,Ct=16191,_t=16192,Bt=16194,Ot=16199,St=16200,Nt=16206,xt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Mt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ft=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ht=e=>{if(Ft(e))return gt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Pt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,mt},Ut=e=>{if(Ft(e))return gt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ht(e)},Gt=(e,t)=>{let s;if(Ft(e))return gt;const n=e.state;return t<0?(s=0,t=-t):(s=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?gt:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=s,n.wbits=t,Ut(e))},jt=(e,t)=>{if(!e)return gt;const s=new Mt;e.state=s,s.strm=e,s.window=null,s.mode=Pt;const n=Gt(e,t);return n!==mt&&(e.state=null),n};let Vt,kt,Qt=!0;const Wt=e=>{if(Qt){Vt=new Int32Array(512),kt=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(dt(1,e.lens,0,288,Vt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dt(2,e.lens,0,32,kt,0,e.work,{bits:5}),Qt=!1}e.lencode=Vt,e.lenbits=9,e.distcode=kt,e.distbits=5},zt=(e,t,s,n)=>{let i;const a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(s-a.wsize,s),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),a.window.set(t.subarray(s-n,s-n+i),a.wnext),(n-=i)?(a.window.set(t.subarray(s-n,s),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave{let s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b=0;const D=new Uint8Array(4);let P,R;const C=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ft(e)||!e.output||!e.input&&0!==e.avail_in)return gt;s=e.state,s.mode===Ct&&(s.mode=_t),r=e.next_out,i=e.output,o=e.avail_out,a=e.next_in,n=e.input,l=e.avail_in,c=s.hold,u=s.bits,h=l,p=o,T=mt;e:for(;;)switch(s.mode){case Pt:if(0===s.wrap){s.mode=_t;break}for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>>8&255,s.check=M(s.check,D,2,0),c=0,u=0,s.mode=16181;break}if(s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",s.mode=xt;break}if((15&c)!==Dt){e.msg="unknown compression method",s.mode=xt;break}if(c>>>=4,u-=4,E=8+(15&c),0===s.wbits&&(s.wbits=E),E>15||E>s.wbits){e.msg="invalid window size",s.mode=xt;break}s.dmax=1<>8&1),512&s.flags&&4&s.wrap&&(D[0]=255&c,D[1]=c>>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0,s.mode=16182;case 16182:for(;u<32;){if(0===l)break e;l--,c+=n[a++]<>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,s.check=M(s.check,D,4,0)),c=0,u=0,s.mode=16183;case 16183:for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>8),512&s.flags&&4&s.wrap&&(D[0]=255&c,D[1]=c>>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0,s.mode=16184;case 16184:if(1024&s.flags){for(;u<16;){if(0===l)break e;l--,c+=n[a++]<>>8&255,s.check=M(s.check,D,2,0)),c=0,u=0}else s.head&&(s.head.extra=null);s.mode=16185;case 16185:if(1024&s.flags&&(A=s.length,A>l&&(A=l),A&&(s.head&&(E=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(n.subarray(a,a+A),E)),512&s.flags&&4&s.wrap&&(s.check=M(s.check,n,A,a)),l-=A,a+=A,s.length-=A),s.length))break e;s.length=0,s.mode=16186;case 16186:if(2048&s.flags){if(0===l)break e;A=0;do{E=n[a+A++],s.head&&E&&s.length<65536&&(s.head.name+=String.fromCharCode(E))}while(E&&A>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=Ct;break;case 16189:for(;u<32;){if(0===l)break e;l--,c+=n[a++]<>>=7&u,u-=7&u,s.mode=Nt;break}for(;u<3;){if(0===l)break e;l--,c+=n[a++]<>>=1,u-=1,3&c){case 0:s.mode=16193;break;case 1:if(Wt(s),s.mode=Ot,t===yt){c>>>=2,u-=2;break e}break;case 2:s.mode=16196;break;case 3:e.msg="invalid block type",s.mode=xt}c>>>=2,u-=2;break;case 16193:for(c>>>=7&u,u-=7&u;u<32;){if(0===l)break e;l--,c+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",s.mode=xt;break}if(s.length=65535&c,c=0,u=0,s.mode=Bt,t===yt)break e;case Bt:s.mode=16195;case 16195:if(A=s.length,A){if(A>l&&(A=l),A>o&&(A=o),0===A)break e;i.set(n.subarray(a,a+A),r),l-=A,a+=A,o-=A,r+=A,s.length-=A;break}s.mode=Ct;break;case 16196:for(;u<14;){if(0===l)break e;l--,c+=n[a++]<>>=5,u-=5,s.ndist=1+(31&c),c>>>=5,u-=5,s.ncode=4+(15&c),c>>>=4,u-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=xt;break}s.have=0,s.mode=16197;case 16197:for(;s.have>>=3,u-=3}for(;s.have<19;)s.lens[C[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,P={bits:s.lenbits},T=dt(0,s.lens,0,19,s.lencode,0,s.work,P),s.lenbits=P.bits,T){e.msg="invalid code lengths set",s.mode=xt;break}s.have=0,s.mode=16198;case 16198:for(;s.have>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=I,u-=I,s.lens[s.have++]=m;else{if(16===m){for(R=I+2;u>>=I,u-=I,0===s.have){e.msg="invalid bit length repeat",s.mode=xt;break}E=s.lens[s.have-1],A=3+(3&c),c>>>=2,u-=2}else if(17===m){for(R=I+3;u>>=I,u-=I,E=0,A=3+(7&c),c>>>=3,u-=3}else{for(R=I+7;u>>=I,u-=I,E=0,A=11+(127&c),c>>>=7,u-=7}if(s.have+A>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=xt;break}for(;A--;)s.lens[s.have++]=E}}if(s.mode===xt)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=xt;break}if(s.lenbits=9,P={bits:s.lenbits},T=dt(1,s.lens,0,s.nlen,s.lencode,0,s.work,P),s.lenbits=P.bits,T){e.msg="invalid literal/lengths set",s.mode=xt;break}if(s.distbits=6,s.distcode=s.distdyn,P={bits:s.distbits},T=dt(2,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,P),s.distbits=P.bits,T){e.msg="invalid distances set",s.mode=xt;break}if(s.mode=Ot,t===yt)break e;case Ot:s.mode=St;case St:if(l>=6&&o>=258){e.next_out=r,e.avail_out=o,e.next_in=a,e.avail_in=l,s.hold=c,s.bits=u,ct(e,p),r=e.next_out,i=e.output,o=e.avail_out,a=e.next_in,n=e.input,l=e.avail_in,c=s.hold,u=s.bits,s.mode===Ct&&(s.back=-1);break}for(s.back=0;b=s.lencode[c&(1<>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>v)],I=b>>>24,y=b>>>16&255,m=65535&b,!(v+I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=v,u-=v,s.back+=v}if(c>>>=I,u-=I,s.back+=I,s.length=m,0===y){s.mode=16205;break}if(32&y){s.back=-1,s.mode=Ct;break}if(64&y){e.msg="invalid literal/length code",s.mode=xt;break}s.extra=15&y,s.mode=16201;case 16201:if(s.extra){for(R=s.extra;u>>=s.extra,u-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=16202;case 16202:for(;b=s.distcode[c&(1<>>24,y=b>>>16&255,m=65535&b,!(I<=u);){if(0===l)break e;l--,c+=n[a++]<>v)],I=b>>>24,y=b>>>16&255,m=65535&b,!(v+I<=u);){if(0===l)break e;l--,c+=n[a++]<>>=v,u-=v,s.back+=v}if(c>>>=I,u-=I,s.back+=I,64&y){e.msg="invalid distance code",s.mode=xt;break}s.offset=m,s.extra=15&y,s.mode=16203;case 16203:if(s.extra){for(R=s.extra;u>>=s.extra,u-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=xt;break}s.mode=16204;case 16204:if(0===o)break e;if(A=p-o,s.offset>A){if(A=s.offset-A,A>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=xt;break}A>s.wnext?(A-=s.wnext,d=s.wsize-A):d=s.wnext-A,A>s.length&&(A=s.length),f=s.window}else f=i,d=r-s.offset,A=s.length;A>o&&(A=o),o-=A,s.length-=A;do{i[r++]=f[d++]}while(--A);0===s.length&&(s.mode=St);break;case 16205:if(0===o)break e;i[r++]=s.length,o--,s.mode=St;break;case Nt:if(s.wrap){for(;u<32;){if(0===l)break e;l--,c|=n[a++]<{if(Ft(e))return gt;let t=e.state;return t.window&&(t.window=null),e.state=null,mt},Jt=(e,t)=>{if(Ft(e))return gt;const s=e.state;return 0==(2&s.wrap)?gt:(s.head=t,t.done=!1,mt)},Zt=(e,t)=>{const s=t.length;let n,i,a;return Ft(e)?gt:(n=e.state,0!==n.wrap&&n.mode!==Rt?gt:n.mode===Rt&&(i=1,i=x(i,t,s,0),i!==n.check)?Et:(a=zt(e,t,s,s),a?(n.mode=16210,Tt):(n.havedict=1,mt)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const es=Object.prototype.toString,{Z_NO_FLUSH:ts,Z_FINISH:ss,Z_OK:ns,Z_STREAM_END:is,Z_NEED_DICT:as,Z_STREAM_ERROR:rs,Z_DATA_ERROR:ls,Z_MEM_ERROR:os}=H;function cs(e){this.options=je({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ye,this.strm.avail_out=0;let s=Yt(this.strm,t.windowBits);if(s!==ns)throw new Error(F[s]);if(this.header=new $t,Jt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=We(t.dictionary):"[object ArrayBuffer]"===es.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(s=Zt(this.strm,t.dictionary),s!==ns)))throw new Error(F[s])}function us(e,t){const s=new cs(t);if(s.push(e),s.err)throw s.msg||F[s.err];return s.result}cs.prototype.push=function(e,t){const s=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let a,r,l;if(this.ended)return!1;for(r=t===~~t?t:!0===t?ss:ts,"[object ArrayBuffer]"===es.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;;){for(0===s.avail_out&&(s.output=new Uint8Array(n),s.next_out=0,s.avail_out=n),a=Xt(s,r),a===as&&i&&(a=Zt(s,i),a===ns?a=Xt(s,r):a===ls&&(a=as));s.avail_in>0&&a===is&&s.state.wrap>0&&0!==e[s.next_in];)Kt(s),a=Xt(s,r);switch(a){case rs:case ls:case as:case os:return this.onEnd(a),this.ended=!0,!1}if(l=s.avail_out,s.next_out&&(0===s.avail_out||a===is))if("string"===this.options.to){let e=Ke(s.output,s.next_out),t=s.next_out-e,i=ze(s.output,e);s.next_out=t,s.avail_out=n-t,t&&s.output.set(s.output.subarray(e,e+t),0),this.onData(i)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(a!==ns||0!==l){if(a===is)return a=qt(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===s.avail_in)break}}return!0},cs.prototype.onData=function(e){this.chunks.push(e)},cs.prototype.onEnd=function(e){e===ns&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var hs={Inflate:cs,inflate:us,inflateRaw:function(e,t){return(t=t||{}).raw=!0,us(e,t)},ungzip:us,constants:H};const{Deflate:ps,deflate:As,deflateRaw:ds,gzip:fs}=lt,{Inflate:Is,inflate:ys,inflateRaw:ms,ungzip:vs}=hs;var ws=ps,gs=As,Es=ds,Ts=fs,bs=Is,Ds=ys,Ps=ms,Rs=vs,Cs=H,_s={Deflate:ws,deflate:gs,deflateRaw:Es,gzip:Ts,Inflate:bs,inflate:Ds,inflateRaw:Ps,ungzip:Rs,constants:Cs};e.Deflate=ws,e.Inflate=bs,e.constants=Cs,e.default=_s,e.deflate=gs,e.deflateRaw=Es,e.gzip=Ts,e.inflate=Ds,e.inflateRaw=Ps,e.ungzip=Rs,Object.defineProperty(e,"__esModule",{value:!0})}));var rT=Object.freeze({__proto__:null});let lT=window.pako||rT;lT.inflate||(lT=lT.default);const oT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const cT={version:1,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(s),l=function(e){return{positions:new Uint16Array(lT.inflate(e.positions).buffer),normals:new Int8Array(lT.inflate(e.normals).buffer),indices:new Uint32Array(lT.inflate(e.indices).buffer),edgeIndices:new Uint32Array(lT.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(lT.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(lT.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(lT.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(lT.inflate(e.meshColors).buffer),entityIDs:lT.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(lT.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(lT.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(lT.inflate(e.positionsDecodeMatrix).buffer)}}(r);!function(e,t,s,n,i,a){a.getNextId(),n.positionsCompression="precompressed",n.normalsCompression="precompressed";const r=s.positions,l=s.normals,o=s.indices,c=s.edgeIndices,u=s.meshPositions,p=s.meshIndices,A=s.meshEdgesIndices,d=s.meshColors,f=JSON.parse(s.entityIDs),I=s.entityMeshes,y=s.entityIsObjects,v=u.length,w=I.length;for(let i=0;iI[e]I[t]?1:0));for(let e=0;e1||(C[s]=e)}}for(let e=0;e1,a=yT(y.subarray(4*t,4*t+3)),p=y[4*t+3]/255,v=l.subarray(A[t],s?l.length:A[t+1]),g=o.subarray(A[t],s?o.length:A[t+1]),E=c.subarray(d[t],s?c.length:d[t+1]),b=u.subarray(f[t],s?u.length:f[t+1]),R=h.subarray(I[t],I[t]+16);if(i){const e=`${r}-geometry.${t}`;n.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:g,indices:E,edgeIndices:b,positionsDecodeMatrix:R})}else{const e=`${r}-${t}`;w[C[t]];const s={};n.createMesh(m.apply(s,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:g,indices:E,edgeIndices:b,positionsDecodeMatrix:R,color:a,opacity:p}))}}let _=0;for(let e=0;e1){const t={},i=`${r}-instance.${_++}`,a=`${r}-geometry.${s}`,l=16*E[e],c=p.subarray(l,l+16);n.createMesh(m.apply(t,{id:i,geometryId:a,matrix:c})),o.push(i)}else o.push(s)}if(o.length>0){const e={};n.createEntity(m.apply(e,{id:i,isObject:!0,meshIds:o}))}}}(0,0,l,n,0,a)}};let vT=window.pako||rT;vT.inflate||(vT=vT.default);const wT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const gT={version:5,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(s),l=function(e){return{positions:new Float32Array(vT.inflate(e.positions).buffer),normals:new Int8Array(vT.inflate(e.normals).buffer),indices:new Uint32Array(vT.inflate(e.indices).buffer),edgeIndices:new Uint32Array(vT.inflate(e.edgeIndices).buffer),matrices:new Float32Array(vT.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(vT.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(vT.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(vT.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(vT.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(vT.inflate(e.primitiveInstances).buffer),eachEntityId:vT.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(vT.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(vT.inflate(e.eachEntityMatricesPortion).buffer)}}(r);!function(e,t,s,n,i,a){const r=a.getNextId();n.positionsCompression="disabled",n.normalsCompression="precompressed";const l=s.positions,o=s.normals,c=s.indices,u=s.edgeIndices,h=s.matrices,p=s.eachPrimitivePositionsAndNormalsPortion,A=s.eachPrimitiveIndicesPortion,d=s.eachPrimitiveEdgeIndicesPortion,f=s.eachPrimitiveColor,I=s.primitiveInstances,y=JSON.parse(s.eachEntityId),v=s.eachEntityPrimitiveInstancesPortion,w=s.eachEntityMatricesPortion,g=p.length,E=I.length,T=new Uint8Array(g),b=y.length;for(let e=0;e1||(D[s]=e)}}for(let e=0;e1,i=wT(f.subarray(4*e,4*e+3)),a=f[4*e+3]/255,h=l.subarray(p[e],t?l.length:p[e+1]),I=o.subarray(p[e],t?o.length:p[e+1]),v=c.subarray(A[e],t?c.length:A[e+1]),w=u.subarray(d[e],t?u.length:d[e+1]);if(s){const t=`${r}-geometry.${e}`;n.createGeometry({id:t,primitive:"triangles",positionsCompressed:h,normalsCompressed:I,indices:v,edgeIndices:w})}else{const t=e;y[D[e]];const s={};n.createMesh(m.apply(s,{id:t,primitive:"triangles",positionsCompressed:h,normalsCompressed:I,indices:v,edgeIndices:w,color:i,opacity:a}))}}let P=0;for(let e=0;e1){const t={},i="instance."+P++,a="geometry"+s,r=16*w[e],o=h.subarray(r,r+16);n.createMesh(m.apply(t,{id:i,geometryId:a,matrix:o})),l.push(i)}else l.push(s)}if(l.length>0){const e={};n.createEntity(m.apply(e,{id:i,isObject:!0,meshIds:l}))}}}(0,0,l,n,0,a)}};let ET=window.pako||rT;ET.inflate||(ET=ET.default);const TT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const bT={version:6,parse:function(e,t,s,n,i,a){const r=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(s),l=function(e){function t(e,t){return 0===e.length?[]:ET.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:ET.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(r);!function(e,t,s,n,i,a){const r=a.getNextId(),l=s.positions,o=s.normals,c=s.indices,u=s.edgeIndices,p=s.matrices,A=s.reusedPrimitivesDecodeMatrix,d=s.eachPrimitivePositionsAndNormalsPortion,f=s.eachPrimitiveIndicesPortion,I=s.eachPrimitiveEdgeIndicesPortion,y=s.eachPrimitiveColorAndOpacity,v=s.primitiveInstances,w=JSON.parse(s.eachEntityId),g=s.eachEntityPrimitiveInstancesPortion,E=s.eachEntityMatricesPortion,T=s.eachTileAABB,b=s.eachTileEntitiesPortion,D=d.length,P=v.length,R=w.length,C=b.length,_=new Uint32Array(D);for(let e=0;e1,h=t===D-1,p=l.subarray(d[t],h?l.length:d[t+1]),w=o.subarray(d[t],h?o.length:d[t+1]),g=c.subarray(f[t],h?c.length:f[t+1]),E=u.subarray(I[t],h?u.length:I[t+1]),T=TT(y.subarray(4*t,4*t+3)),b=y[4*t+3]/255,P=a.getNextId();if(i){const e=`${r}-geometry.${s}.${t}`;M[e]||(n.createGeometry({id:e,primitive:"triangles",positionsCompressed:p,indices:g,edgeIndices:E,positionsDecodeMatrix:A}),M[e]=!0),n.createMesh(m.apply(U,{id:P,geometryId:e,origin:B,matrix:C,color:T,opacity:b})),x.push(P)}else n.createMesh(m.apply(U,{id:P,origin:B,primitive:"triangles",positionsCompressed:p,normalsCompressed:w,indices:g,edgeIndices:E,positionsDecodeMatrix:L,color:T,opacity:b})),x.push(P)}x.length>0&&n.createEntity(m.apply(H,{id:b,isObject:!0,meshIds:x}))}}}(e,t,l,n,0,a)}};let DT=window.pako||rT;DT.inflate||(DT=DT.default);const PT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function RT(e){const t=[];for(let s=0,n=e.length;s1,h=t===_-1,D=PT(b.subarray(6*e,6*e+3)),P=b[6*e+3]/255,R=b[6*e+4]/255,C=b[6*e+5]/255,B=a.getNextId();if(i){const i=T[e],a=A.slice(i,i+16),E=`${r}-geometry.${s}.${t}`;if(!G[E]){let e,s,i,a,r,A;switch(f[t]){case 0:e="solid",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 1:e="surface",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 2:e="points",s=l.subarray(I[t],h?l.length:I[t+1]),a=RT(c.subarray(v[t],h?c.length:v[t+1]));break;case 3:e="lines",s=l.subarray(I[t],h?l.length:I[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]);break;default:continue}n.createGeometry({id:E,primitive:e,positionsCompressed:s,normalsCompressed:i,colors:a,indices:r,edgeIndices:A,positionsDecodeMatrix:d}),G[E]=!0}n.createMesh(m.apply(j,{id:B,geometryId:E,origin:x,matrix:a,color:D,metallic:R,roughness:C,opacity:P})),M.push(B)}else{let e,s,i,a,r,A;switch(f[t]){case 0:e="solid",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 1:e="surface",s=l.subarray(I[t],h?l.length:I[t+1]),i=o.subarray(y[t],h?o.length:y[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]),A=p.subarray(g[t],h?p.length:g[t+1]);break;case 2:e="points",s=l.subarray(I[t],h?l.length:I[t+1]),a=RT(c.subarray(v[t],h?c.length:v[t+1]));break;case 3:e="lines",s=l.subarray(I[t],h?l.length:I[t+1]),r=u.subarray(w[t],h?u.length:w[t+1]);break;default:continue}n.createMesh(m.apply(j,{id:B,origin:x,primitive:e,positionsCompressed:s,normalsCompressed:i,colors:a,indices:r,edgeIndices:A,positionsDecodeMatrix:U,color:D,metallic:R,roughness:C,opacity:P})),M.push(B)}}M.length>0&&n.createEntity(m.apply(H,{id:C,isObject:!0,meshIds:M}))}}}(e,t,l,n,0,a)}};let _T=window.pako||rT;_T.inflate||(_T=_T.default);const BT=h.vec4(),OT=h.vec4();const ST=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function NT(e){const t=[];for(let s=0,n=e.length;s1,o=i===L-1,c=ST(_.subarray(6*e,6*e+3)),u=_[6*e+3]/255,p=_[6*e+4]/255,B=_[6*e+5]/255,O=a.getNextId();if(l){const a=C[e],l=v.slice(a,a+16),R=`${r}-geometry.${s}.${i}`;let _=V[R];if(!_){_={batchThisMesh:!t.reuseGeometries};let e=!1;switch(g[i]){case 0:_.primitiveName="solid",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryNormals=d.subarray(T[i],o?d.length:T[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),_.geometryEdgeIndices=y.subarray(P[i],o?y.length:P[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 1:_.primitiveName="surface",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryNormals=d.subarray(T[i],o?d.length:T[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),_.geometryEdgeIndices=y.subarray(P[i],o?y.length:P[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 2:_.primitiveName="points",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryColors=NT(f.subarray(b[i],o?f.length:b[i+1])),e=_.geometryPositions.length>0;break;case 3:_.primitiveName="lines",_.geometryPositions=A.subarray(E[i],o?A.length:E[i+1]),_.geometryIndices=I.subarray(D[i],o?I.length:D[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;default:continue}if(e||(_=null),_&&(_.geometryPositions.length,_.batchThisMesh)){_.decompressedPositions=new Float32Array(_.geometryPositions.length);const e=_.geometryPositions,t=_.decompressedPositions;for(let s=0,n=e.length;s0&&r.length>0;break;case 1:e="surface",t=A.subarray(E[i],o?A.length:E[i+1]),s=d.subarray(T[i],o?d.length:T[i+1]),r=I.subarray(D[i],o?I.length:D[i+1]),l=y.subarray(P[i],o?y.length:P[i+1]),h=t.length>0&&r.length>0;break;case 2:e="points",t=A.subarray(E[i],o?A.length:E[i+1]),a=NT(f.subarray(b[i],o?f.length:b[i+1])),h=t.length>0;break;case 3:e="lines",t=A.subarray(E[i],o?A.length:E[i+1]),r=I.subarray(D[i],o?I.length:D[i+1]),h=t.length>0&&r.length>0;break;default:continue}h&&(n.createMesh(m.apply(Q,{id:O,origin:G,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:a,indices:r,edgeIndices:l,positionsDecodeMatrix:x,color:c,metallic:p,roughness:B,opacity:u})),N.push(O))}}N.length>0&&n.createEntity(m.apply(k,{id:c,isObject:!0,meshIds:N}))}}}(e,t,l,n,i,a)}};let LT=window.pako||rT;LT.inflate||(LT=LT.default);const MT=h.vec4(),FT=h.vec4();const HT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const UT={version:9,parse:function(e,t,s,n,i,a){const r=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(s),l=function(e){function t(e,t){return 0===e.length?[]:LT.inflate(e,t).buffer}return{metadata:JSON.parse(LT.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(LT.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(r);!function(e,t,s,n,i,a){const r=a.getNextId(),l=s.metadata,o=s.positions,c=s.normals,u=s.colors,p=s.indices,A=s.edgeIndices,d=s.matrices,f=s.reusedGeometriesDecodeMatrix,I=s.eachGeometryPrimitiveType,y=s.eachGeometryPositionsPortion,v=s.eachGeometryNormalsPortion,w=s.eachGeometryColorsPortion,g=s.eachGeometryIndicesPortion,E=s.eachGeometryEdgeIndicesPortion,T=s.eachMeshGeometriesPortion,b=s.eachMeshMatricesPortion,D=s.eachMeshMaterial,P=s.eachEntityId,R=s.eachEntityMeshesPortion,C=s.eachTileAABB,_=s.eachTileEntitiesPortion,B=y.length,O=T.length,S=R.length,N=_.length;i&&i.loadData(l,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const x=new Uint32Array(B);for(let e=0;e1,P=i===B-1,R=HT(D.subarray(6*e,6*e+3)),C=D[6*e+3]/255,_=D[6*e+4]/255,O=D[6*e+5]/255,S=a.getNextId();if(l){const a=b[e],l=d.slice(a,a+16),T=`${r}-geometry.${s}.${i}`;let D=F[T];if(!D){D={batchThisMesh:!t.reuseGeometries};let e=!1;switch(I[i]){case 0:D.primitiveName="solid",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryNormals=c.subarray(v[i],P?c.length:v[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),D.geometryEdgeIndices=A.subarray(E[i],P?A.length:E[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;case 1:D.primitiveName="surface",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryNormals=c.subarray(v[i],P?c.length:v[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),D.geometryEdgeIndices=A.subarray(E[i],P?A.length:E[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;case 2:D.primitiveName="points",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryColors=u.subarray(w[i],P?u.length:w[i+1]),e=D.geometryPositions.length>0;break;case 3:D.primitiveName="lines",D.geometryPositions=o.subarray(y[i],P?o.length:y[i+1]),D.geometryIndices=p.subarray(g[i],P?p.length:g[i+1]),e=D.geometryPositions.length>0&&D.geometryIndices.length>0;break;default:continue}if(e||(D=null),D&&(D.geometryPositions.length,D.batchThisMesh)){D.decompressedPositions=new Float32Array(D.geometryPositions.length),D.transformedAndRecompressedPositions=new Uint16Array(D.geometryPositions.length);const e=D.geometryPositions,t=D.decompressedPositions;for(let s=0,n=e.length;s0&&r.length>0;break;case 1:e="surface",t=o.subarray(y[i],P?o.length:y[i+1]),s=c.subarray(v[i],P?c.length:v[i+1]),r=p.subarray(g[i],P?p.length:g[i+1]),l=A.subarray(E[i],P?A.length:E[i+1]),h=t.length>0&&r.length>0;break;case 2:e="points",t=o.subarray(y[i],P?o.length:y[i+1]),a=u.subarray(w[i],P?u.length:w[i+1]),h=t.length>0;break;case 3:e="lines",t=o.subarray(y[i],P?o.length:y[i+1]),r=p.subarray(g[i],P?p.length:g[i+1]),h=t.length>0&&r.length>0;break;default:continue}h&&(n.createMesh(m.apply(k,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:a,indices:r,edgeIndices:l,positionsDecodeMatrix:G,color:R,metallic:_,roughness:O,opacity:C})),H.push(S))}}H.length>0&&n.createEntity(m.apply(V,{id:C,isObject:!0,meshIds:H}))}}}(e,t,l,n,i,a)}};let GT=window.pako||rT;GT.inflate||(GT=GT.default);const jT=h.vec4(),VT=h.vec4();const kT=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function QT(e,t){const s=[];if(t.length>1)for(let e=0,n=t.length-1;e1)for(let t=0,n=e.length/3-1;t0,l=9*e,h=1===u[l+0],p=u[l+1];u[l+2],u[l+3];const A=u[l+4],d=u[l+5],f=u[l+6],I=u[l+7],y=u[l+8];if(a){const t=new Uint8Array(o.subarray(s,i)).buffer,a=`${r}-texture-${e}`;if(h)n.createTexture({id:a,buffers:[t],minFilter:A,magFilter:d,wrapS:f,wrapT:I,wrapR:y});else{const e=new Blob([t],{type:10001===p?"image/jpeg":10002===p?"image/png":"image/gif"}),s=(window.URL||window.webkitURL).createObjectURL(e),i=document.createElement("img");i.src=s,n.createTexture({id:a,image:i,minFilter:A,magFilter:d,wrapS:f,wrapT:I,wrapR:y})}}}for(let e=0;e=0?`${r}-texture-${i}`:null,normalsTextureId:l>=0?`${r}-texture-${l}`:null,metallicRoughnessTextureId:a>=0?`${r}-texture-${a}`:null,emissiveTextureId:o>=0?`${r}-texture-${o}`:null,occlusionTextureId:c>=0?`${r}-texture-${c}`:null})}const k=new Uint32Array(U);for(let e=0;e1,o=i===U-1,c=O[e],u=c>=0?`${r}-textureSet-${c}`:null,N=kT(S.subarray(6*e,6*e+3)),x=S[6*e+3]/255,L=S[6*e+4]/255,H=S[6*e+5]/255,G=a.getNextId();if(l){const a=B[e],l=w.slice(a,a+16),c=`${r}-geometry.${s}.${i}`;let _=z[c];if(!_){_={batchThisMesh:!t.reuseGeometries};let e=!1;switch(E[i]){case 0:_.primitiveName="solid",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryNormals=A.subarray(b[i],o?A.length:b[i+1]),_.geometryUVs=f.subarray(P[i],o?f.length:P[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),_.geometryEdgeIndices=y.subarray(C[i],o?y.length:C[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 1:_.primitiveName="surface",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryNormals=A.subarray(b[i],o?A.length:b[i+1]),_.geometryUVs=f.subarray(P[i],o?f.length:P[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),_.geometryEdgeIndices=y.subarray(C[i],o?y.length:C[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 2:_.primitiveName="points",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryColors=d.subarray(D[i],o?d.length:D[i+1]),e=_.geometryPositions.length>0;break;case 3:_.primitiveName="lines",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryIndices=I.subarray(R[i],o?I.length:R[i+1]),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;case 4:_.primitiveName="lines",_.geometryPositions=p.subarray(T[i],o?p.length:T[i+1]),_.geometryIndices=QT(_.geometryPositions,I.subarray(R[i],o?I.length:R[i+1])),e=_.geometryPositions.length>0&&_.geometryIndices.length>0;break;default:continue}if(e||(_=null),_&&(_.geometryPositions.length,_.batchThisMesh)){_.decompressedPositions=new Float32Array(_.geometryPositions.length),_.transformedAndRecompressedPositions=new Uint16Array(_.geometryPositions.length);const e=_.geometryPositions,t=_.decompressedPositions;for(let s=0,n=e.length;s0&&l.length>0;break;case 1:e="surface",t=p.subarray(T[i],o?p.length:T[i+1]),s=A.subarray(b[i],o?A.length:b[i+1]),a=f.subarray(P[i],o?f.length:P[i+1]),l=I.subarray(R[i],o?I.length:R[i+1]),c=y.subarray(C[i],o?y.length:C[i+1]),h=t.length>0&&l.length>0;break;case 2:e="points",t=p.subarray(T[i],o?p.length:T[i+1]),r=d.subarray(D[i],o?d.length:D[i+1]),h=t.length>0;break;case 3:e="lines",t=p.subarray(T[i],o?p.length:T[i+1]),l=I.subarray(R[i],o?I.length:R[i+1]),h=t.length>0&&l.length>0;break;case 4:e="lines",t=p.subarray(T[i],o?p.length:T[i+1]),l=QT(t,I.subarray(R[i],o?I.length:R[i+1])),h=t.length>0&&l.length>0;break;default:continue}h&&(n.createMesh(m.apply(V,{id:G,textureSetId:u,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:s,uv:a&&a.length>0?a:null,colorsCompressed:r,indices:l,edgeIndices:c,positionsDecodeMatrix:v,color:N,metallic:L,roughness:H,opacity:x})),M.push(G))}}M.length>0&&n.createEntity(m.apply(G,{id:o,isObject:!0,meshIds:M}))}}}(e,t,l,n,i,a)}},zT={};zT[cT.version]=cT,zT[pT.version]=pT,zT[fT.version]=fT,zT[mT.version]=mT,zT[gT.version]=gT,zT[bT.version]=bT,zT[CT.version]=CT,zT[xT.version]=xT,zT[UT.version]=UT,zT[WT.version]=WT;var KT={};!function(e){var t,s="File format is not recognized.",n="Error while reading zip file.",i="Error while reading file data.",a=524288,r="text/plain";try{t=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function l(){this.crc=-1}function o(){}function c(e,t){var s,n;return s=new ArrayBuffer(e),n=new Uint8Array(s),t&&n.set(t,0),{buffer:s,array:n,view:new DataView(s)}}function u(){}function h(e){var t,s=this;s.size=0,s.init=function(n,i){var a=new Blob([e],{type:r});(t=new A(a)).init((function(){s.size=t.size,n()}),i)},s.readUint8Array=function(e,s,n,i){t.readUint8Array(e,s,n,i)}}function p(t){var s,n=this;n.size=0,n.init=function(e){for(var i=t.length;"="==t.charAt(i-1);)i--;s=t.indexOf(",")+1,n.size=Math.floor(.75*(i-s)),e()},n.readUint8Array=function(n,i,a){var r,l=c(i),o=4*Math.floor(n/3),u=4*Math.ceil((n+i)/3),h=e.atob(t.substring(o+s,u+s)),p=n-3*Math.floor(o/4);for(r=p;re.size)throw new RangeError("offset:"+t+", length:"+s+", size:"+e.size);return e.slice?e.slice(t,t+s):e.webkitSlice?e.webkitSlice(t,t+s):e.mozSlice?e.mozSlice(t,t+s):e.msSlice?e.msSlice(t,t+s):void 0}(e,t,s))}catch(e){i(e)}}}function d(){}function f(e){var s,n=this;n.init=function(e){s=new Blob([],{type:r}),e()},n.writeUint8Array=function(e,n){s=new Blob([s,t?e:e.buffer],{type:r}),n()},n.getData=function(t,n){var i=new FileReader;i.onload=function(e){t(e.target.result)},i.onerror=n,i.readAsText(s,e)}}function I(t){var s=this,n="",i="";s.init=function(e){n+="data:"+(t||"")+";base64,",e()},s.writeUint8Array=function(t,s){var a,r=i.length,l=i;for(i="",a=0;a<3*Math.floor((r+t.length)/3)-r;a++)l+=String.fromCharCode(t[a]);for(;a2?n+=e.btoa(l):i=l,s()},s.getData=function(t){t(n+e.btoa(i))}}function y(e){var s,n=this;n.init=function(t){s=new Blob([],{type:e}),t()},n.writeUint8Array=function(n,i){s=new Blob([s,t?n:n.buffer],{type:e}),i()},n.getData=function(e){e(s)}}function m(e,t,s,n,i,r,l,o,c,u){var h,p,A,d=0,f=t.sn;function I(){e.removeEventListener("message",y,!1),o(p,A)}function y(t){var s=t.data,i=s.data,a=s.error;if(a)return a.toString=function(){return"Error: "+this.message},void c(a);if(s.sn===f)switch("number"==typeof s.codecTime&&(e.codecTime+=s.codecTime),"number"==typeof s.crcTime&&(e.crcTime+=s.crcTime),s.type){case"append":i?(p+=i.length,n.writeUint8Array(i,(function(){m()}),u)):m();break;case"flush":A=s.crc,i?(p+=i.length,n.writeUint8Array(i,(function(){I()}),u)):I();break;case"progress":l&&l(h+s.loaded,r);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",s)}}function m(){(h=d*a)<=r?s.readUint8Array(i+h,Math.min(a,r-h),(function(s){l&&l(h,r);var n=0===h?t:{sn:f};n.type="append",n.data=s;try{e.postMessage(n,[s.buffer])}catch(t){e.postMessage(n)}d++}),c):e.postMessage({sn:f,type:"flush"})}p=0,e.addEventListener("message",y,!1),m()}function v(e,t,s,n,i,r,o,c,u,h){var p,A=0,d=0,f="input"===r,I="output"===r,y=new l;!function r(){var l;if((p=A*a)127?i[s-128]:String.fromCharCode(s);return n}function E(e){return decodeURIComponent(escape(e))}function T(e){var t,s="";for(t=0;t>16,s=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&s)>>11,(2016&s)>>5,2*(31&s),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((n||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(s+10,!0),e.compressedSize=t.view.getUint32(s+14,!0),e.uncompressedSize=t.view.getUint32(s+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(s+22,!0),e.extraFieldLength=t.view.getUint16(s+24,!0)):i("File is using Zip64 (4gb+ file size).")):i("File contains encrypted entry.")}function D(t,a,r){var l=0;function o(){}o.prototype.getData=function(n,a,o,u){var h=this;function p(e,t){u&&!function(e){var t=c(4);return t.view.setUint32(0,e),h.crc32==t.view.getUint32(0)}(t)?r("CRC failed."):n.getData((function(e){a(e)}))}function A(e){r(e||i)}function d(e){r(e||"Error while writing file data.")}t.readUint8Array(h.offset,30,(function(i){var a,f=c(i.length,i);1347093252==f.view.getUint32(0)?(b(h,f,4,!1,r),a=h.offset+30+h.filenameLength+h.extraFieldLength,n.init((function(){0===h.compressionMethod?w(h._worker,l++,t,n,a,h.compressedSize,u,p,o,A,d):function(t,s,n,i,a,r,l,o,c,u,h){var p=l?"output":"none";e.zip.useWebWorkers?m(t,{sn:s,codecClass:"Inflater",crcType:p},n,i,a,r,c,o,u,h):v(new e.zip.Inflater,n,i,a,r,p,c,o,u,h)}(h._worker,l++,t,n,a,h.compressedSize,u,p,o,A,d)}),d)):r(s)}),A)};var u={getEntries:function(e){var i=this._worker;!function(e){t.size<22?r(s):i(22,(function(){i(Math.min(65558,t.size),(function(){r(s)}))}));function i(s,i){t.readUint8Array(t.size-s,s,(function(t){for(var s=t.length-22;s>=0;s--)if(80===t[s]&&75===t[s+1]&&5===t[s+2]&&6===t[s+3])return void e(new DataView(t.buffer,s,22));i()}),(function(){r(n)}))}}((function(a){var l,u;l=a.getUint32(16,!0),u=a.getUint16(8,!0),l<0||l>=t.size?r(s):t.readUint8Array(l,t.size-l,(function(t){var n,a,l,h,p=0,A=[],d=c(t.length,t);for(n=0;n>>8^s[255&(t^e[n])];this.crc=t},l.prototype.get=function(){return~this.crc},l.prototype.table=function(){var e,t,s,n=[];for(e=0;e<256;e++){for(s=e,t=0;t<8;t++)1&s?s=s>>>1^3988292384:s>>>=1;n[e]=s}return n}(),o.prototype.append=function(e,t){return e},o.prototype.flush=function(){},h.prototype=new u,h.prototype.constructor=h,p.prototype=new u,p.prototype.constructor=p,A.prototype=new u,A.prototype.constructor=A,d.prototype.getData=function(e){e(this.data)},f.prototype=new d,f.prototype.constructor=f,I.prototype=new d,I.prototype.constructor=I,y.prototype=new d,y.prototype.constructor=y;var _={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function B(t,s,n){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var i;if(e.zip.workerScripts){if(i=e.zip.workerScripts[t],!Array.isArray(i))return void n(new Error("zip.workerScripts."+t+" is not an array!"));i=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(i)}else(i=_[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+i[0];var a=new Worker(i[0]);a.codecTime=a.crcTime=0,a.postMessage({type:"importScripts",scripts:i.slice(1)}),a.addEventListener("message",(function e(t){var i=t.data;if(i.error)return a.terminate(),void n(i.error);"importScripts"===i.type&&(a.removeEventListener("message",e),a.removeEventListener("error",r),s(a))})),a.addEventListener("error",r)}else n(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function r(e){a.terminate(),n(e)}}function O(e){console.error(e)}e.zip={Reader:u,Writer:d,BlobReader:A,Data64URIReader:p,TextReader:h,BlobWriter:y,Data64URIWriter:I,TextWriter:f,createReader:function(e,t,s){s=s||O,e.init((function(){D(e,t,s)}),s)},createWriter:function(e,t,s,n){s=s||O,n=!!n,e.init((function(){C(e,t,s,n)}),s)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(KT);const YT=KT.zip;!function(e){var t,s,n=e.Reader,i=e.Writer;try{s=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function a(e){var t=this;function s(s,n){var i;t.data?s():((i=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(i.getResponseHeader("Content-Length"))||Number(i.response.byteLength)),t.data=new Uint8Array(i.response),s()}),!1),i.addEventListener("error",n,!1),i.open("GET",e),i.responseType="arraybuffer",i.send())}t.size=0,t.init=function(n,i){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var a=new XMLHttpRequest;a.addEventListener("load",(function(){t.size=Number(a.getResponseHeader("Content-Length")),t.size?n():s(n,i)}),!1),a.addEventListener("error",i,!1),a.open("HEAD",e),a.send()}else s(n,i)},t.readUint8Array=function(e,n,i,a){s((function(){i(new Uint8Array(t.data.subarray(e,e+n)))}),a)}}function r(e){var t=this;t.size=0,t.init=function(s,n){var i=new XMLHttpRequest;i.addEventListener("load",(function(){t.size=Number(i.getResponseHeader("Content-Length")),"bytes"==i.getResponseHeader("Accept-Ranges")?s():n("HTTP Range not supported.")}),!1),i.addEventListener("error",n,!1),i.open("HEAD",e),i.send()},t.readUint8Array=function(t,s,n,i){!function(t,s,n,i){var a=new XMLHttpRequest;a.open("GET",e),a.responseType="arraybuffer",a.setRequestHeader("Range","bytes="+t+"-"+(t+s-1)),a.addEventListener("load",(function(){n(a.response)}),!1),a.addEventListener("error",i,!1),a.send()}(t,s,(function(e){n(new Uint8Array(e))}),i)}}function l(e){var t=this;t.size=0,t.init=function(s,n){t.size=e.byteLength,s()},t.readUint8Array=function(t,s,n,i){n(new Uint8Array(e.slice(t,t+s)))}}function o(){var e,t=this;t.init=function(t,s){e=new Uint8Array,t()},t.writeUint8Array=function(t,s,n){var i=new Uint8Array(e.length+t.length);i.set(e),i.set(t,e.length),e=i,s()},t.getData=function(t){t(e.buffer)}}function c(e,t){var n,i=this;i.init=function(t,s){e.createWriter((function(e){n=e,t()}),s)},i.writeUint8Array=function(e,i,a){var r=new Blob([s?e:e.buffer],{type:t});n.onwrite=function(){n.onwrite=null,i()},n.onerror=a,n.write(r)},i.getData=function(t){e.file(t)}}a.prototype=new n,a.prototype.constructor=a,r.prototype=new n,r.prototype.constructor=r,l.prototype=new n,l.prototype.constructor=l,o.prototype=new i,o.prototype.constructor=o,c.prototype=new i,c.prototype.constructor=c,e.FileWriter=c,e.HttpReader=a,e.HttpRangeReader=r,e.ArrayBufferReader=l,e.ArrayBufferWriter=o,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(s,n,i){return function(s,n,i,a){if(s.directory)return a?new t(s.fs,n,i,s):new e.fs.ZipFileEntry(s.fs,n,i,s);throw"Parent entry is not a directory."}(this,s,{data:n,Reader:i?r:a})},t.prototype.importHttpContent=function(e,t,s,n){this.importZip(t?new r(e):new a(e),s,n)},e.fs.FS.prototype.importHttpContent=function(e,s,n,i){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,s,n,i)})}(YT);const XT=["4.2"];class qT{constructor(e,t={}){this.supportedSchemas=XT,this._xrayOpacity=.7,this._src=null,this._options=t,this.viewpoint=null,t.workerScriptsPath?(YT.workerScriptsPath=t.workerScriptsPath,this.src=t.src,this.xrayOpacity=.7,this.displayEffect=t.displayEffect,this.createMetaModel=t.createMetaModel):e.error("Config expected: workerScriptsPath")}load(e,t,s,n,i,a){switch(n.materialType){case"MetallicMaterial":t._defaultMaterial=new cn(t,{baseColor:[1,1,1],metallic:.6,roughness:.6});break;case"SpecularMaterial":t._defaultMaterial=new pn(t,{diffuse:[1,1,1],specular:h.vec3([1,1,1]),glossiness:.5});break;default:t._defaultMaterial=new Ht(t,{reflectivity:.75,shiness:100,diffuse:[1,1,1]})}t._wireframeMaterial=new rn(t,{color:[0,0,0],lineWidth:2});var r=t.scene.canvas.spinner;r.processes++,JT(e,t,s,n,(function(){r.processes--,i&&i(),t.fire("loaded",!0,!1)}),(function(e){r.processes--,t.error(e),a&&a(e),t.fire("error",e)}),(function(e){console.log("Error, Will Robinson: "+e)}))}}var JT=function(e,t,s,n,i,a){!function(e,t,s){var n=new ab;n.load(e,(function(){t(n)}),(function(e){s("Error loading ZIP archive: "+e)}))}(s,(function(s){ZT(e,s,n,t,i,a)}),a)},ZT=function(){return function(t,s,n,i,a){var r={plugin:t,zip:s,edgeThreshold:30,materialType:n.materialType,scene:i.scene,modelNode:i,info:{references:{}},materials:{}};n.createMetaModel&&(r.metaModelData={modelId:i.id,metaObjects:[{name:i.id,type:"Default",id:i.id}]}),i.scene.loading++,function(t,s){t.zip.getFile("Manifest.xml",(function(n,i){for(var a=i.children,r=0,l=a.length;r0){for(var r=a.trim().split(" "),l=new Int16Array(r.length),o=0,c=0,u=r.length;c0){s.primitive="triangles";for(var a=[],r=0,l=i.length;r=t.length)s();else{var l=t[a].id,o=l.lastIndexOf(":");o>0&&(l=l.substring(o+1));var c=l.lastIndexOf("#");c>0&&(l=l.substring(0,c)),n[l]?i(a+1):function(e,t,s){e.zip.getFile(t,(function(t,n){!function(e,t,s){for(var n,i=t.children,a=0,r=i.length;a0)for(var n=0,i=t.length;nt in e?pb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,vb=(e,t)=>{for(var s in t||(t={}))Ib.call(t,s)&&mb(e,s,t[s]);if(fb)for(var s of fb(t))yb.call(t,s)&&mb(e,s,t[s]);return e},wb=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},gb=(e,t,s)=>new Promise(((n,i)=>{var a=e=>{try{l(s.next(e))}catch(e){i(e)}},r=e=>{try{l(s.throw(e))}catch(e){i(e)}},l=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,r);l((s=s.apply(e,t)).next())})),Eb=wb({"dist/web-ifc-mt.js"(e,t){var s,n=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){function t(){return R.buffer!=N.buffer&&z(),N}function n(){return R.buffer!=N.buffer&&z(),x}function i(){return R.buffer!=N.buffer&&z(),L}function a(){return R.buffer!=N.buffer&&z(),M}function r(){return R.buffer!=N.buffer&&z(),F}function l(){return R.buffer!=N.buffer&&z(),H}function o(){return R.buffer!=N.buffer&&z(),G}var c,u,h=void 0!==e?e:{};h.ready=new Promise((function(e,t){c=e,u=t}));var p,A,d,f=Object.assign({},h),I="./this.program",y=(e,t)=>{throw t},m="object"==typeof window,v="function"==typeof importScripts,w="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=h.ENVIRONMENT_IS_PTHREAD||!1,E="";function T(e){return h.locateFile?h.locateFile(e,E):E+e}(m||v)&&(v?E=self.location.href:"undefined"!=typeof document&&document.currentScript&&(E=document.currentScript.src),s&&(E=s),E=0!==E.indexOf("blob:")?E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):"",p=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},v&&(d=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),A=(e,t,s)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):s()},n.onerror=s,n.send(null)});var b,D=h.print||console.log.bind(console),P=h.printErr||console.warn.bind(console);Object.assign(h,f),f=null,h.arguments,h.thisProgram&&(I=h.thisProgram),h.quit&&(y=h.quit),h.wasmBinary&&(b=h.wasmBinary);var R,C,_=h.noExitRuntime||!0;"object"!=typeof WebAssembly&&le("no native wasm support detected");var B,O=!1;function S(e,t){e||le(t)}var N,x,L,M,F,H,U,G,j="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function V(e,t,s){for(var n=(t>>>=0)+s,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&j)return j.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,i):e.subarray(t,i));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&r)<<6|l)}else a+=String.fromCharCode(r)}return a}function k(e,t){return(e>>>=0)?V(n(),e,t):""}function Q(e,t,s,n){if(!(n>0))return 0;for(var i=s>>>=0,a=s+n-1,r=0;r=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++r)),l<=127){if(s>=a)break;t[s++>>>0]=l}else if(l<=2047){if(s+1>=a)break;t[s++>>>0]=192|l>>6,t[s++>>>0]=128|63&l}else if(l<=65535){if(s+2>=a)break;t[s++>>>0]=224|l>>12,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}else{if(s+3>=a)break;t[s++>>>0]=240|l>>18,t[s++>>>0]=128|l>>12&63,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}}return t[s>>>0]=0,s-i}function W(e){for(var t=0,s=0;s=55296&&n<=57343?(t+=4,++s):t+=3}return t}function z(){var e=R.buffer;h.HEAP8=N=new Int8Array(e),h.HEAP16=L=new Int16Array(e),h.HEAP32=F=new Int32Array(e),h.HEAPU8=x=new Uint8Array(e),h.HEAPU16=M=new Uint16Array(e),h.HEAPU32=H=new Uint32Array(e),h.HEAPF32=U=new Float32Array(e),h.HEAPF64=G=new Float64Array(e)}var K,Y=h.INITIAL_MEMORY||16777216;if(S(Y>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+Y+"! (STACK_SIZE=5242880)"),g)R=h.wasmMemory;else if(h.wasmMemory)R=h.wasmMemory;else if(!((R=new WebAssembly.Memory({initial:Y/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw P("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&P("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");z(),Y=R.buffer.byteLength;var X=[],q=[],J=[];function Z(){return _}function $(){g||(h.noFSInit||me.init.initialized||me.init(),me.ignorePermissions=!1,Te(q))}var ee,te,se,ne=0,ie=null;function ae(e){ne++,h.monitorRunDependencies&&h.monitorRunDependencies(ne)}function re(e){if(ne--,h.monitorRunDependencies&&h.monitorRunDependencies(ne),0==ne&&ie){var t=ie;ie=null,t()}}function le(e){h.onAbort&&h.onAbort(e),P(e="Aborted("+e+")"),O=!0,B=1,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw u(t),t}function oe(e){return e.startsWith("data:application/octet-stream;base64,")}function ce(e){try{if(e==ee&&b)return new Uint8Array(b);if(d)return d(e);throw"both async and sync fetching of the wasm failed"}catch(e){le(e)}}function ue(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function he(e){var t=Ee.pthreads[e];S(t),Ee.returnWorkerToPool(t)}oe(ee="web-ifc-mt.wasm")||(ee=T(ee));var pe={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),s++):s&&(e.splice(n,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=pe.isAbs(e),s="/"===e.substr(-1);return e=pe.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=pe.splitPath(e),s=t[0],n=t[1];return s||n?(n&&(n=n.substr(0,n.length-1)),s+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=pe.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return pe.normalize(e.join("/"))},join2:(e,t)=>pe.normalize(e+"/"+t)},Ae={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var n=s>=0?arguments[s]:me.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=pe.isAbs(n)}return e=pe.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),(t?"/":"")+e||"."},relative:(e,t)=>{function s(e){for(var t=0;t=0&&""===e[s];s--);return t>s?[]:e.slice(t,s-t+1)}e=Ae.resolve(e).substr(1),t=Ae.resolve(t).substr(1);for(var n=s(e.split("/")),i=s(t.split("/")),a=Math.min(n.length,i.length),r=a,l=0;l0?s:W(e)+1,i=new Array(n),a=Q(e,i,0,i.length);return t&&(i.length=a),i}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){fe.ttys[e]={input:[],output:[],ops:t},me.registerDevice(e,fe.stream_ops)},stream_ops:{open:function(e){var t=fe.ttys[e.node.rdev];if(!t)throw new me.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,s,n,i){if(!e.tty||!e.tty.ops.get_char)throw new me.ErrnoError(60);for(var a=0,r=0;r0&&(D(V(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(P(V(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(P(V(e.output,0)),e.output=[])}}};function Ie(e){le()}var ye={ops_table:null,mount:function(e){return ye.createNode(null,"/",16895,0)},createNode:function(e,t,s,n){if(me.isBlkdev(s)||me.isFIFO(s))throw new me.ErrnoError(63);ye.ops_table||(ye.ops_table={dir:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,lookup:ye.node_ops.lookup,mknod:ye.node_ops.mknod,rename:ye.node_ops.rename,unlink:ye.node_ops.unlink,rmdir:ye.node_ops.rmdir,readdir:ye.node_ops.readdir,symlink:ye.node_ops.symlink},stream:{llseek:ye.stream_ops.llseek}},file:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:{llseek:ye.stream_ops.llseek,read:ye.stream_ops.read,write:ye.stream_ops.write,allocate:ye.stream_ops.allocate,mmap:ye.stream_ops.mmap,msync:ye.stream_ops.msync}},link:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,readlink:ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:me.chrdev_stream_ops}});var i=me.createNode(e,t,s,n);return me.isDir(i.mode)?(i.node_ops=ye.ops_table.dir.node,i.stream_ops=ye.ops_table.dir.stream,i.contents={}):me.isFile(i.mode)?(i.node_ops=ye.ops_table.file.node,i.stream_ops=ye.ops_table.file.stream,i.usedBytes=0,i.contents=null):me.isLink(i.mode)?(i.node_ops=ye.ops_table.link.node,i.stream_ops=ye.ops_table.link.stream):me.isChrdev(i.mode)&&(i.node_ops=ye.ops_table.chrdev.node,i.stream_ops=ye.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){t>>>=0;var s=e.contents?e.contents.length:0;if(!(s>=t)){t=Math.max(t,s*(s<1048576?2:1.125)>>>0),0!=s&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(t>>>=0,e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var s=e.contents;e.contents=new Uint8Array(t),s&&e.contents.set(s.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=me.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,me.isDir(e.mode)?t.size=4096:me.isFile(e.mode)?t.size=e.usedBytes:me.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ye.resizeFileStorage(e,t.size)},lookup:function(e,t){throw me.genericErrors[44]},mknod:function(e,t,s,n){return ye.createNode(e,t,s,n)},rename:function(e,t,s){if(me.isDir(e.mode)){var n;try{n=me.lookupNode(t,s)}catch(e){}if(n)for(var i in n.contents)throw new me.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=s,t.contents[s]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var s=me.lookupNode(e,t);for(var n in s.contents)throw new me.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var s in e.contents)e.contents.hasOwnProperty(s)&&t.push(s);return t},symlink:function(e,t,s){var n=ye.createNode(e,t,41471,0);return n.link=s,n},readlink:function(e){if(!me.isLink(e.mode))throw new me.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var r=Math.min(e.node.usedBytes-i,n);if(r>8&&a.subarray)t.set(a.subarray(i,i+r),s);else for(var l=0;l0||n+s>>=0,t().set(o,r>>>0)}else l=!1,r=o.byteOffset;return{ptr:r,allocated:l}},msync:function(e,t,s,n,i){return ye.stream_ops.write(e,t,0,n,s,!1),0}}},me={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=Ae.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new me.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),n=me.root,i="/",a=0;a40)throw new me.ErrnoError(32)}}return{path:i,node:n}},getPath:e=>{for(var t;;){if(me.isRoot(e)){var s=e.mount.mountpoint;return t?"/"!==s[s.length-1]?s+"/"+t:s+t:s}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var s=0,n=0;n>>0)%me.nameTable.length},hashAddNode:e=>{var t=me.hashName(e.parent.id,e.name);e.name_next=me.nameTable[t],me.nameTable[t]=e},hashRemoveNode:e=>{var t=me.hashName(e.parent.id,e.name);if(me.nameTable[t]===e)me.nameTable[t]=e.name_next;else for(var s=me.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=me.mayLookup(e);if(s)throw new me.ErrnoError(s,e);for(var n=me.hashName(e.id,t),i=me.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return me.lookup(e,t)},createNode:(e,t,s,n)=>{var i=new me.FSNode(e,t,s,n);return me.hashAddNode(i),i},destroyNode:e=>{me.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=me.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>me.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=me.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return me.lookupNode(e,t),20}catch(e){}return me.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var n;try{n=me.lookupNode(e,t)}catch(e){return e.errno}var i=me.nodePermissions(e,"wx");if(i)return i;if(s){if(!me.isDir(n.mode))return 54;if(me.isRoot(n)||me.getPath(n)===me.cwd())return 10}else if(me.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?me.isLink(e.mode)?32:me.isDir(e.mode)&&("r"!==me.flagsToPermissionString(t)||512&t)?31:me.nodePermissions(e,me.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=me.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!me.streams[s])return s;throw new me.ErrnoError(33)},getStream:e=>me.streams[e],createStream:(e,t,s)=>{me.FSStream||(me.FSStream=function(){this.shared={}},me.FSStream.prototype={},Object.defineProperties(me.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new me.FSStream,e);var n=me.nextfd(t,s);return e.fd=n,me.streams[n]=e,e},closeStream:e=>{me.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=me.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new me.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{me.devices[e]={stream_ops:t}},getDevice:e=>me.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var n=s.pop();t.push(n),s.push.apply(s,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),me.syncFSRequests++,me.syncFSRequests>1&&P("warning: "+me.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=me.getMounts(me.root.mount),n=0;function i(e){return me.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++n>=s.length&&i(null)}s.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:(e,t,s)=>{var n,i="/"===s,a=!s;if(i&&me.root)throw new me.ErrnoError(10);if(!i&&!a){var r=me.lookupPath(s,{follow_mount:!1});if(s=r.path,n=r.node,me.isMountpoint(n))throw new me.ErrnoError(10);if(!me.isDir(n.mode))throw new me.ErrnoError(54)}var l={type:e,opts:t,mountpoint:s,mounts:[]},o=e.mount(l);return o.mount=l,l.root=o,i?me.root=o:n&&(n.mounted=l,n.mount&&n.mount.mounts.push(l)),o},unmount:e=>{var t=me.lookupPath(e,{follow_mount:!1});if(!me.isMountpoint(t.node))throw new me.ErrnoError(28);var s=t.node,n=s.mounted,i=me.getMounts(n);Object.keys(me.nameTable).forEach((e=>{for(var t=me.nameTable[e];t;){var s=t.name_next;i.includes(t.mount)&&me.destroyNode(t),t=s}})),s.mounted=null;var a=s.mount.mounts.indexOf(n);s.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var n=me.lookupPath(e,{parent:!0}).node,i=pe.basename(e);if(!i||"."===i||".."===i)throw new me.ErrnoError(28);var a=me.mayCreate(n,i);if(a)throw new me.ErrnoError(a);if(!n.node_ops.mknod)throw new me.ErrnoError(63);return n.node_ops.mknod(n,i,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,me.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,me.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),n="",i=0;i(void 0===s&&(s=t,t=438),t|=8192,me.mknod(e,t,s)),symlink:(e,t)=>{if(!Ae.resolve(e))throw new me.ErrnoError(44);var s=me.lookupPath(t,{parent:!0}).node;if(!s)throw new me.ErrnoError(44);var n=pe.basename(t),i=me.mayCreate(s,n);if(i)throw new me.ErrnoError(i);if(!s.node_ops.symlink)throw new me.ErrnoError(63);return s.node_ops.symlink(s,n,e)},rename:(e,t)=>{var s,n,i=pe.dirname(e),a=pe.dirname(t),r=pe.basename(e),l=pe.basename(t);if(s=me.lookupPath(e,{parent:!0}).node,n=me.lookupPath(t,{parent:!0}).node,!s||!n)throw new me.ErrnoError(44);if(s.mount!==n.mount)throw new me.ErrnoError(75);var o,c=me.lookupNode(s,r),u=Ae.relative(e,a);if("."!==u.charAt(0))throw new me.ErrnoError(28);if("."!==(u=Ae.relative(t,i)).charAt(0))throw new me.ErrnoError(55);try{o=me.lookupNode(n,l)}catch(e){}if(c!==o){var h=me.isDir(c.mode),p=me.mayDelete(s,r,h);if(p)throw new me.ErrnoError(p);if(p=o?me.mayDelete(n,l,h):me.mayCreate(n,l))throw new me.ErrnoError(p);if(!s.node_ops.rename)throw new me.ErrnoError(63);if(me.isMountpoint(c)||o&&me.isMountpoint(o))throw new me.ErrnoError(10);if(n!==s&&(p=me.nodePermissions(s,"w")))throw new me.ErrnoError(p);me.hashRemoveNode(c);try{s.node_ops.rename(c,n,l)}catch(e){throw e}finally{me.hashAddNode(c)}}},rmdir:e=>{var t=me.lookupPath(e,{parent:!0}).node,s=pe.basename(e),n=me.lookupNode(t,s),i=me.mayDelete(t,s,!0);if(i)throw new me.ErrnoError(i);if(!t.node_ops.rmdir)throw new me.ErrnoError(63);if(me.isMountpoint(n))throw new me.ErrnoError(10);t.node_ops.rmdir(t,s),me.destroyNode(n)},readdir:e=>{var t=me.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new me.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=me.lookupPath(e,{parent:!0}).node;if(!t)throw new me.ErrnoError(44);var s=pe.basename(e),n=me.lookupNode(t,s),i=me.mayDelete(t,s,!1);if(i)throw new me.ErrnoError(i);if(!t.node_ops.unlink)throw new me.ErrnoError(63);if(me.isMountpoint(n))throw new me.ErrnoError(10);t.node_ops.unlink(t,s),me.destroyNode(n)},readlink:e=>{var t=me.lookupPath(e).node;if(!t)throw new me.ErrnoError(44);if(!t.node_ops.readlink)throw new me.ErrnoError(28);return Ae.resolve(me.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=me.lookupPath(e,{follow:!t}).node;if(!s)throw new me.ErrnoError(44);if(!s.node_ops.getattr)throw new me.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>me.stat(e,!0),chmod:(e,t,s)=>{var n;if(!(n="string"==typeof e?me.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new me.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{me.chmod(e,t,!0)},fchmod:(e,t)=>{var s=me.getStream(e);if(!s)throw new me.ErrnoError(8);me.chmod(s.node,t)},chown:(e,t,s,n)=>{var i;if(!(i="string"==typeof e?me.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new me.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,s)=>{me.chown(e,t,s,!0)},fchown:(e,t,s)=>{var n=me.getStream(e);if(!n)throw new me.ErrnoError(8);me.chown(n.node,t,s)},truncate:(e,t)=>{if(t<0)throw new me.ErrnoError(28);var s;if(!(s="string"==typeof e?me.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new me.ErrnoError(63);if(me.isDir(s.mode))throw new me.ErrnoError(31);if(!me.isFile(s.mode))throw new me.ErrnoError(28);var n=me.nodePermissions(s,"w");if(n)throw new me.ErrnoError(n);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=me.getStream(e);if(!s)throw new me.ErrnoError(8);if(0==(2097155&s.flags))throw new me.ErrnoError(28);me.truncate(s.node,t)},utime:(e,t,s)=>{var n=me.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new me.ErrnoError(44);var n;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?me.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)n=e;else{e=pe.normalize(e);try{n=me.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var i=!1;if(64&t)if(n){if(128&t)throw new me.ErrnoError(20)}else n=me.mknod(e,s,0),i=!0;if(!n)throw new me.ErrnoError(44);if(me.isChrdev(n.mode)&&(t&=-513),65536&t&&!me.isDir(n.mode))throw new me.ErrnoError(54);if(!i){var a=me.mayOpen(n,t);if(a)throw new me.ErrnoError(a)}512&t&&!i&&me.truncate(n,0),t&=-131713;var r=me.createStream({node:n,path:me.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!h.logReadFiles||1&t||(me.readFiles||(me.readFiles={}),e in me.readFiles||(me.readFiles[e]=1)),r},close:e=>{if(me.isClosed(e))throw new me.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{me.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(me.isClosed(e))throw new me.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new me.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new me.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,n,i)=>{if(s>>>=0,n<0||i<0)throw new me.ErrnoError(28);if(me.isClosed(e))throw new me.ErrnoError(8);if(1==(2097155&e.flags))throw new me.ErrnoError(8);if(me.isDir(e.node.mode))throw new me.ErrnoError(31);if(!e.stream_ops.read)throw new me.ErrnoError(28);var a=void 0!==i;if(a){if(!e.seekable)throw new me.ErrnoError(70)}else i=e.position;var r=e.stream_ops.read(e,t,s,n,i);return a||(e.position+=r),r},write:(e,t,s,n,i,a)=>{if(s>>>=0,n<0||i<0)throw new me.ErrnoError(28);if(me.isClosed(e))throw new me.ErrnoError(8);if(0==(2097155&e.flags))throw new me.ErrnoError(8);if(me.isDir(e.node.mode))throw new me.ErrnoError(31);if(!e.stream_ops.write)throw new me.ErrnoError(28);e.seekable&&1024&e.flags&&me.llseek(e,0,2);var r=void 0!==i;if(r){if(!e.seekable)throw new me.ErrnoError(70)}else i=e.position;var l=e.stream_ops.write(e,t,s,n,i,a);return r||(e.position+=l),l},allocate:(e,t,s)=>{if(me.isClosed(e))throw new me.ErrnoError(8);if(t<0||s<=0)throw new me.ErrnoError(28);if(0==(2097155&e.flags))throw new me.ErrnoError(8);if(!me.isFile(e.node.mode)&&!me.isDir(e.node.mode))throw new me.ErrnoError(43);if(!e.stream_ops.allocate)throw new me.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,n,i)=>{if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new me.ErrnoError(2);if(1==(2097155&e.flags))throw new me.ErrnoError(2);if(!e.stream_ops.mmap)throw new me.ErrnoError(43);return e.stream_ops.mmap(e,t,s,n,i)},msync:(e,t,s,n,i)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,n,i):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new me.ErrnoError(59);return e.stream_ops.ioctl(e,t,s)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var s,n=me.open(e,t.flags),i=me.stat(e).size,a=new Uint8Array(i);return me.read(n,a,0,i,0),"utf8"===t.encoding?s=V(a,0):"binary"===t.encoding&&(s=a),me.close(n),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var n=me.open(e,s.flags,s.mode);if("string"==typeof t){var i=new Uint8Array(W(t)+1),a=Q(t,i,0,i.length);me.write(n,i,0,a,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");me.write(n,t,0,t.byteLength,void 0,s.canOwn)}me.close(n)},cwd:()=>me.currentPath,chdir:e=>{var t=me.lookupPath(e,{follow:!0});if(null===t.node)throw new me.ErrnoError(44);if(!me.isDir(t.node.mode))throw new me.ErrnoError(54);var s=me.nodePermissions(t.node,"x");if(s)throw new me.ErrnoError(s);me.currentPath=t.path},createDefaultDirectories:()=>{me.mkdir("/tmp"),me.mkdir("/home"),me.mkdir("/home/web_user")},createDefaultDevices:()=>{me.mkdir("/dev"),me.registerDevice(me.makedev(1,3),{read:()=>0,write:(e,t,s,n,i)=>n}),me.mkdev("/dev/null",me.makedev(1,3)),fe.register(me.makedev(5,0),fe.default_tty_ops),fe.register(me.makedev(6,0),fe.default_tty1_ops),me.mkdev("/dev/tty",me.makedev(5,0)),me.mkdev("/dev/tty1",me.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}return()=>le("randomDevice")}();me.createDevice("/dev","random",e),me.createDevice("/dev","urandom",e),me.mkdir("/dev/shm"),me.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{me.mkdir("/proc");var e=me.mkdir("/proc/self");me.mkdir("/proc/self/fd"),me.mount({mount:()=>{var t=me.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,n=me.getStream(s);if(!n)throw new me.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{h.stdin?me.createDevice("/dev","stdin",h.stdin):me.symlink("/dev/tty","/dev/stdin"),h.stdout?me.createDevice("/dev","stdout",null,h.stdout):me.symlink("/dev/tty","/dev/stdout"),h.stderr?me.createDevice("/dev","stderr",null,h.stderr):me.symlink("/dev/tty1","/dev/stderr"),me.open("/dev/stdin",0),me.open("/dev/stdout",1),me.open("/dev/stderr",1)},ensureErrnoError:()=>{me.ErrnoError||(me.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},me.ErrnoError.prototype=new Error,me.ErrnoError.prototype.constructor=me.ErrnoError,[44].forEach((e=>{me.genericErrors[e]=new me.ErrnoError(e),me.genericErrors[e].stack=""})))},staticInit:()=>{me.ensureErrnoError(),me.nameTable=new Array(4096),me.mount(ye,{},"/"),me.createDefaultDirectories(),me.createDefaultDevices(),me.createSpecialDirectories(),me.filesystems={MEMFS:ye}},init:(e,t,s)=>{me.init.initialized=!0,me.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=t||h.stdout,h.stderr=s||h.stderr,me.createStandardStreams()},quit:()=>{me.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=me.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(n=me.lookupPath(e,{follow:!t})).path}catch(e){}var s={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=me.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=n.path,s.parentObject=n.node,s.name=pe.basename(e),n=me.lookupPath(e,{follow:!t}),s.exists=!0,s.path=n.path,s.object=n.node,s.name=n.node.name,s.isRoot="/"===n.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,n)=>{e="string"==typeof e?e:me.getPath(e);for(var i=t.split("/").reverse();i.length;){var a=i.pop();if(a){var r=pe.join2(e,a);try{me.mkdir(r)}catch(e){}e=r}}return r},createFile:(e,t,s,n,i)=>{var a=pe.join2("string"==typeof e?e:me.getPath(e),t),r=me.getMode(n,i);return me.create(a,r)},createDataFile:(e,t,s,n,i,a)=>{var r=t;e&&(e="string"==typeof e?e:me.getPath(e),r=t?pe.join2(e,t):e);var l=me.getMode(n,i),o=me.create(r,l);if(s){if("string"==typeof s){for(var c=new Array(s.length),u=0,h=s.length;u{var i=pe.join2("string"==typeof e?e:me.getPath(e),t),a=me.getMode(!!s,!!n);me.createDevice.major||(me.createDevice.major=64);var r=me.makedev(me.createDevice.major++,0);return me.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,i,a)=>{for(var r=0,l=0;l{for(var r=0;r{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!p)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=de(p(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new me.ErrnoError(29)}},createLazyFile:(e,s,n,i,a)=>{function r(){this.lengthKnown=!1,this.chunks=[]}if(r.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,s=e/this.chunkSize|0;return this.getter(s)[t]}},r.prototype.setDataGetter=function(e){this.getter=e},r.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var t,s=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,r=1048576;i||(r=s);var l=this;l.setDataGetter((e=>{var t=e*r,i=(e+1)*r-1;if(i=Math.min(i,s-1),void 0===l.chunks[e]&&(l.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>s-1)throw new Error("only "+s+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",n,!1),s!==r&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+n+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):de(i.responseText||"",!0)})(t,i)),void 0===l.chunks[e])throw new Error("doXHR failed!");return l.chunks[e]})),!a&&s||(r=s=1,s=this.getter(0).length,r=s,D("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=s,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!v)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var l=new r;Object.defineProperties(l,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var o={isDevice:!1,contents:l}}else o={isDevice:!1,url:n};var c=me.createFile(e,s,o,i,a);o.contents?c.contents=o.contents:o.url&&(c.contents=null,c.url=o.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={};function h(e,t,s,n,i){var a=e.node.contents;if(i>=a.length)return 0;var r=Math.min(a.length-i,n);if(a.slice)for(var l=0;l{var t=c.stream_ops[e];u[e]=function(){return me.forceLoadFile(c),t.apply(null,arguments)}})),u.read=(e,t,s,n,i)=>(me.forceLoadFile(c),h(e,t,s,n,i)),u.mmap=(e,s,n,i,a)=>{me.forceLoadFile(c);var r=Ie();if(!r)throw new me.ErrnoError(48);return h(e,t(),r,s,n),{ptr:r,allocated:!0}},c.stream_ops=u,c},createPreloadedFile:(e,t,s,n,i,a,r,l,o,c)=>{var u=t?Ae.resolve(pe.join2(e,t)):e;function h(s){function h(s){c&&c(),l||me.createDataFile(e,t,s,n,i,o),a&&a(),re()}Browser.handledByPreloadPlugin(s,u,h,(()=>{r&&r(),re()}))||h(s)}ae(),"string"==typeof s?function(e,t,s,n){var i=n?"":"al "+e;A(e,(s=>{S(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),i&&re()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),i&&ae()}(s,(e=>h(e)),r):h(s)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=me.indexedDB();try{var i=n.open(me.DB_NAME(),me.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=()=>{D("creating db"),i.result.createObjectStore(me.DB_STORE_NAME)},i.onsuccess=()=>{var n=i.result.transaction([me.DB_STORE_NAME],"readwrite"),a=n.objectStore(me.DB_STORE_NAME),r=0,l=0,o=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=a.put(me.analyzePath(e).object.contents,e);t.onsuccess=()=>{++r+l==o&&c()},t.onerror=()=>{l++,r+l==o&&c()}})),n.onerror=s},i.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=me.indexedDB();try{var i=n.open(me.DB_NAME(),me.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=s,i.onsuccess=()=>{var n=i.result;try{var a=n.transaction([me.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var r=a.objectStore(me.DB_STORE_NAME),l=0,o=0,c=e.length;function u(){0==o?t():s()}e.forEach((e=>{var t=r.get(e);t.onsuccess=()=>{me.analyzePath(e).exists&&me.unlink(e),me.createDataFile(pe.dirname(e),pe.basename(e),t.result,!0,!0,!0),++l+o==c&&u()},t.onerror=()=>{o++,l+o==c&&u()}})),a.onerror=s},i.onerror=s}},ve={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(pe.isAbs(t))return t;var n;if(n=-100===e?me.cwd():ve.getStreamFromFD(e).path,0==t.length){if(!s)throw new me.ErrnoError(44);return n}return pe.join2(n,t)},doStat:function(e,t,s){try{var n=e(t)}catch(e){if(e&&e.node&&pe.normalize(t)!==pe.normalize(me.getPath(e.node)))return-54;throw e}r()[s>>>2]=n.dev,r()[s+8>>>2]=n.ino,r()[s+12>>>2]=n.mode,l()[s+16>>>2]=n.nlink,r()[s+20>>>2]=n.uid,r()[s+24>>>2]=n.gid,r()[s+28>>>2]=n.rdev,se=[n.size>>>0,(te=n.size,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+40>>>2]=se[0],r()[s+44>>>2]=se[1],r()[s+48>>>2]=4096,r()[s+52>>>2]=n.blocks;var i=n.atime.getTime(),a=n.mtime.getTime(),o=n.ctime.getTime();return se=[Math.floor(i/1e3)>>>0,(te=Math.floor(i/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+56>>>2]=se[0],r()[s+60>>>2]=se[1],l()[s+64>>>2]=i%1e3*1e3,se=[Math.floor(a/1e3)>>>0,(te=Math.floor(a/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+72>>>2]=se[0],r()[s+76>>>2]=se[1],l()[s+80>>>2]=a%1e3*1e3,se=[Math.floor(o/1e3)>>>0,(te=Math.floor(o/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+88>>>2]=se[0],r()[s+92>>>2]=se[1],l()[s+96>>>2]=o%1e3*1e3,se=[n.ino>>>0,(te=n.ino,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[s+104>>>2]=se[0],r()[s+108>>>2]=se[1],0},doMsync:function(e,t,s,i,a){if(!me.isFile(t.node.mode))throw new me.ErrnoError(43);if(2&i)return 0;e>>>=0;var r=n().slice(e,e+s);me.msync(t,r,a,s,i)},varargs:void 0,get:function(){return ve.varargs+=4,r()[ve.varargs-4>>>2]},getStr:function(e){return k(e)},getStreamFromFD:function(e){var t=me.getStream(e);if(!t)throw new me.ErrnoError(8);return t}};function we(e){if(g)return os(1,1,e);B=e,Z()||(Ee.terminateAllThreads(),h.onExit&&h.onExit(e),O=!0),y(e,new ue(e))}var ge=function(e,t){if(B=e,!t&&g)throw be(e),"unwind";we(e)},Ee={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){g?Ee.initWorker():Ee.initMainThread()},initMainThread:function(){for(var e=navigator.hardwareConcurrency;e--;)Ee.allocateUnusedWorker()},initWorker:function(){_=!1},setExitStatus:function(e){B=e},terminateAllThreads:function(){for(var e of Object.values(Ee.pthreads))Ee.returnWorkerToPool(e);for(var e of Ee.unusedWorkers)e.terminate();Ee.unusedWorkers=[]},returnWorkerToPool:function(e){var t=e.pthread_ptr;delete Ee.pthreads[t],Ee.unusedWorkers.push(e),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Ls(t)},receiveObjectTransfer:function(e){},threadInitTLS:function(){Ee.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:e=>new Promise((t=>{e.onmessage=s=>{var n,i=s.data,a=i.cmd;if(e.pthread_ptr&&(Ee.currentProxiedOperationCallerThread=e.pthread_ptr),i.targetThread&&i.targetThread!=_s()){var r=Ee.pthreads[i.targetThread];return r?r.postMessage(i,i.transferList):P('Internal error! Worker sent a message "'+a+'" to target pthread '+i.targetThread+", but that thread no longer exists!"),void(Ee.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===a?ts(i.queue):"spawnThread"===a?function(e){var t=Ee.getNewWorker();if(!t)return 6;Ee.runningWorkers.push(t),Ee.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var s={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};t.postMessage(s,e.transferList)}(i):"cleanupThread"===a?he(i.thread):"killThread"===a?function(e){var t=Ee.pthreads[e];delete Ee.pthreads[e],t.terminate(),Ls(e),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(t),1),t.pthread_ptr=0}(i.thread):"cancelThread"===a?(n=i.thread,Ee.pthreads[n].postMessage({cmd:"cancel"})):"loaded"===a?(e.loaded=!0,t(e)):"print"===a?D("Thread "+i.threadId+": "+i.text):"printErr"===a?P("Thread "+i.threadId+": "+i.text):"alert"===a?alert("Thread "+i.threadId+": "+i.text):"setimmediate"===i.target?e.postMessage(i):"callHandler"===a?h[i.handler](...i.args):a&&P("worker sent an unknown command "+a),Ee.currentProxiedOperationCallerThread=void 0},e.onerror=e=>{throw P("worker sent an error! "+e.filename+":"+e.lineno+": "+e.message),e};var n=[];for(var i of["onExit","onAbort","print","printErr"])h.hasOwnProperty(i)&&n.push(i);e.postMessage({cmd:"load",handlers:n,urlOrBlob:h.mainScriptUrlOrBlob||s,wasmMemory:R,wasmModule:C})})),loadWasmModuleToAllWorkers:function(e){if(g)return e();Promise.all(Ee.unusedWorkers.map(Ee.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker:function(){var e,t=T("web-ifc-mt.worker.js");e=new Worker(t),Ee.unusedWorkers.push(e)},getNewWorker:function(){return 0==Ee.unusedWorkers.length&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.pop()}};function Te(e){for(;e.length>0;)e.shift()(h)}function be(e){if(g)return os(2,0,e);try{ge(e)}catch(e){!function(e){if(e instanceof ue||"unwind"==e)return B;y(1,e)}(e)}}h.PThread=Ee,h.establishStackSpace=function(){var e=_s(),t=r()[e+52>>>2],s=r()[e+56>>>2];Hs(t,t-s),Gs(t)};var De=[];function Pe(e){var t=De[e];return t||(e>=De.length&&(De.length=e+1),De[e]=t=K.get(e)),t}function Re(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){l()[this.ptr+4>>>2]=e},this.get_type=function(){return l()[this.ptr+4>>>2]},this.set_destructor=function(e){l()[this.ptr+8>>>2]=e},this.get_destructor=function(){return l()[this.ptr+8>>>2]},this.set_refcount=function(e){r()[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,t()[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=t()[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,t()[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=t()[this.ptr+13>>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){Atomics.add(r(),this.ptr+0>>2,1)},this.release_ref=function(){return 1===Atomics.sub(r(),this.ptr+0>>2,1)},this.set_adjusted_ptr=function(e){l()[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return l()[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Vs(this.get_type()))return l()[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}h.invokeEntryPoint=function(e,t){var s=Pe(e)(t);Z()?Ee.setExitStatus(s):Ms(s)};var Ce="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking",_e={};function Be(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Oe(e){return this.fromWireType(r()[e>>>2])}var Se={},Ne={},xe={};function Le(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function Me(e,t){return e=Le(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Fe(e,t){var s=Me(t,(function(e){this.name=t,this.message=e;var s=new Error(e).stack;void 0!==s&&(this.stack=this.toString()+"\n"+s.replace(/^Error(:[^\n]*)?\n/,""))}));return s.prototype=Object.create(e.prototype),s.prototype.constructor=s,s.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},s}var He=void 0;function Ue(e){throw new He(e)}function Ge(e,t,s){function n(t){var n=s(t);n.length!==e.length&&Ue("Mismatched type converter count");for(var i=0;i{Ne.hasOwnProperty(e)?i[t]=Ne[e]:(a.push(e),Se.hasOwnProperty(e)||(Se[e]=[]),Se[e].push((()=>{i[t]=Ne[e],++r===a.length&&n(i)})))})),0===a.length&&n(i)}var je={};function Ve(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var ke=void 0;function Qe(e){for(var t="",s=e;n()[s>>>0];)t+=ke[n()[s++>>>0]];return t}var We=void 0;function ze(e){throw new We(e)}function Ke(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||ze('type "'+n+'" must have a positive integer typeid pointer'),Ne.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ze("Cannot register type '"+n+"' twice")}if(Ne[e]=t,delete xe[e],Se.hasOwnProperty(e)){var i=Se[e];delete Se[e],i.forEach((e=>e()))}}function Ye(e){if(!(this instanceof yt))return!1;if(!(e instanceof yt))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&s===i}function Xe(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function qe(e){ze(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Je=!1;function Ze(e){}function $e(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function et(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var n=et(e,t,s.baseClass);return null===n?null:s.downcast(n)}var tt={};function st(){return Object.keys(ot).length}function nt(){var e=[];for(var t in ot)ot.hasOwnProperty(t)&&e.push(ot[t]);return e}var it=[];function at(){for(;it.length;){var e=it.pop();e.$$.deleteScheduled=!1,e.delete()}}var rt=void 0;function lt(e){rt=e,it.length&&rt&&rt(at)}var ot={};function ct(e,t){return t=function(e,t){for(void 0===t&&ze("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),ot[t]}function ut(e,t){return t.ptrType&&t.ptr||Ue("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Ue("Both smartPtrType and smartPtr must be specified"),t.count={value:1},pt(Object.create(e,{$$:{value:t}}))}function ht(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=ct(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var n=s.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?ut(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ut(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,r=this.registeredClass.getActualType(t),l=tt[r];if(!l)return i.call(this);a=this.isConst?l.constPointerType:l.pointerType;var o=et(t,this.registeredClass,a.registeredClass);return null===o?i.call(this):this.isSmartPointer?ut(a.registeredClass.instancePrototype,{ptrType:a,ptr:o,smartPtrType:this,smartPtr:e}):ut(a.registeredClass.instancePrototype,{ptrType:a,ptr:o})}function pt(e){return"undefined"==typeof FinalizationRegistry?(pt=e=>e,e):(Je=new FinalizationRegistry((e=>{$e(e.$$)})),Ze=e=>Je.unregister(e),(pt=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};Je.register(e,s,e)}return e})(e))}function At(){if(this.$$.ptr||qe(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=pt(Object.create(Object.getPrototypeOf(this),{$$:{value:Xe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function dt(){this.$$.ptr||qe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),Ze(this),$e(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ft(){return!this.$$.ptr}function It(){return this.$$.ptr||qe(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),it.push(this),1===it.length&&rt&&rt(at),this.$$.deleteScheduled=!0,this}function yt(){}function mt(e,t,s){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ze("Function '"+s+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function vt(e,t,s){h.hasOwnProperty(e)?((void 0===s||void 0!==h[e].overloadTable&&void 0!==h[e].overloadTable[s])&&ze("Cannot register public name '"+e+"' twice"),mt(h,e,e),h.hasOwnProperty(s)&&ze("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),h[e].overloadTable[s]=t):(h[e]=t,void 0!==s&&(h[e].numArguments=s))}function wt(e,t,s,n,i,a,r,l){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=r,this.downcast=l,this.pureVirtualFunctions=[]}function gt(e,t,s){for(;t!==s;)t.upcast||ze("Expected null or instance of "+s.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Et(e,t){if(null===t)return this.isReference&&ze("null is not a valid "+this.name),0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return gt(t.$$.ptr,s,this.registeredClass)}function Tt(e,t){var s;if(null===t)return this.isReference&&ze("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ze("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(s=gt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ze("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ze("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:s=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)s=t.$$.smartPtr;else{var i=t.clone();s=this.rawShare(s,Vt.toHandle((function(){i.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ze("Unsupporting sharing policy")}return s}function bt(e,t){if(null===t)return this.isReference&&ze("null is not a valid "+this.name),0;t.$$||ze('Cannot pass "'+Wt(t)+'" as a '+this.name),t.$$.ptr||ze("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ze("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return gt(t.$$.ptr,s,this.registeredClass)}function Dt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Pt(e){this.rawDestructor&&this.rawDestructor(e)}function Rt(e){null!==e&&e.delete()}function Ct(e,t,s,n,i,a,r,l,o,c,u){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=r,this.rawGetPointee=l,this.rawConstructor=o,this.rawShare=c,this.rawDestructor=u,i||void 0!==t.baseClass?this.toWireType=Tt:n?(this.toWireType=Et,this.destructorFunction=null):(this.toWireType=bt,this.destructorFunction=null)}function _t(e,t,s){h.hasOwnProperty(e)||Ue("Replacing nonexistant public symbol"),void 0!==h[e].overloadTable&&void 0!==s?h[e].overloadTable[s]=t:(h[e]=t,h[e].argCount=s)}function Bt(e,t,s){return e.includes("j")?function(e,t,s){var n=h["dynCall_"+e];return s&&s.length?n.apply(null,[t].concat(s)):n.call(null,t)}(e,t,s):Pe(t).apply(null,s)}function Ot(e,t){var s,n,i,a=(e=Qe(e)).includes("j")?(s=e,n=t,i=[],function(){return i.length=0,Object.assign(i,arguments),Bt(s,n,i)}):Pe(t);return"function"!=typeof a&&ze("unknown function pointer with signature "+e+": "+t),a}var St=void 0;function Nt(e){var t=Bs(e),s=Qe(t);return Fs(t),s}function xt(e,t){var s=[],n={};throw t.forEach((function e(t){n[t]||Ne[t]||(xe[t]?xe[t].forEach(e):(s.push(t),n[t]=!0))})),new St(e+": "+s.map(Nt).join([", "]))}function Lt(e,t){for(var s=[],n=0;n>>2]);return s}function Mt(e,t,s,n,i){var a=t.length;a<2&&ze("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==s,l=!1,o=1;o0?", ":"")+h),p+=(c?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",l)p+="runDestructors(destructors);\n";else for(o=r?1:2;o4&&0==--Ht[e].refcount&&(Ht[e]=void 0,Ft.push(e))}function Gt(){for(var e=0,t=5;t(e||ze("Cannot use deleted val. handle = "+e),Ht[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ft.length?Ft.pop():Ht.length;return Ht[t]={refcount:1,value:e},t}}};function kt(e,s,o){switch(s){case 0:return function(e){var s=o?t():n();return this.fromWireType(s[e>>>0])};case 1:return function(e){var t=o?i():a();return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=o?r():l();return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Qt(e,t){var s=Ne[e];return void 0===s&&ze(t+" has unknown type "+Nt(e)),s}function Wt(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function zt(e,t){switch(t){case 2:return function(e){return this.fromWireType((R.buffer!=N.buffer&&z(),U)[e>>>2])};case 3:return function(e){return this.fromWireType(o()[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Kt(e,s,o){switch(s){case 0:return o?function(e){return t()[e>>>0]}:function(e){return n()[e>>>0]};case 1:return o?function(e){return i()[e>>>1]}:function(e){return a()[e>>>1]};case 2:return o?function(e){return r()[e>>>2]}:function(e){return l()[e>>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Yt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Xt(e,t){for(var s=e,r=s>>1,l=r+t/2;!(r>=l)&&a()[r>>>0];)++r;if((s=r<<1)-e>32&&Yt)return Yt.decode(n().slice(e,s));for(var o="",c=0;!(c>=t/2);++c){var u=i()[e+2*c>>>1];if(0==u)break;o+=String.fromCharCode(u)}return o}function qt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var n=t,a=(s-=2)<2*e.length?s/2:e.length,r=0;r>>1]=l,t+=2}return i()[t>>>1]=0,t-n}function Jt(e){return 2*e.length}function Zt(e,t){for(var s=0,n="";!(s>=t/4);){var i=r()[e+4*s>>>2];if(0==i)break;if(++s,i>=65536){var a=i-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(i)}return n}function $t(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var n=t>>>=0,i=n+s-4,a=0;a=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++a)),r()[t>>>2]=l,(t+=4)+4>i)break}return r()[t>>>2]=0,t-n}function es(e){for(var t=0,s=0;s=55296&&n<=57343&&++s,t+=4}return t}function ts(e){Atomics.store(r(),e>>2,1),_s()&&xs(e),Atomics.compareExchange(r(),e>>2,1,0)}h.executeNotifiedProxyingQueue=ts;var ss,ns={};function is(e){var t=ns[e];return void 0===t?Qe(e):t}function as(){return"object"==typeof globalThis?globalThis:Function("return this")()}function rs(e){rs.shown||(rs.shown={}),rs.shown[e]||(rs.shown[e]=1,P(e))}function ls(e){var t=Us(),s=e();return Gs(t),s}function os(e,t){var s=arguments.length-2,n=arguments;return ls((()=>{for(var i=s,a=js(8*i),r=a>>3,l=0;l>>0]=c}return Ns(e,i,a,t)}))}ss=()=>performance.timeOrigin+performance.now();var cs=[];function us(e){var t=R.buffer;try{return R.grow(e-t.byteLength+65535>>>16),z(),1}catch(e){}}var hs={};function ps(){if(!ps.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:I||"./this.program"};for(var t in hs)void 0===hs[t]?delete e[t]:e[t]=hs[t];var s=[];for(var t in e)s.push(t+"="+e[t]);ps.strings=s}return ps.strings}function As(e,s){if(g)return os(3,1,e,s);var n=0;return ps().forEach((function(i,a){var r=s+n;l()[e+4*a>>>2]=r,function(e,s,n){for(var i=0;i>>0]=e.charCodeAt(i);n||(t()[s>>>0]=0)}(i,r),n+=i.length+1})),0}function ds(e,t){if(g)return os(4,1,e,t);var s=ps();l()[e>>>2]=s.length;var n=0;return s.forEach((function(e){n+=e.length+1})),l()[t>>>2]=n,0}function fs(e){if(g)return os(5,1,e);try{var t=ve.getStreamFromFD(e);return me.close(t),0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function Is(e,s,n,i){if(g)return os(6,1,e,s,n,i);try{var a=function(e,s,n,i){for(var a=0,r=0;r>>2],c=l()[s+4>>>2];s+=8;var u=me.read(e,t(),o,c,i);if(u<0)return-1;if(a+=u,u>>2]=a,0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function ys(e,t,s,n,i){if(g)return os(7,1,e,t,s,n,i);try{var a=(c=s)+2097152>>>0<4194305-!!(o=t)?(o>>>0)+4294967296*c:NaN;if(isNaN(a))return 61;var l=ve.getStreamFromFD(e);return me.llseek(l,a,n),se=[l.position>>>0,(te=l.position,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],r()[i>>>2]=se[0],r()[i+4>>>2]=se[1],l.getdents&&0===a&&0===n&&(l.getdents=null),0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}var o,c}function ms(e,s,n,i){if(g)return os(8,1,e,s,n,i);try{var a=function(e,s,n,i){for(var a=0,r=0;r>>2],c=l()[s+4>>>2];s+=8;var u=me.write(e,t(),o,c,i);if(u<0)return-1;a+=u,void 0!==i&&(i+=u)}return a}(ve.getStreamFromFD(e),s,n);return l()[i>>>2]=a,0}catch(e){if(void 0===me||!(e instanceof me.ErrnoError))throw e;return e.errno}}function vs(e){return e%4==0&&(e%100!=0||e%400==0)}var ws=[31,29,31,30,31,30,31,31,30,31,30,31],gs=[31,28,31,30,31,30,31,31,30,31,30,31];function Es(e,s,n,i){var a=r()[i+40>>>2],l={tm_sec:r()[i>>>2],tm_min:r()[i+4>>>2],tm_hour:r()[i+8>>>2],tm_mday:r()[i+12>>>2],tm_mon:r()[i+16>>>2],tm_year:r()[i+20>>>2],tm_wday:r()[i+24>>>2],tm_yday:r()[i+28>>>2],tm_isdst:r()[i+32>>>2],tm_gmtoff:r()[i+36>>>2],tm_zone:a?k(a):""},o=k(n),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in c)o=o.replace(new RegExp(u,"g"),c[u]);var h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p=["January","February","March","April","May","June","July","August","September","October","November","December"];function A(e,t,s){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=s(e.getFullYear()-t.getFullYear()))&&0===(n=s(e.getMonth()-t.getMonth()))&&(n=s(e.getDate()-t.getDate())),n}function I(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function y(e){var t=function(e,t){for(var s=new Date(e.getTime());t>0;){var n=vs(s.getFullYear()),i=s.getMonth(),a=(n?ws:gs)[i];if(!(t>a-s.getDate()))return s.setDate(s.getDate()+t),s;t-=a-s.getDate()+1,s.setDate(1),i<11?s.setMonth(i+1):(s.setMonth(0),s.setFullYear(s.getFullYear()+1))}return s}(new Date(e.tm_year+1900,0,1),e.tm_yday),s=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=I(s),a=I(n);return f(i,t)<=0?f(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var m={"%a":function(e){return h[e.tm_wday].substring(0,3)},"%A":function(e){return h[e.tm_wday]},"%b":function(e){return p[e.tm_mon].substring(0,3)},"%B":function(e){return p[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return A(e.tm_mday,2," ")},"%g":function(e){return y(e).toString().substring(2)},"%G":function(e){return y(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(e){return d(e.tm_mday+function(e,t){for(var s=0,n=0;n<=t;s+=e[n++]);return s}(vs(e.tm_year+1900)?ws:gs,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return d(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var s=(e.tm_wday+371-e.tm_yday)%7;4==s||3==s&&vs(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&vs(e.tm_year%400-1))&&t++}return d(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,s=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(s?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var u in o=o.replace(/%%/g,"\0\0"),m)o.includes(u)&&(o=o.replace(new RegExp(u,"g"),m[u](l)));var v,w,g=de(o=o.replace(/\0\0/g,"%"),!1);return g.length>s?0:(v=g,w=e,t().set(v,w>>>0),g.length-1)}Ee.init();var Ts=function(e,t,s,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=me.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=n},bs=365,Ds=146;Object.defineProperties(Ts.prototype,{read:{get:function(){return(this.mode&bs)===bs},set:function(e){e?this.mode|=bs:this.mode&=-366}},write:{get:function(){return(this.mode&Ds)===Ds},set:function(e){e?this.mode|=Ds:this.mode&=-147}},isFolder:{get:function(){return me.isDir(this.mode)}},isDevice:{get:function(){return me.isChrdev(this.mode)}}}),me.FSNode=Ts,me.staticInit(),He=h.InternalError=Fe(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ke=e}(),We=h.BindingError=Fe(Error,"BindingError"),yt.prototype.isAliasOf=Ye,yt.prototype.clone=At,yt.prototype.delete=dt,yt.prototype.isDeleted=ft,yt.prototype.deleteLater=It,h.getInheritedInstanceCount=st,h.getLiveInheritedInstances=nt,h.flushPendingDeletes=at,h.setDelayFunction=lt,Ct.prototype.getPointee=Dt,Ct.prototype.destructor=Pt,Ct.prototype.argPackAdvance=8,Ct.prototype.readValueFromPointer=Oe,Ct.prototype.deleteObject=Rt,Ct.prototype.fromWireType=ht,St=h.UnboundTypeError=Fe(Error,"UnboundTypeError"),h.count_emval_handles=Gt,h.get_first_emval=jt;var Ps=[null,we,be,As,ds,fs,Is,ys,ms],Rs={g:function(e,t,s){throw new Re(e).init(t,s),e},T:function(e){Os(e,!v,1,!m),Ee.threadInitTLS()},J:function(e){g?postMessage({cmd:"cleanupThread",thread:e}):he(e)},X:function(e){},_:function(e){le(Ce)},Z:function(e,t){le(Ce)},da:function(e){var t=_e[e];delete _e[e];var s=t.elements,n=s.length,i=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),a=t.rawConstructor,r=t.rawDestructor;Ge([e],i,(function(e){return s.forEach(((t,s)=>{var i=e[s],a=t.getter,r=t.getterContext,l=e[s+n],o=t.setter,c=t.setterContext;t.read=e=>i.fromWireType(a(r,e)),t.write=(e,t)=>{var s=[];o(c,e,l.toWireType(s,t)),Be(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),i=0;i>>o])},destructorFunction:null})},p:function(e,t,s,n,i,a,r,l,o,c,u,h,p){u=Qe(u),a=Ot(i,a),l&&(l=Ot(r,l)),c&&(c=Ot(o,c)),p=Ot(h,p);var A=Le(u);vt(A,(function(){xt("Cannot construct "+u+" due to unbound types",[n])})),Ge([e,t,s],n?[n]:[],(function(t){var s,i;t=t[0],i=n?(s=t.registeredClass).instancePrototype:yt.prototype;var r=Me(A,(function(){if(Object.getPrototypeOf(this)!==o)throw new We("Use 'new' to construct "+u);if(void 0===h.constructor_body)throw new We(u+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new We("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(h.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),o=Object.create(i,{constructor:{value:r}});r.prototype=o;var h=new wt(u,r,o,p,s,a,l,c),d=new Ct(u,h,!0,!1,!1),f=new Ct(u+"*",h,!1,!1,!1),I=new Ct(u+" const*",h,!1,!0,!1);return tt[e]={pointerType:f,constPointerType:I},_t(A,r),[d,f,I]}))},o:function(e,t,s,n,i,a){S(t>0);var r=Lt(t,s);i=Ot(n,i),Ge([],[e],(function(e){var s="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new We("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=()=>{xt("Cannot construct "+e.name+" due to unbound types",r)},Ge([],r,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Mt(s,n,null,i,a),[]})),[]}))},c:function(e,t,s,n,i,a,r,l){var o=Lt(s,n);t=Qe(t),a=Ot(i,a),Ge([],[e],(function(e){var n=(e=e[0]).name+"."+t;function i(){xt("Cannot call "+n+" due to unbound types",o)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),l&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===s-2?(i.argCount=s-2,i.className=e.name,c[t]=i):(mt(c,t,n),c[t].overloadTable[s-2]=i),Ge([],o,(function(i){var l=Mt(n,i,e,a,r);return void 0===c[t].overloadTable?(l.argCount=s-2,c[t]=l):c[t].overloadTable[s-2]=l,[]})),[]}))},aa:function(e,t){Ke(e,{name:t=Qe(t),fromWireType:function(e){var t=Vt.toValue(e);return Ut(e),t},toWireType:function(e,t){return Vt.toHandle(t)},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:null})},D:function(e,t,s,n){var i=Ve(s);function a(){}t=Qe(t),a.values={},Ke(e,{name:t,constructor:a,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:kt(t,i,n),destructorFunction:null}),vt(t,a)},t:function(e,t,s){var n=Qt(e,"enum");t=Qe(t);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:s},constructor:{value:Me(n.name+"_"+t,(function(){}))}});i.values[s]=a,i[t]=a},B:function(e,t,s){var n=Ve(s);Ke(e,{name:t=Qe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:zt(t,n),destructorFunction:null})},d:function(e,t,s,n,i,a){var r=Lt(t,s);e=Qe(e),i=Ot(n,i),vt(e,(function(){xt("Cannot call "+e+" due to unbound types",r)}),t-1),Ge([],r,(function(s){var n=[s[0],null].concat(s.slice(1));return _t(e,Mt(e,n,null,i,a),t-1),[]}))},s:function(e,t,s,n,i){t=Qe(t);var a=Ve(s),r=e=>e;if(0===n){var l=32-8*s;r=e=>e<>>l}var o=t.includes("unsigned");Ke(e,{name:t,fromWireType:r,toWireType:o?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:Kt(t,a,0!==n),destructorFunction:null})},i:function(e,t,s){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){e>>=2;var t=l(),s=t[e>>>0],i=t[e+1>>>0];return new n(t.buffer,i,s)}Ke(e,{name:s=Qe(s),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},C:function(e,t){var s="std::string"===(t=Qe(t));Ke(e,{name:t,fromWireType:function(e){var t,i=l()[e>>>2],a=e+4;if(s)for(var r=a,o=0;o<=i;++o){var c=a+o;if(o==i||0==n()[c>>>0]){var u=k(r,c-r);void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),r=c+1}}else{var h=new Array(i);for(o=0;o>>0]);t=h.join("")}return Fs(e),t},toWireType:function(e,t){var i;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var a="string"==typeof t;a||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ze("Cannot pass non-string to std::string"),i=s&&a?W(t):t.length;var r,o,c=Cs(4+i+1),u=c+4;if(u>>>=0,l()[c>>>2]=i,s&&a)r=u,o=i+1,Q(t,n(),r,o);else if(a)for(var h=0;h255&&(Fs(u),ze("String has UTF-16 code units that do not fit in 8 bits")),n()[u+h>>>0]=p}else for(h=0;h>>0]=t[h];return null!==e&&e.push(Fs,c),c},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:function(e){Fs(e)}})},x:function(e,t,s){var n,i,r,o,c;s=Qe(s),2===t?(n=Xt,i=qt,o=Jt,r=()=>a(),c=1):4===t&&(n=Zt,i=$t,o=es,r=()=>l(),c=2),Ke(e,{name:s,fromWireType:function(e){for(var s,i=l()[e>>>2],a=r(),o=e+4,u=0;u<=i;++u){var h=e+4+u*t;if(u==i||0==a[h>>>c]){var p=n(o,h-o);void 0===s?s=p:(s+=String.fromCharCode(0),s+=p),o=h+t}}return Fs(e),s},toWireType:function(e,n){"string"!=typeof n&&ze("Cannot pass non-string to C++ string type "+s);var a=o(n),r=Cs(4+a+t);return r>>>=0,l()[r>>>2]=a>>c,i(n,r+4,a+t),null!==e&&e.push(Fs,r),r},argPackAdvance:8,readValueFromPointer:Oe,destructorFunction:function(e){Fs(e)}})},ea:function(e,t,s,n,i,a){_e[e]={name:Qe(t),rawConstructor:Ot(s,n),rawDestructor:Ot(i,a),elements:[]}},j:function(e,t,s,n,i,a,r,l,o){_e[e].elements.push({getterReturnType:t,getter:Ot(s,n),getterContext:i,setterArgumentType:a,setter:Ot(r,l),setterContext:o})},r:function(e,t,s,n,i,a){je[e]={name:Qe(t),rawConstructor:Ot(s,n),rawDestructor:Ot(i,a),fields:[]}},f:function(e,t,s,n,i,a,r,l,o,c){je[e].fields.push({fieldName:Qe(t),getterReturnType:s,getter:Ot(n,i),getterContext:a,setterArgumentType:r,setter:Ot(l,o),setterContext:c})},ca:function(e,t){Ke(e,{isVoid:!0,name:t=Qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},Y:function(e){P(k(e))},V:function(e,t,s,n){if(e==t)setTimeout((()=>ts(n)));else if(g)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:n});else{var i=Ee.pthreads[e];if(!i)return;i.postMessage({cmd:"processProxyingQueue",queue:n})}return 1},S:function(e,t,s){return-1},n:function(e,t,s){e=Vt.toValue(e),t=Qt(t,"emval::as");var n=[],i=Vt.toHandle(n);return l()[s>>>2]=i,t.toWireType(n,e)},z:function(e,t,s,n){e=Vt.toValue(e);for(var i=function(e,t){for(var s=new Array(e),n=0;n>>2],"parameter "+n);return s}(t,s),a=new Array(t),r=0;r4&&(Ht[e].refcount+=1)},ga:function(e,t){return(e=Vt.toValue(e))instanceof(t=Vt.toValue(t))},y:function(e){return"number"==typeof(e=Vt.toValue(e))},E:function(e){return"string"==typeof(e=Vt.toValue(e))},fa:function(){return Vt.toHandle([])},h:function(e){return Vt.toHandle(is(e))},w:function(){return Vt.toHandle({})},m:function(e){Be(Vt.toValue(e)),Ut(e)},k:function(e,t,s){e=Vt.toValue(e),t=Vt.toValue(t),s=Vt.toValue(s),e[t]=s},e:function(e,t){var s=(e=Qt(e,"_emval_take_value")).readValueFromPointer(t);return Vt.toHandle(s)},A:function(){le("")},U:function(){v||rs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},v:ss,W:function(e,t,s){n().copyWithin(e>>>0,t>>>0,t+s>>>0)},R:function(e,t,s){cs.length=t;for(var n=s>>3,i=0;i>>0];return Ps[e].apply(null,cs)},P:function(e){var t=n().length;if((e>>>=0)<=t)return!1;var s,i,a=4294901760;if(e>a)return!1;for(var r=1;r<=4;r*=2){var l=t*(1+.2/r);if(l=Math.min(l,e+100663296),us(Math.min(a,(s=Math.max(e,l))+((i=65536)-s%i)%i)))return!0}return!1},$:function(){throw"unwind"},L:As,M:ds,I:ge,N:fs,O:Is,G:ys,Q:ms,a:R||h.wasmMemory,K:function(e,t,s,n,i){return Es(e,t,s,n)}};!function(){var e={a:Rs};function t(e,t){var s,n,i=e.exports;h.asm=i,s=h.asm.ka,Ee.tlsInitFunctions.push(s),K=h.asm.ia,n=h.asm.ha,q.unshift(n),C=t,Ee.loadWasmModuleToAllWorkers((()=>re()))}function s(e){t(e.instance,e.module)}function n(t){return(b||!m&&!v||"function"!=typeof fetch?Promise.resolve().then((function(){return ce(ee)})):fetch(ee,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ee+"'";return e.arrayBuffer()})).catch((function(){return ce(ee)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){P("failed to asynchronously prepare wasm: "+e),le(e)}))}if(ae(),h.instantiateWasm)try{return h.instantiateWasm(e,t)}catch(e){P("Module.instantiateWasm callback failed with error: "+e),u(e)}(b||"function"!=typeof WebAssembly.instantiateStreaming||oe(ee)||"function"!=typeof fetch?n(s):fetch(ee,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return P("wasm streaming compile failed: "+e),P("falling back to ArrayBuffer instantiation"),n(s)}))}))).catch(u)}();var Cs=function(){return(Cs=h.asm.ja).apply(null,arguments)};h.__emscripten_tls_init=function(){return(h.__emscripten_tls_init=h.asm.ka).apply(null,arguments)};var _s=h._pthread_self=function(){return(_s=h._pthread_self=h.asm.la).apply(null,arguments)},Bs=h.___getTypeName=function(){return(Bs=h.___getTypeName=h.asm.ma).apply(null,arguments)};h.__embind_initialize_bindings=function(){return(h.__embind_initialize_bindings=h.asm.na).apply(null,arguments)};var Os=h.__emscripten_thread_init=function(){return(Os=h.__emscripten_thread_init=h.asm.oa).apply(null,arguments)};h.__emscripten_thread_crashed=function(){return(h.__emscripten_thread_crashed=h.asm.pa).apply(null,arguments)};var Ss,Ns=function(){return(Ns=h.asm.qa).apply(null,arguments)},xs=h.__emscripten_proxy_execute_task_queue=function(){return(xs=h.__emscripten_proxy_execute_task_queue=h.asm.ra).apply(null,arguments)},Ls=function(){return(Ls=h.asm.sa).apply(null,arguments)},Ms=h.__emscripten_thread_exit=function(){return(Ms=h.__emscripten_thread_exit=h.asm.ta).apply(null,arguments)},Fs=function(){return(Fs=h.asm.ua).apply(null,arguments)},Hs=function(){return(Hs=h.asm.va).apply(null,arguments)},Us=function(){return(Us=h.asm.wa).apply(null,arguments)},Gs=function(){return(Gs=h.asm.xa).apply(null,arguments)},js=function(){return(js=h.asm.ya).apply(null,arguments)},Vs=function(){return(Vs=h.asm.za).apply(null,arguments)};function ks(){if(!(ne>0)){if(g)return c(h),$(),void startWorker(h);!function(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)e=h.preRun.shift(),X.unshift(e);var e;Te(X)}(),ne>0||(h.setStatus?(h.setStatus("Running..."),setTimeout((function(){setTimeout((function(){h.setStatus("")}),1),e()}),1)):e())}function e(){Ss||(Ss=!0,h.calledRun=!0,O||($(),c(h),h.onRuntimeInitialized&&h.onRuntimeInitialized(),function(){if(!g){if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)e=h.postRun.shift(),J.unshift(e);var e;Te(J)}}()))}}if(h.dynCall_jiji=function(){return(h.dynCall_jiji=h.asm.Aa).apply(null,arguments)},h.dynCall_viijii=function(){return(h.dynCall_viijii=h.asm.Ba).apply(null,arguments)},h.dynCall_iiiiij=function(){return(h.dynCall_iiiiij=h.asm.Ca).apply(null,arguments)},h.dynCall_iiiiijj=function(){return(h.dynCall_iiiiijj=h.asm.Da).apply(null,arguments)},h.dynCall_iiiiiijj=function(){return(h.dynCall_iiiiiijj=h.asm.Ea).apply(null,arguments)},h.keepRuntimeAlive=Z,h.wasmMemory=R,h.ExitStatus=ue,h.PThread=Ee,ie=function e(){Ss||ks(),Ss||(ie=e)},h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.pop()();return ks(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=n:"function"==typeof define&&define.amd?define([],(function(){return n})):"object"==typeof e&&(e.WebIFCWasm=n)}}),Tb=wb({"dist/web-ifc.js"(e,t){var s,n=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){var t,n,i=void 0!==e?e:{};i.ready=new Promise((function(e,s){t=e,n=s}));var a,r,l=Object.assign({},i),o="./this.program",c="";"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),s&&(c=s),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},r=(e,t,s)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):s()},n.onerror=s,n.send(null)};var u,h,p=i.print||console.log.bind(console),A=i.printErr||console.warn.bind(console);Object.assign(i,l),l=null,i.arguments,i.thisProgram&&(o=i.thisProgram),i.quit,i.wasmBinary&&(u=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&V("no native wasm support detected");var d=!1;function f(e,t){e||V(t)}var I,y,m,v,w,g,E,T,b,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,t,s){for(var n=(t>>>=0)+s,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&D)return D.decode(e.subarray(t,i));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&r)<<6|l)}else a+=String.fromCharCode(r)}return a}function R(e,t){return(e>>>=0)?P(y,e,t):""}function C(e,t,s,n){if(!(n>0))return 0;for(var i=s>>>=0,a=s+n-1,r=0;r=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&e.charCodeAt(++r)),l<=127){if(s>=a)break;t[s++>>>0]=l}else if(l<=2047){if(s+1>=a)break;t[s++>>>0]=192|l>>6,t[s++>>>0]=128|63&l}else if(l<=65535){if(s+2>=a)break;t[s++>>>0]=224|l>>12,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}else{if(s+3>=a)break;t[s++>>>0]=240|l>>18,t[s++>>>0]=128|l>>12&63,t[s++>>>0]=128|l>>6&63,t[s++>>>0]=128|63&l}}return t[s>>>0]=0,s-i}function _(e){for(var t=0,s=0;s=55296&&n<=57343?(t+=4,++s):t+=3}return t}function B(){var e=h.buffer;i.HEAP8=I=new Int8Array(e),i.HEAP16=m=new Int16Array(e),i.HEAP32=w=new Int32Array(e),i.HEAPU8=y=new Uint8Array(e),i.HEAPU16=v=new Uint16Array(e),i.HEAPU32=g=new Uint32Array(e),i.HEAPF32=E=new Float32Array(e),i.HEAPF64=T=new Float64Array(e)}var O,S,N,x,L=[],M=[],F=[],H=0,U=null;function G(e){H++,i.monitorRunDependencies&&i.monitorRunDependencies(H)}function j(e){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&U){var t=U;U=null,t()}}function V(e){i.onAbort&&i.onAbort(e),A(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw n(t),t}function k(e){return e.startsWith("data:application/octet-stream;base64,")}function Q(e){try{if(e==O&&u)return new Uint8Array(u);throw"both async and sync fetching of the wasm failed"}catch(e){V(e)}}function W(e){for(;e.length>0;)e.shift()(i)}function z(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){g[this.ptr+4>>>2]=e},this.get_type=function(){return g[this.ptr+4>>>2]},this.set_destructor=function(e){g[this.ptr+8>>>2]=e},this.get_destructor=function(){return g[this.ptr+8>>>2]},this.set_refcount=function(e){w[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,I[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=I[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,I[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=I[this.ptr+13>>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=w[this.ptr>>>2];w[this.ptr>>>2]=e+1},this.release_ref=function(){var e=w[this.ptr>>>2];return w[this.ptr>>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){g[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return g[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Kt(this.get_type()))return g[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}k(O="web-ifc.wasm")||(S=O,O=i.locateFile?i.locateFile(S,c):c+S);var K={};function Y(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function X(e){return this.fromWireType(w[e>>>2])}var q={},J={},Z={};function $(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function ee(e,t){return e=$(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function te(e,t){var s=ee(t,(function(e){this.name=t,this.message=e;var s=new Error(e).stack;void 0!==s&&(this.stack=this.toString()+"\n"+s.replace(/^Error(:[^\n]*)?\n/,""))}));return s.prototype=Object.create(e.prototype),s.prototype.constructor=s,s.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},s}var se=void 0;function ne(e){throw new se(e)}function ie(e,t,s){function n(t){var n=s(t);n.length!==e.length&&ne("Mismatched type converter count");for(var i=0;i{J.hasOwnProperty(e)?i[t]=J[e]:(a.push(e),q.hasOwnProperty(e)||(q[e]=[]),q[e].push((()=>{i[t]=J[e],++r===a.length&&n(i)})))})),0===a.length&&n(i)}var ae={};function re(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var le=void 0;function oe(e){for(var t="",s=e;y[s>>>0];)t+=le[y[s++>>>0]];return t}var ce=void 0;function ue(e){throw new ce(e)}function he(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||ue('type "'+n+'" must have a positive integer typeid pointer'),J.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ue("Cannot register type '"+n+"' twice")}if(J[e]=t,delete Z[e],q.hasOwnProperty(e)){var i=q[e];delete q[e],i.forEach((e=>e()))}}function pe(e){if(!(this instanceof Le))return!1;if(!(e instanceof Le))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&s===i}function Ae(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function de(e){ue(e.$$.ptrType.registeredClass.name+" instance already deleted")}var fe=!1;function Ie(e){}function ye(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function me(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var n=me(e,t,s.baseClass);return null===n?null:s.downcast(n)}var ve={};function we(){return Object.keys(Pe).length}function ge(){var e=[];for(var t in Pe)Pe.hasOwnProperty(t)&&e.push(Pe[t]);return e}var Ee=[];function Te(){for(;Ee.length;){var e=Ee.pop();e.$$.deleteScheduled=!1,e.delete()}}var be=void 0;function De(e){be=e,Ee.length&&be&&be(Te)}var Pe={};function Re(e,t){return t=function(e,t){for(void 0===t&&ue("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),Pe[t]}function Ce(e,t){return t.ptrType&&t.ptr||ne("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&ne("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Be(Object.create(e,{$$:{value:t}}))}function _e(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=Re(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var n=s.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?Ce(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Ce(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,r=this.registeredClass.getActualType(t),l=ve[r];if(!l)return i.call(this);a=this.isConst?l.constPointerType:l.pointerType;var o=me(t,this.registeredClass,a.registeredClass);return null===o?i.call(this):this.isSmartPointer?Ce(a.registeredClass.instancePrototype,{ptrType:a,ptr:o,smartPtrType:this,smartPtr:e}):Ce(a.registeredClass.instancePrototype,{ptrType:a,ptr:o})}function Be(e){return"undefined"==typeof FinalizationRegistry?(Be=e=>e,e):(fe=new FinalizationRegistry((e=>{ye(e.$$)})),Ie=e=>fe.unregister(e),(Be=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};fe.register(e,s,e)}return e})(e))}function Oe(){if(this.$$.ptr||de(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Be(Object.create(Object.getPrototypeOf(this),{$$:{value:Ae(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Se(){this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ue("Object already scheduled for deletion"),Ie(this),ye(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ne(){return!this.$$.ptr}function xe(){return this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ue("Object already scheduled for deletion"),Ee.push(this),1===Ee.length&&be&&be(Te),this.$$.deleteScheduled=!0,this}function Le(){}function Me(e,t,s){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ue("Function '"+s+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Fe(e,t,s){i.hasOwnProperty(e)?((void 0===s||void 0!==i[e].overloadTable&&void 0!==i[e].overloadTable[s])&&ue("Cannot register public name '"+e+"' twice"),Me(i,e,e),i.hasOwnProperty(s)&&ue("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),i[e].overloadTable[s]=t):(i[e]=t,void 0!==s&&(i[e].numArguments=s))}function He(e,t,s,n,i,a,r,l){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=r,this.downcast=l,this.pureVirtualFunctions=[]}function Ue(e,t,s){for(;t!==s;)t.upcast||ue("Expected null or instance of "+s.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Ge(e,t){if(null===t)return this.isReference&&ue("null is not a valid "+this.name),0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return Ue(t.$$.ptr,s,this.registeredClass)}function je(e,t){var s;if(null===t)return this.isReference&&ue("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ue("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(s=Ue(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ue("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ue("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:s=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)s=t.$$.smartPtr;else{var i=t.clone();s=this.rawShare(s,ot.toHandle((function(){i.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ue("Unsupporting sharing policy")}return s}function Ve(e,t){if(null===t)return this.isReference&&ue("null is not a valid "+this.name),0;t.$$||ue('Cannot pass "'+ht(t)+'" as a '+this.name),t.$$.ptr||ue("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ue("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return Ue(t.$$.ptr,s,this.registeredClass)}function ke(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Qe(e){this.rawDestructor&&this.rawDestructor(e)}function We(e){null!==e&&e.delete()}function ze(e,t,s,n,i,a,r,l,o,c,u){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=r,this.rawGetPointee=l,this.rawConstructor=o,this.rawShare=c,this.rawDestructor=u,i||void 0!==t.baseClass?this.toWireType=je:n?(this.toWireType=Ge,this.destructorFunction=null):(this.toWireType=Ve,this.destructorFunction=null)}function Ke(e,t,s){i.hasOwnProperty(e)||ne("Replacing nonexistant public symbol"),void 0!==i[e].overloadTable&&void 0!==s?i[e].overloadTable[s]=t:(i[e]=t,i[e].argCount=s)}var Ye=[];function Xe(e){var t=Ye[e];return t||(e>=Ye.length&&(Ye.length=e+1),Ye[e]=t=b.get(e)),t}function qe(e,t,s){return e.includes("j")?function(e,t,s){var n=i["dynCall_"+e];return s&&s.length?n.apply(null,[t].concat(s)):n.call(null,t)}(e,t,s):Xe(t).apply(null,s)}function Je(e,t){var s,n,i,a=(e=oe(e)).includes("j")?(s=e,n=t,i=[],function(){return i.length=0,Object.assign(i,arguments),qe(s,n,i)}):Xe(t);return"function"!=typeof a&&ue("unknown function pointer with signature "+e+": "+t),a}var Ze=void 0;function $e(e){var t=Qt(e),s=oe(t);return zt(t),s}function et(e,t){var s=[],n={};throw t.forEach((function e(t){n[t]||J[t]||(Z[t]?Z[t].forEach(e):(s.push(t),n[t]=!0))})),new Ze(e+": "+s.map($e).join([", "]))}function tt(e,t){for(var s=[],n=0;n>>2]);return s}function st(e,t,s,n,i){var a=t.length;a<2&&ue("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==s,l=!1,o=1;o0?", ":"")+h),p+=(c?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",l)p+="runDestructors(destructors);\n";else for(o=r?1:2;o4&&0==--it[e].refcount&&(it[e]=void 0,nt.push(e))}function rt(){for(var e=0,t=5;t(e||ue("Cannot use deleted val. handle = "+e),it[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=nt.length?nt.pop():it.length;return it[t]={refcount:1,value:e},t}}};function ct(e,t,s){switch(t){case 0:return function(e){var t=s?I:y;return this.fromWireType(t[e>>>0])};case 1:return function(e){var t=s?m:v;return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=s?w:g;return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function ut(e,t){var s=J[e];return void 0===s&&ue(t+" has unknown type "+$e(e)),s}function ht(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function pt(e,t){switch(t){case 2:return function(e){return this.fromWireType(E[e>>>2])};case 3:return function(e){return this.fromWireType(T[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function At(e,t,s){switch(t){case 0:return s?function(e){return I[e>>>0]}:function(e){return y[e>>>0]};case 1:return s?function(e){return m[e>>>1]}:function(e){return v[e>>>1]};case 2:return s?function(e){return w[e>>>2]}:function(e){return g[e>>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var dt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function ft(e,t){for(var s=e,n=s>>1,i=n+t/2;!(n>=i)&&v[n>>>0];)++n;if((s=n<<1)-e>32&&dt)return dt.decode(y.subarray(e>>>0,s>>>0));for(var a="",r=0;!(r>=t/2);++r){var l=m[e+2*r>>>1];if(0==l)break;a+=String.fromCharCode(l)}return a}function It(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var n=t,i=(s-=2)<2*e.length?s/2:e.length,a=0;a>>1]=r,t+=2}return m[t>>>1]=0,t-n}function yt(e){return 2*e.length}function mt(e,t){for(var s=0,n="";!(s>=t/4);){var i=w[e+4*s>>>2];if(0==i)break;if(++s,i>=65536){var a=i-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(i)}return n}function vt(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var n=t>>>=0,i=n+s-4,a=0;a=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++a)),w[t>>>2]=r,(t+=4)+4>i)break}return w[t>>>2]=0,t-n}function wt(e){for(var t=0,s=0;s=55296&&n<=57343&&++s,t+=4}return t}var gt={};function Et(e){var t=gt[e];return void 0===t?oe(e):t}function Tt(){return"object"==typeof globalThis?globalThis:Function("return this")()}function bt(e){var t=h.buffer;try{return h.grow(e-t.byteLength+65535>>>16),B(),1}catch(e){}}var Dt={};function Pt(){if(!Pt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"};for(var t in Dt)void 0===Dt[t]?delete e[t]:e[t]=Dt[t];var s=[];for(var t in e)s.push(t+"="+e[t]);Pt.strings=s}return Pt.strings}var Rt={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),s++):s&&(e.splice(n,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Rt.isAbs(e),s="/"===e.substr(-1);return e=Rt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Rt.splitPath(e),s=t[0],n=t[1];return s||n?(n&&(n=n.substr(0,n.length-1)),s+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Rt.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Rt.normalize(e.join("/"))},join2:(e,t)=>Rt.normalize(e+"/"+t)},Ct={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var n=s>=0?arguments[s]:Nt.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=Rt.isAbs(n)}return e=Rt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),(t?"/":"")+e||"."},relative:(e,t)=>{function s(e){for(var t=0;t=0&&""===e[s];s--);return t>s?[]:e.slice(t,s-t+1)}e=Ct.resolve(e).substr(1),t=Ct.resolve(t).substr(1);for(var n=s(e.split("/")),i=s(t.split("/")),a=Math.min(n.length,i.length),r=a,l=0;l0?s:_(e)+1,i=new Array(n),a=C(e,i,0,i.length);return t&&(i.length=a),i}var Bt={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Bt.ttys[e]={input:[],output:[],ops:t},Nt.registerDevice(e,Bt.stream_ops)},stream_ops:{open:function(e){var t=Bt.ttys[e.node.rdev];if(!t)throw new Nt.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,s,n,i){if(!e.tty||!e.tty.ops.get_char)throw new Nt.ErrnoError(60);for(var a=0,r=0;r0&&(p(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(A(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(A(P(e.output,0)),e.output=[])}}};function Ot(e){V()}var St={ops_table:null,mount:function(e){return St.createNode(null,"/",16895,0)},createNode:function(e,t,s,n){if(Nt.isBlkdev(s)||Nt.isFIFO(s))throw new Nt.ErrnoError(63);St.ops_table||(St.ops_table={dir:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,lookup:St.node_ops.lookup,mknod:St.node_ops.mknod,rename:St.node_ops.rename,unlink:St.node_ops.unlink,rmdir:St.node_ops.rmdir,readdir:St.node_ops.readdir,symlink:St.node_ops.symlink},stream:{llseek:St.stream_ops.llseek}},file:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:{llseek:St.stream_ops.llseek,read:St.stream_ops.read,write:St.stream_ops.write,allocate:St.stream_ops.allocate,mmap:St.stream_ops.mmap,msync:St.stream_ops.msync}},link:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,readlink:St.node_ops.readlink},stream:{}},chrdev:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:Nt.chrdev_stream_ops}});var i=Nt.createNode(e,t,s,n);return Nt.isDir(i.mode)?(i.node_ops=St.ops_table.dir.node,i.stream_ops=St.ops_table.dir.stream,i.contents={}):Nt.isFile(i.mode)?(i.node_ops=St.ops_table.file.node,i.stream_ops=St.ops_table.file.stream,i.usedBytes=0,i.contents=null):Nt.isLink(i.mode)?(i.node_ops=St.ops_table.link.node,i.stream_ops=St.ops_table.link.stream):Nt.isChrdev(i.mode)&&(i.node_ops=St.ops_table.chrdev.node,i.stream_ops=St.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){t>>>=0;var s=e.contents?e.contents.length:0;if(!(s>=t)){t=Math.max(t,s*(s<1048576?2:1.125)>>>0),0!=s&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(t>>>=0,e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var s=e.contents;e.contents=new Uint8Array(t),s&&e.contents.set(s.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=Nt.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,Nt.isDir(e.mode)?t.size=4096:Nt.isFile(e.mode)?t.size=e.usedBytes:Nt.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&St.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Nt.genericErrors[44]},mknod:function(e,t,s,n){return St.createNode(e,t,s,n)},rename:function(e,t,s){if(Nt.isDir(e.mode)){var n;try{n=Nt.lookupNode(t,s)}catch(e){}if(n)for(var i in n.contents)throw new Nt.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=s,t.contents[s]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var s=Nt.lookupNode(e,t);for(var n in s.contents)throw new Nt.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var s in e.contents)e.contents.hasOwnProperty(s)&&t.push(s);return t},symlink:function(e,t,s){var n=St.createNode(e,t,41471,0);return n.link=s,n},readlink:function(e){if(!Nt.isLink(e.mode))throw new Nt.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var r=Math.min(e.node.usedBytes-i,n);if(r>8&&a.subarray)t.set(a.subarray(i,i+r),s);else for(var l=0;l0||s+t>>=0,I.set(l,a>>>0)}else r=!1,a=l.byteOffset;return{ptr:a,allocated:r}},msync:function(e,t,s,n,i){return St.stream_ops.write(e,t,0,n,s,!1),0}}},Nt={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=Ct.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new Nt.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),n=Nt.root,i="/",a=0;a40)throw new Nt.ErrnoError(32)}}return{path:i,node:n}},getPath:e=>{for(var t;;){if(Nt.isRoot(e)){var s=e.mount.mountpoint;return t?"/"!==s[s.length-1]?s+"/"+t:s+t:s}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var s=0,n=0;n>>0)%Nt.nameTable.length},hashAddNode:e=>{var t=Nt.hashName(e.parent.id,e.name);e.name_next=Nt.nameTable[t],Nt.nameTable[t]=e},hashRemoveNode:e=>{var t=Nt.hashName(e.parent.id,e.name);if(Nt.nameTable[t]===e)Nt.nameTable[t]=e.name_next;else for(var s=Nt.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=Nt.mayLookup(e);if(s)throw new Nt.ErrnoError(s,e);for(var n=Nt.hashName(e.id,t),i=Nt.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return Nt.lookup(e,t)},createNode:(e,t,s,n)=>{var i=new Nt.FSNode(e,t,s,n);return Nt.hashAddNode(i),i},destroyNode:e=>{Nt.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=Nt.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Nt.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=Nt.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Nt.lookupNode(e,t),20}catch(e){}return Nt.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var n;try{n=Nt.lookupNode(e,t)}catch(e){return e.errno}var i=Nt.nodePermissions(e,"wx");if(i)return i;if(s){if(!Nt.isDir(n.mode))return 54;if(Nt.isRoot(n)||Nt.getPath(n)===Nt.cwd())return 10}else if(Nt.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Nt.isLink(e.mode)?32:Nt.isDir(e.mode)&&("r"!==Nt.flagsToPermissionString(t)||512&t)?31:Nt.nodePermissions(e,Nt.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Nt.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!Nt.streams[s])return s;throw new Nt.ErrnoError(33)},getStream:e=>Nt.streams[e],createStream:(e,t,s)=>{Nt.FSStream||(Nt.FSStream=function(){this.shared={}},Nt.FSStream.prototype={},Object.defineProperties(Nt.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new Nt.FSStream,e);var n=Nt.nextfd(t,s);return e.fd=n,Nt.streams[n]=e,e},closeStream:e=>{Nt.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Nt.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Nt.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Nt.devices[e]={stream_ops:t}},getDevice:e=>Nt.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var n=s.pop();t.push(n),s.push.apply(s,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Nt.syncFSRequests++,Nt.syncFSRequests>1&&A("warning: "+Nt.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=Nt.getMounts(Nt.root.mount),n=0;function i(e){return Nt.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++n>=s.length&&i(null)}s.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:(e,t,s)=>{var n,i="/"===s,a=!s;if(i&&Nt.root)throw new Nt.ErrnoError(10);if(!i&&!a){var r=Nt.lookupPath(s,{follow_mount:!1});if(s=r.path,n=r.node,Nt.isMountpoint(n))throw new Nt.ErrnoError(10);if(!Nt.isDir(n.mode))throw new Nt.ErrnoError(54)}var l={type:e,opts:t,mountpoint:s,mounts:[]},o=e.mount(l);return o.mount=l,l.root=o,i?Nt.root=o:n&&(n.mounted=l,n.mount&&n.mount.mounts.push(l)),o},unmount:e=>{var t=Nt.lookupPath(e,{follow_mount:!1});if(!Nt.isMountpoint(t.node))throw new Nt.ErrnoError(28);var s=t.node,n=s.mounted,i=Nt.getMounts(n);Object.keys(Nt.nameTable).forEach((e=>{for(var t=Nt.nameTable[e];t;){var s=t.name_next;i.includes(t.mount)&&Nt.destroyNode(t),t=s}})),s.mounted=null;var a=s.mount.mounts.indexOf(n);s.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var n=Nt.lookupPath(e,{parent:!0}).node,i=Rt.basename(e);if(!i||"."===i||".."===i)throw new Nt.ErrnoError(28);var a=Nt.mayCreate(n,i);if(a)throw new Nt.ErrnoError(a);if(!n.node_ops.mknod)throw new Nt.ErrnoError(63);return n.node_ops.mknod(n,i,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Nt.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Nt.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),n="",i=0;i(void 0===s&&(s=t,t=438),t|=8192,Nt.mknod(e,t,s)),symlink:(e,t)=>{if(!Ct.resolve(e))throw new Nt.ErrnoError(44);var s=Nt.lookupPath(t,{parent:!0}).node;if(!s)throw new Nt.ErrnoError(44);var n=Rt.basename(t),i=Nt.mayCreate(s,n);if(i)throw new Nt.ErrnoError(i);if(!s.node_ops.symlink)throw new Nt.ErrnoError(63);return s.node_ops.symlink(s,n,e)},rename:(e,t)=>{var s,n,i=Rt.dirname(e),a=Rt.dirname(t),r=Rt.basename(e),l=Rt.basename(t);if(s=Nt.lookupPath(e,{parent:!0}).node,n=Nt.lookupPath(t,{parent:!0}).node,!s||!n)throw new Nt.ErrnoError(44);if(s.mount!==n.mount)throw new Nt.ErrnoError(75);var o,c=Nt.lookupNode(s,r),u=Ct.relative(e,a);if("."!==u.charAt(0))throw new Nt.ErrnoError(28);if("."!==(u=Ct.relative(t,i)).charAt(0))throw new Nt.ErrnoError(55);try{o=Nt.lookupNode(n,l)}catch(e){}if(c!==o){var h=Nt.isDir(c.mode),p=Nt.mayDelete(s,r,h);if(p)throw new Nt.ErrnoError(p);if(p=o?Nt.mayDelete(n,l,h):Nt.mayCreate(n,l))throw new Nt.ErrnoError(p);if(!s.node_ops.rename)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(c)||o&&Nt.isMountpoint(o))throw new Nt.ErrnoError(10);if(n!==s&&(p=Nt.nodePermissions(s,"w")))throw new Nt.ErrnoError(p);Nt.hashRemoveNode(c);try{s.node_ops.rename(c,n,l)}catch(e){throw e}finally{Nt.hashAddNode(c)}}},rmdir:e=>{var t=Nt.lookupPath(e,{parent:!0}).node,s=Rt.basename(e),n=Nt.lookupNode(t,s),i=Nt.mayDelete(t,s,!0);if(i)throw new Nt.ErrnoError(i);if(!t.node_ops.rmdir)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(n))throw new Nt.ErrnoError(10);t.node_ops.rmdir(t,s),Nt.destroyNode(n)},readdir:e=>{var t=Nt.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Nt.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Nt.lookupPath(e,{parent:!0}).node;if(!t)throw new Nt.ErrnoError(44);var s=Rt.basename(e),n=Nt.lookupNode(t,s),i=Nt.mayDelete(t,s,!1);if(i)throw new Nt.ErrnoError(i);if(!t.node_ops.unlink)throw new Nt.ErrnoError(63);if(Nt.isMountpoint(n))throw new Nt.ErrnoError(10);t.node_ops.unlink(t,s),Nt.destroyNode(n)},readlink:e=>{var t=Nt.lookupPath(e).node;if(!t)throw new Nt.ErrnoError(44);if(!t.node_ops.readlink)throw new Nt.ErrnoError(28);return Ct.resolve(Nt.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=Nt.lookupPath(e,{follow:!t}).node;if(!s)throw new Nt.ErrnoError(44);if(!s.node_ops.getattr)throw new Nt.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>Nt.stat(e,!0),chmod:(e,t,s)=>{var n;if(!(n="string"==typeof e?Nt.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Nt.chmod(e,t,!0)},fchmod:(e,t)=>{var s=Nt.getStream(e);if(!s)throw new Nt.ErrnoError(8);Nt.chmod(s.node,t)},chown:(e,t,s,n)=>{var i;if(!(i="string"==typeof e?Nt.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,s)=>{Nt.chown(e,t,s,!0)},fchown:(e,t,s)=>{var n=Nt.getStream(e);if(!n)throw new Nt.ErrnoError(8);Nt.chown(n.node,t,s)},truncate:(e,t)=>{if(t<0)throw new Nt.ErrnoError(28);var s;if(!(s="string"==typeof e?Nt.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Nt.ErrnoError(63);if(Nt.isDir(s.mode))throw new Nt.ErrnoError(31);if(!Nt.isFile(s.mode))throw new Nt.ErrnoError(28);var n=Nt.nodePermissions(s,"w");if(n)throw new Nt.ErrnoError(n);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=Nt.getStream(e);if(!s)throw new Nt.ErrnoError(8);if(0==(2097155&s.flags))throw new Nt.ErrnoError(28);Nt.truncate(s.node,t)},utime:(e,t,s)=>{var n=Nt.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new Nt.ErrnoError(44);var n;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?Nt.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)n=e;else{e=Rt.normalize(e);try{n=Nt.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var a=!1;if(64&t)if(n){if(128&t)throw new Nt.ErrnoError(20)}else n=Nt.mknod(e,s,0),a=!0;if(!n)throw new Nt.ErrnoError(44);if(Nt.isChrdev(n.mode)&&(t&=-513),65536&t&&!Nt.isDir(n.mode))throw new Nt.ErrnoError(54);if(!a){var r=Nt.mayOpen(n,t);if(r)throw new Nt.ErrnoError(r)}512&t&&!a&&Nt.truncate(n,0),t&=-131713;var l=Nt.createStream({node:n,path:Nt.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),!i.logReadFiles||1&t||(Nt.readFiles||(Nt.readFiles={}),e in Nt.readFiles||(Nt.readFiles[e]=1)),l},close:e=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Nt.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Nt.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new Nt.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,n,i)=>{if(s>>>=0,n<0||i<0)throw new Nt.ErrnoError(28);if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(1==(2097155&e.flags))throw new Nt.ErrnoError(8);if(Nt.isDir(e.node.mode))throw new Nt.ErrnoError(31);if(!e.stream_ops.read)throw new Nt.ErrnoError(28);var a=void 0!==i;if(a){if(!e.seekable)throw new Nt.ErrnoError(70)}else i=e.position;var r=e.stream_ops.read(e,t,s,n,i);return a||(e.position+=r),r},write:(e,t,s,n,i,a)=>{if(s>>>=0,n<0||i<0)throw new Nt.ErrnoError(28);if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(0==(2097155&e.flags))throw new Nt.ErrnoError(8);if(Nt.isDir(e.node.mode))throw new Nt.ErrnoError(31);if(!e.stream_ops.write)throw new Nt.ErrnoError(28);e.seekable&&1024&e.flags&&Nt.llseek(e,0,2);var r=void 0!==i;if(r){if(!e.seekable)throw new Nt.ErrnoError(70)}else i=e.position;var l=e.stream_ops.write(e,t,s,n,i,a);return r||(e.position+=l),l},allocate:(e,t,s)=>{if(Nt.isClosed(e))throw new Nt.ErrnoError(8);if(t<0||s<=0)throw new Nt.ErrnoError(28);if(0==(2097155&e.flags))throw new Nt.ErrnoError(8);if(!Nt.isFile(e.node.mode)&&!Nt.isDir(e.node.mode))throw new Nt.ErrnoError(43);if(!e.stream_ops.allocate)throw new Nt.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,n,i)=>{if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new Nt.ErrnoError(2);if(1==(2097155&e.flags))throw new Nt.ErrnoError(2);if(!e.stream_ops.mmap)throw new Nt.ErrnoError(43);return e.stream_ops.mmap(e,t,s,n,i)},msync:(e,t,s,n,i)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,n,i):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new Nt.ErrnoError(59);return e.stream_ops.ioctl(e,t,s)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var s,n=Nt.open(e,t.flags),i=Nt.stat(e).size,a=new Uint8Array(i);return Nt.read(n,a,0,i,0),"utf8"===t.encoding?s=P(a,0):"binary"===t.encoding&&(s=a),Nt.close(n),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var n=Nt.open(e,s.flags,s.mode);if("string"==typeof t){var i=new Uint8Array(_(t)+1),a=C(t,i,0,i.length);Nt.write(n,i,0,a,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Nt.write(n,t,0,t.byteLength,void 0,s.canOwn)}Nt.close(n)},cwd:()=>Nt.currentPath,chdir:e=>{var t=Nt.lookupPath(e,{follow:!0});if(null===t.node)throw new Nt.ErrnoError(44);if(!Nt.isDir(t.node.mode))throw new Nt.ErrnoError(54);var s=Nt.nodePermissions(t.node,"x");if(s)throw new Nt.ErrnoError(s);Nt.currentPath=t.path},createDefaultDirectories:()=>{Nt.mkdir("/tmp"),Nt.mkdir("/home"),Nt.mkdir("/home/web_user")},createDefaultDevices:()=>{Nt.mkdir("/dev"),Nt.registerDevice(Nt.makedev(1,3),{read:()=>0,write:(e,t,s,n,i)=>n}),Nt.mkdev("/dev/null",Nt.makedev(1,3)),Bt.register(Nt.makedev(5,0),Bt.default_tty_ops),Bt.register(Nt.makedev(6,0),Bt.default_tty1_ops),Nt.mkdev("/dev/tty",Nt.makedev(5,0)),Nt.mkdev("/dev/tty1",Nt.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}return()=>V("randomDevice")}();Nt.createDevice("/dev","random",e),Nt.createDevice("/dev","urandom",e),Nt.mkdir("/dev/shm"),Nt.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Nt.mkdir("/proc");var e=Nt.mkdir("/proc/self");Nt.mkdir("/proc/self/fd"),Nt.mount({mount:()=>{var t=Nt.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,n=Nt.getStream(s);if(!n)throw new Nt.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{i.stdin?Nt.createDevice("/dev","stdin",i.stdin):Nt.symlink("/dev/tty","/dev/stdin"),i.stdout?Nt.createDevice("/dev","stdout",null,i.stdout):Nt.symlink("/dev/tty","/dev/stdout"),i.stderr?Nt.createDevice("/dev","stderr",null,i.stderr):Nt.symlink("/dev/tty1","/dev/stderr"),Nt.open("/dev/stdin",0),Nt.open("/dev/stdout",1),Nt.open("/dev/stderr",1)},ensureErrnoError:()=>{Nt.ErrnoError||(Nt.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},Nt.ErrnoError.prototype=new Error,Nt.ErrnoError.prototype.constructor=Nt.ErrnoError,[44].forEach((e=>{Nt.genericErrors[e]=new Nt.ErrnoError(e),Nt.genericErrors[e].stack=""})))},staticInit:()=>{Nt.ensureErrnoError(),Nt.nameTable=new Array(4096),Nt.mount(St,{},"/"),Nt.createDefaultDirectories(),Nt.createDefaultDevices(),Nt.createSpecialDirectories(),Nt.filesystems={MEMFS:St}},init:(e,t,s)=>{Nt.init.initialized=!0,Nt.ensureErrnoError(),i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=s||i.stderr,Nt.createStandardStreams()},quit:()=>{Nt.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=Nt.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(n=Nt.lookupPath(e,{follow:!t})).path}catch(e){}var s={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Nt.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=n.path,s.parentObject=n.node,s.name=Rt.basename(e),n=Nt.lookupPath(e,{follow:!t}),s.exists=!0,s.path=n.path,s.object=n.node,s.name=n.node.name,s.isRoot="/"===n.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,n)=>{e="string"==typeof e?e:Nt.getPath(e);for(var i=t.split("/").reverse();i.length;){var a=i.pop();if(a){var r=Rt.join2(e,a);try{Nt.mkdir(r)}catch(e){}e=r}}return r},createFile:(e,t,s,n,i)=>{var a=Rt.join2("string"==typeof e?e:Nt.getPath(e),t),r=Nt.getMode(n,i);return Nt.create(a,r)},createDataFile:(e,t,s,n,i,a)=>{var r=t;e&&(e="string"==typeof e?e:Nt.getPath(e),r=t?Rt.join2(e,t):e);var l=Nt.getMode(n,i),o=Nt.create(r,l);if(s){if("string"==typeof s){for(var c=new Array(s.length),u=0,h=s.length;u{var i=Rt.join2("string"==typeof e?e:Nt.getPath(e),t),a=Nt.getMode(!!s,!!n);Nt.createDevice.major||(Nt.createDevice.major=64);var r=Nt.makedev(Nt.createDevice.major++,0);return Nt.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,i,a)=>{for(var r=0,l=0;l{for(var r=0;r{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!a)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=_t(a(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Nt.ErrnoError(29)}},createLazyFile:(e,t,s,n,i)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,s=e/this.chunkSize|0;return this.getter(s)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",s,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+s+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,r=1048576;i||(r=n);var l=this;l.setDataGetter((e=>{var t=e*r,i=(e+1)*r-1;if(i=Math.min(i,n-1),void 0===l.chunks[e]&&(l.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",s,!1),n!==r&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+s+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):_t(i.responseText||"",!0)})(t,i)),void 0===l.chunks[e])throw new Error("doXHR failed!");return l.chunks[e]})),!a&&n||(r=n=1,n=this.getter(0).length,r=n,p("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var r={isDevice:!1,url:s},l=Nt.createFile(e,t,r,n,i);r.contents?l.contents=r.contents:r.url&&(l.contents=null,l.url=r.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var o={};function c(e,t,s,n,i){var a=e.node.contents;if(i>=a.length)return 0;var r=Math.min(a.length-i,n);if(a.slice)for(var l=0;l{var t=l.stream_ops[e];o[e]=function(){return Nt.forceLoadFile(l),t.apply(null,arguments)}})),o.read=(e,t,s,n,i)=>(Nt.forceLoadFile(l),c(e,t,s,n,i)),o.mmap=(e,t,s,n,i)=>{Nt.forceLoadFile(l);var a=Ot();if(!a)throw new Nt.ErrnoError(48);return c(e,I,a,t,s),{ptr:a,allocated:!0}},l.stream_ops=o,l},createPreloadedFile:(e,t,s,n,i,a,l,o,c,u)=>{var h=t?Ct.resolve(Rt.join2(e,t)):e;function p(s){function r(s){u&&u(),o||Nt.createDataFile(e,t,s,n,i,c),a&&a(),j()}Browser.handledByPreloadPlugin(s,h,r,(()=>{l&&l(),j()}))||r(s)}G(),"string"==typeof s?function(e,t,s,n){var i=n?"":"al "+e;r(e,(s=>{f(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),i&&j()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),i&&G()}(s,(e=>p(e)),l):p(s)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=Nt.indexedDB();try{var i=n.open(Nt.DB_NAME(),Nt.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=()=>{p("creating db"),i.result.createObjectStore(Nt.DB_STORE_NAME)},i.onsuccess=()=>{var n=i.result.transaction([Nt.DB_STORE_NAME],"readwrite"),a=n.objectStore(Nt.DB_STORE_NAME),r=0,l=0,o=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=a.put(Nt.analyzePath(e).object.contents,e);t.onsuccess=()=>{++r+l==o&&c()},t.onerror=()=>{l++,r+l==o&&c()}})),n.onerror=s},i.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var n=Nt.indexedDB();try{var i=n.open(Nt.DB_NAME(),Nt.DB_VERSION)}catch(e){return s(e)}i.onupgradeneeded=s,i.onsuccess=()=>{var n=i.result;try{var a=n.transaction([Nt.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var r=a.objectStore(Nt.DB_STORE_NAME),l=0,o=0,c=e.length;function u(){0==o?t():s()}e.forEach((e=>{var t=r.get(e);t.onsuccess=()=>{Nt.analyzePath(e).exists&&Nt.unlink(e),Nt.createDataFile(Rt.dirname(e),Rt.basename(e),t.result,!0,!0,!0),++l+o==c&&u()},t.onerror=()=>{o++,l+o==c&&u()}})),a.onerror=s},i.onerror=s}},xt={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Rt.isAbs(t))return t;var n;if(n=-100===e?Nt.cwd():xt.getStreamFromFD(e).path,0==t.length){if(!s)throw new Nt.ErrnoError(44);return n}return Rt.join2(n,t)},doStat:function(e,t,s){try{var n=e(t)}catch(e){if(e&&e.node&&Rt.normalize(t)!==Rt.normalize(Nt.getPath(e.node)))return-54;throw e}w[s>>>2]=n.dev,w[s+8>>>2]=n.ino,w[s+12>>>2]=n.mode,g[s+16>>>2]=n.nlink,w[s+20>>>2]=n.uid,w[s+24>>>2]=n.gid,w[s+28>>>2]=n.rdev,x=[n.size>>>0,(N=n.size,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+40>>>2]=x[0],w[s+44>>>2]=x[1],w[s+48>>>2]=4096,w[s+52>>>2]=n.blocks;var i=n.atime.getTime(),a=n.mtime.getTime(),r=n.ctime.getTime();return x=[Math.floor(i/1e3)>>>0,(N=Math.floor(i/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+56>>>2]=x[0],w[s+60>>>2]=x[1],g[s+64>>>2]=i%1e3*1e3,x=[Math.floor(a/1e3)>>>0,(N=Math.floor(a/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+72>>>2]=x[0],w[s+76>>>2]=x[1],g[s+80>>>2]=a%1e3*1e3,x=[Math.floor(r/1e3)>>>0,(N=Math.floor(r/1e3),+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+88>>>2]=x[0],w[s+92>>>2]=x[1],g[s+96>>>2]=r%1e3*1e3,x=[n.ino>>>0,(N=n.ino,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[s+104>>>2]=x[0],w[s+108>>>2]=x[1],0},doMsync:function(e,t,s,n,i){if(!Nt.isFile(t.node.mode))throw new Nt.ErrnoError(43);if(2&n)return 0;e>>>=0;var a=y.slice(e,e+s);Nt.msync(t,a,i,s,n)},varargs:void 0,get:function(){return xt.varargs+=4,w[xt.varargs-4>>>2]},getStr:function(e){return R(e)},getStreamFromFD:function(e){var t=Nt.getStream(e);if(!t)throw new Nt.ErrnoError(8);return t}};function Lt(e){return e%4==0&&(e%100!=0||e%400==0)}var Mt=[31,29,31,30,31,30,31,31,30,31,30,31],Ft=[31,28,31,30,31,30,31,31,30,31,30,31];function Ht(e,t,s,n){var i=w[n+40>>>2],a={tm_sec:w[n>>>2],tm_min:w[n+4>>>2],tm_hour:w[n+8>>>2],tm_mday:w[n+12>>>2],tm_mon:w[n+16>>>2],tm_year:w[n+20>>>2],tm_wday:w[n+24>>>2],tm_yday:w[n+28>>>2],tm_isdst:w[n+32>>>2],tm_gmtoff:w[n+36>>>2],tm_zone:i?R(i):""},r=R(s),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var o in l)r=r.replace(new RegExp(o,"g"),l[o]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(e,t,s){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=s(e.getFullYear()-t.getFullYear()))&&0===(n=s(e.getMonth()-t.getMonth()))&&(n=s(e.getDate()-t.getDate())),n}function d(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function f(e){var t=function(e,t){for(var s=new Date(e.getTime());t>0;){var n=Lt(s.getFullYear()),i=s.getMonth(),a=(n?Mt:Ft)[i];if(!(t>a-s.getDate()))return s.setDate(s.getDate()+t),s;t-=a-s.getDate()+1,s.setDate(1),i<11?s.setMonth(i+1):(s.setMonth(0),s.setFullYear(s.getFullYear()+1))}return s}(new Date(e.tm_year+1900,0,1),e.tm_yday),s=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=d(s),a=d(n);return A(i,t)<=0?A(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var y={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return p((e.tm_year+1900)/100|0,2)},"%d":function(e){return p(e.tm_mday,2)},"%e":function(e){return h(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return p(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),p(t,2)},"%j":function(e){return p(e.tm_mday+function(e,t){for(var s=0,n=0;n<=t;s+=e[n++]);return s}(Lt(e.tm_year+1900)?Mt:Ft,e.tm_mon-1),3)},"%m":function(e){return p(e.tm_mon+1,2)},"%M":function(e){return p(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return p(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return p(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var s=(e.tm_wday+371-e.tm_yday)%7;4==s||3==s&&Lt(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Lt(e.tm_year%400-1))&&t++}return p(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return p(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,s=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(s?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var o in r=r.replace(/%%/g,"\0\0"),y)r.includes(o)&&(r=r.replace(new RegExp(o,"g"),y[o](a)));var m,v,g=_t(r=r.replace(/\0\0/g,"%"),!1);return g.length>t?0:(m=g,v=e,I.set(m,v>>>0),g.length-1)}se=i.InternalError=te(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);le=e}(),ce=i.BindingError=te(Error,"BindingError"),Le.prototype.isAliasOf=pe,Le.prototype.clone=Oe,Le.prototype.delete=Se,Le.prototype.isDeleted=Ne,Le.prototype.deleteLater=xe,i.getInheritedInstanceCount=we,i.getLiveInheritedInstances=ge,i.flushPendingDeletes=Te,i.setDelayFunction=De,ze.prototype.getPointee=ke,ze.prototype.destructor=Qe,ze.prototype.argPackAdvance=8,ze.prototype.readValueFromPointer=X,ze.prototype.deleteObject=We,ze.prototype.fromWireType=_e,Ze=i.UnboundTypeError=te(Error,"UnboundTypeError"),i.count_emval_handles=rt,i.get_first_emval=lt;var Ut=function(e,t,s,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Nt.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=n},Gt=365,jt=146;Object.defineProperties(Ut.prototype,{read:{get:function(){return(this.mode&Gt)===Gt},set:function(e){e?this.mode|=Gt:this.mode&=-366}},write:{get:function(){return(this.mode&jt)===jt},set:function(e){e?this.mode|=jt:this.mode&=-147}},isFolder:{get:function(){return Nt.isDir(this.mode)}},isDevice:{get:function(){return Nt.isChrdev(this.mode)}}}),Nt.FSNode=Ut,Nt.staticInit();var Vt={f:function(e,t,s){throw new z(e).init(t,s),e},R:function(e){var t=K[e];delete K[e];var s=t.elements,n=s.length,i=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),a=t.rawConstructor,r=t.rawDestructor;ie([e],i,(function(e){return s.forEach(((t,s)=>{var i=e[s],a=t.getter,r=t.getterContext,l=e[s+n],o=t.setter,c=t.setterContext;t.read=e=>i.fromWireType(a(r,e)),t.write=(e,t)=>{var s=[];o(c,e,l.toWireType(s,t)),Y(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),i=0;i>>a])},destructorFunction:null})},o:function(e,t,s,n,i,a,r,l,o,c,u,h,p){u=oe(u),a=Je(i,a),l&&(l=Je(r,l)),c&&(c=Je(o,c)),p=Je(h,p);var A=$(u);Fe(A,(function(){et("Cannot construct "+u+" due to unbound types",[n])})),ie([e,t,s],n?[n]:[],(function(t){var s,i;t=t[0],i=n?(s=t.registeredClass).instancePrototype:Le.prototype;var r=ee(A,(function(){if(Object.getPrototypeOf(this)!==o)throw new ce("Use 'new' to construct "+u);if(void 0===h.constructor_body)throw new ce(u+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new ce("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(h.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),o=Object.create(i,{constructor:{value:r}});r.prototype=o;var h=new He(u,r,o,p,s,a,l,c),d=new ze(u,h,!0,!1,!1),f=new ze(u+"*",h,!1,!1,!1),I=new ze(u+" const*",h,!1,!0,!1);return ve[e]={pointerType:f,constPointerType:I},Ke(A,r),[d,f,I]}))},n:function(e,t,s,n,i,a){f(t>0);var r=tt(t,s);i=Je(n,i),ie([],[e],(function(e){var s="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new ce("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=()=>{et("Cannot construct "+e.name+" due to unbound types",r)},ie([],r,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=st(s,n,null,i,a),[]})),[]}))},b:function(e,t,s,n,i,a,r,l){var o=tt(s,n);t=oe(t),a=Je(i,a),ie([],[e],(function(e){var n=(e=e[0]).name+"."+t;function i(){et("Cannot call "+n+" due to unbound types",o)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),l&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,u=c[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===s-2?(i.argCount=s-2,i.className=e.name,c[t]=i):(Me(c,t,n),c[t].overloadTable[s-2]=i),ie([],o,(function(i){var l=st(n,i,e,a,r);return void 0===c[t].overloadTable?(l.argCount=s-2,c[t]=l):c[t].overloadTable[s-2]=l,[]})),[]}))},O:function(e,t){he(e,{name:t=oe(t),fromWireType:function(e){var t=ot.toValue(e);return at(e),t},toWireType:function(e,t){return ot.toHandle(t)},argPackAdvance:8,readValueFromPointer:X,destructorFunction:null})},B:function(e,t,s,n){var i=re(s);function a(){}t=oe(t),a.values={},he(e,{name:t,constructor:a,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:ct(t,i,n),destructorFunction:null}),Fe(t,a)},s:function(e,t,s){var n=ut(e,"enum");t=oe(t);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:s},constructor:{value:ee(n.name+"_"+t,(function(){}))}});i.values[s]=a,i[t]=a},z:function(e,t,s){var n=re(s);he(e,{name:t=oe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:pt(t,n),destructorFunction:null})},c:function(e,t,s,n,i,a){var r=tt(t,s);e=oe(e),i=Je(n,i),Fe(e,(function(){et("Cannot call "+e+" due to unbound types",r)}),t-1),ie([],r,(function(s){var n=[s[0],null].concat(s.slice(1));return Ke(e,st(e,n,null,i,a),t-1),[]}))},r:function(e,t,s,n,i){t=oe(t);var a=re(s),r=e=>e;if(0===n){var l=32-8*s;r=e=>e<>>l}var o=t.includes("unsigned");he(e,{name:t,fromWireType:r,toWireType:o?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:At(t,a,0!==n),destructorFunction:null})},h:function(e,t,s){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){var t=g,s=t[(e>>=2)>>>0],i=t[e+1>>>0];return new n(t.buffer,i,s)}he(e,{name:s=oe(s),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},A:function(e,t){var s="std::string"===(t=oe(t));he(e,{name:t,fromWireType:function(e){var t,n=g[e>>>2],i=e+4;if(s)for(var a=i,r=0;r<=n;++r){var l=i+r;if(r==n||0==y[l>>>0]){var o=R(a,l-a);void 0===t?t=o:(t+=String.fromCharCode(0),t+=o),a=l+1}}else{var c=new Array(n);for(r=0;r>>0]);t=c.join("")}return zt(e),t},toWireType:function(e,t){var n;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ue("Cannot pass non-string to std::string"),n=s&&i?_(t):t.length;var a=kt(4+n+1),r=a+4;if(r>>>=0,g[a>>>2]=n,s&&i)C(t,y,r,n+1);else if(i)for(var l=0;l255&&(zt(r),ue("String has UTF-16 code units that do not fit in 8 bits")),y[r+l>>>0]=o}else for(l=0;l>>0]=t[l];return null!==e&&e.push(zt,a),a},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},v:function(e,t,s){var n,i,a,r,l;s=oe(s),2===t?(n=ft,i=It,r=yt,a=()=>v,l=1):4===t&&(n=mt,i=vt,r=wt,a=()=>g,l=2),he(e,{name:s,fromWireType:function(e){for(var s,i=g[e>>>2],r=a(),o=e+4,c=0;c<=i;++c){var u=e+4+c*t;if(c==i||0==r[u>>>l]){var h=n(o,u-o);void 0===s?s=h:(s+=String.fromCharCode(0),s+=h),o=u+t}}return zt(e),s},toWireType:function(e,n){"string"!=typeof n&&ue("Cannot pass non-string to C++ string type "+s);var a=r(n),o=kt(4+a+t);return g[(o>>>=0)>>>2]=a>>l,i(n,o+4,a+t),null!==e&&e.push(zt,o),o},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},S:function(e,t,s,n,i,a){K[e]={name:oe(t),rawConstructor:Je(s,n),rawDestructor:Je(i,a),elements:[]}},i:function(e,t,s,n,i,a,r,l,o){K[e].elements.push({getterReturnType:t,getter:Je(s,n),getterContext:i,setterArgumentType:a,setter:Je(r,l),setterContext:o})},q:function(e,t,s,n,i,a){ae[e]={name:oe(t),rawConstructor:Je(s,n),rawDestructor:Je(i,a),fields:[]}},e:function(e,t,s,n,i,a,r,l,o,c){ae[e].fields.push({fieldName:oe(t),getterReturnType:s,getter:Je(n,i),getterContext:a,setterArgumentType:r,setter:Je(l,o),setterContext:c})},Q:function(e,t){he(e,{isVoid:!0,name:t=oe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},m:function(e,t,s){e=ot.toValue(e),t=ut(t,"emval::as");var n=[],i=ot.toHandle(n);return g[s>>>2]=i,t.toWireType(n,e)},x:function(e,t,s,n){e=ot.toValue(e);for(var i=function(e,t){for(var s=new Array(e),n=0;n>>2],"parameter "+n);return s}(t,s),a=new Array(t),r=0;r4&&(it[e].refcount+=1)},U:function(e,t){return(e=ot.toValue(e))instanceof(t=ot.toValue(t))},w:function(e){return"number"==typeof(e=ot.toValue(e))},C:function(e){return"string"==typeof(e=ot.toValue(e))},T:function(){return ot.toHandle([])},g:function(e){return ot.toHandle(Et(e))},u:function(){return ot.toHandle({})},l:function(e){Y(ot.toValue(e)),at(e)},j:function(e,t,s){e=ot.toValue(e),t=ot.toValue(t),s=ot.toValue(s),e[t]=s},d:function(e,t){var s=(e=ut(e,"_emval_take_value")).readValueFromPointer(t);return ot.toHandle(s)},y:function(){V("")},N:function(e,t,s){y.copyWithin(e>>>0,t>>>0,t+s>>>0)},L:function(e){var t,s,n=y.length,i=4294901760;if((e>>>=0)>i)return!1;for(var a=1;a<=4;a*=2){var r=n*(1+.2/a);if(r=Math.min(r,e+100663296),bt(Math.min(i,(t=Math.max(e,r))+((s=65536)-t%s)%s)))return!0}return!1},H:function(e,t){var s=0;return Pt().forEach((function(n,i){var a=t+s;g[e+4*i>>>2]=a,function(e,t,s){for(var n=0;n>>0]=e.charCodeAt(n);s||(I[t>>>0]=0)}(n,a),s+=n.length+1})),0},I:function(e,t){var s=Pt();g[e>>>2]=s.length;var n=0;return s.forEach((function(e){n+=e.length+1})),g[t>>>2]=n,0},J:function(e){try{var t=xt.getStreamFromFD(e);return Nt.close(t),0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},K:function(e,t,s,n){try{var i=function(e,t,s,n){for(var i=0,a=0;a>>2],l=g[t+4>>>2];t+=8;var o=Nt.read(e,I,r,l,n);if(o<0)return-1;if(i+=o,o>>2]=i,0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},E:function(e,t,s,n,i){try{var a=(o=s)+2097152>>>0<4194305-!!(l=t)?(l>>>0)+4294967296*o:NaN;if(isNaN(a))return 61;var r=xt.getStreamFromFD(e);return Nt.llseek(r,a,n),x=[r.position>>>0,(N=r.position,+Math.abs(N)>=1?N>0?(0|Math.min(+Math.floor(N/4294967296),4294967295))>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],w[i>>>2]=x[0],w[i+4>>>2]=x[1],r.getdents&&0===a&&0===n&&(r.getdents=null),0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}var l,o},M:function(e,t,s,n){try{var i=function(e,t,s,n){for(var i=0,a=0;a>>2],l=g[t+4>>>2];t+=8;var o=Nt.write(e,I,r,l,n);if(o<0)return-1;i+=o,void 0!==n&&(n+=o)}return i}(xt.getStreamFromFD(e),t,s);return g[n>>>2]=i,0}catch(e){if(void 0===Nt||!(e instanceof Nt.ErrnoError))throw e;return e.errno}},G:function(e,t,s,n,i){return Ht(e,t,s,n)}};!function(){var e={a:Vt};function t(e,t){var s,n=e.exports;i.asm=n,h=i.asm.V,B(),b=i.asm.X,s=i.asm.W,M.unshift(s),j()}function s(e){t(e.instance)}function a(t){return(u||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(O)})):fetch(O,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+O+"'";return e.arrayBuffer()})).catch((function(){return Q(O)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){A("failed to asynchronously prepare wasm: "+e),V(e)}))}if(G(),i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(e){A("Module.instantiateWasm callback failed with error: "+e),n(e)}(u||"function"!=typeof WebAssembly.instantiateStreaming||k(O)||"function"!=typeof fetch?a(s):fetch(O,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return A("wasm streaming compile failed: "+e),A("falling back to ArrayBuffer instantiation"),a(s)}))}))).catch(n)}();var kt=function(){return(kt=i.asm.Y).apply(null,arguments)},Qt=i.___getTypeName=function(){return(Qt=i.___getTypeName=i.asm.Z).apply(null,arguments)};i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm._).apply(null,arguments)};var Wt,zt=function(){return(zt=i.asm.$).apply(null,arguments)},Kt=function(){return(Kt=i.asm.aa).apply(null,arguments)};function Yt(){function e(){Wt||(Wt=!0,i.calledRun=!0,d||(i.noFSInit||Nt.init.initialized||Nt.init(),Nt.ignorePermissions=!1,W(M),t(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),F.unshift(e);var e;W(F)}()))}H>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),L.unshift(e);var e;W(L)}(),H>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),e()}),1)):e()))}if(i.dynCall_jiji=function(){return(i.dynCall_jiji=i.asm.ba).apply(null,arguments)},i.dynCall_viijii=function(){return(i.dynCall_viijii=i.asm.ca).apply(null,arguments)},i.dynCall_iiiiij=function(){return(i.dynCall_iiiiij=i.asm.da).apply(null,arguments)},i.dynCall_iiiiijj=function(){return(i.dynCall_iiiiijj=i.asm.ea).apply(null,arguments)},i.dynCall_iiiiiijj=function(){return(i.dynCall_iiiiiijj=i.asm.fa).apply(null,arguments)},U=function e(){Wt||Yt(),Wt||(U=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return Yt(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=n:"function"==typeof define&&define.amd?define([],(function(){return n})):"object"==typeof e&&(e.WebIFCWasm=n)}}),bb=3087945054,Db=3415622556,Pb=639361253,Rb=4207607924,Cb=812556717,_b=753842376,Bb=2391406946,Ob=3824725483,Sb=1529196076,Nb=2016517767,xb=3024970846,Lb=3171933400,Mb=1687234759,Fb=395920057,Hb=3460190687,Ub=1033361043,Gb=3856911033,jb=4097777520,Vb=3740093272,kb=3009204131,Qb=3473067441,Wb=1281925730,zb=class{constructor(e){this.value=e,this.type=5}},Kb=class{constructor(e){this.expressID=e,this.type=0}},Yb=[],Xb={},qb={},Jb={},Zb={},$b={},eD=[];function tD(e,t){return Array.isArray(t)&&t.map((t=>tD(e,t))),t.typecode?$b[e][t.typecode](t.value):t.value}function sD(e){return e.value=e.value.toString(),e.valueType=e.type,e.type=2,e.label=e.constructor.name.toUpperCase(),e}(ob=lb||(lb={})).IFC2X3="IFC2X3",ob.IFC4="IFC4",ob.IFC4X3="IFC4X3",eD[1]="IFC2X3",Yb[1]={3630933823:(e,t)=>new cb.IfcActorRole(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcText(t[2].value):null),618182010:(e,t)=>new cb.IfcAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),639542469:(e,t)=>new cb.IfcApplication(e,new zb(t[0].value),new cb.IfcLabel(t[1].value),new cb.IfcLabel(t[2].value),new cb.IfcIdentifier(t[3].value)),411424972:(e,t)=>new cb.IfcAppliedValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null),1110488051:(e,t)=>new cb.IfcAppliedValueRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null),130549933:(e,t)=>new cb.IfcApproval(e,t[0]?new cb.IfcText(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null,new cb.IfcLabel(t[5].value),new cb.IfcIdentifier(t[6].value)),2080292479:(e,t)=>new cb.IfcApprovalActorRelationship(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),390851274:(e,t)=>new cb.IfcApprovalPropertyRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),3869604511:(e,t)=>new cb.IfcApprovalRelationship(e,new zb(t[0].value),new zb(t[1].value),t[2]?new cb.IfcText(t[2].value):null,new cb.IfcLabel(t[3].value)),4037036970:(e,t)=>new cb.IfcBoundaryCondition(e,t[0]?new cb.IfcLabel(t[0].value):null),1560379544:(e,t)=>new cb.IfcBoundaryEdgeCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfLinearSubgradeReactionMeasure(t[3].value):null,t[4]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[4].value):null,t[5]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[5].value):null,t[6]?new cb.IfcModulusOfRotationalSubgradeReactionMeasure(t[6].value):null),3367102660:(e,t)=>new cb.IfcBoundaryFaceCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcModulusOfSubgradeReactionMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfSubgradeReactionMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfSubgradeReactionMeasure(t[3].value):null),1387855156:(e,t)=>new cb.IfcBoundaryNodeCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearStiffnessMeasure(t[1].value):null,t[2]?new cb.IfcLinearStiffnessMeasure(t[2].value):null,t[3]?new cb.IfcLinearStiffnessMeasure(t[3].value):null,t[4]?new cb.IfcRotationalStiffnessMeasure(t[4].value):null,t[5]?new cb.IfcRotationalStiffnessMeasure(t[5].value):null,t[6]?new cb.IfcRotationalStiffnessMeasure(t[6].value):null),2069777674:(e,t)=>new cb.IfcBoundaryNodeConditionWarping(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearStiffnessMeasure(t[1].value):null,t[2]?new cb.IfcLinearStiffnessMeasure(t[2].value):null,t[3]?new cb.IfcLinearStiffnessMeasure(t[3].value):null,t[4]?new cb.IfcRotationalStiffnessMeasure(t[4].value):null,t[5]?new cb.IfcRotationalStiffnessMeasure(t[5].value):null,t[6]?new cb.IfcRotationalStiffnessMeasure(t[6].value):null,t[7]?new cb.IfcWarpingMomentMeasure(t[7].value):null),622194075:(e,t)=>new cb.IfcCalendarDate(e,new cb.IfcDayInMonthNumber(t[0].value),new cb.IfcMonthInYearNumber(t[1].value),new cb.IfcYearNumber(t[2].value)),747523909:(e,t)=>new cb.IfcClassification(e,new cb.IfcLabel(t[0].value),new cb.IfcLabel(t[1].value),t[2]?new zb(t[2].value):null,new cb.IfcLabel(t[3].value)),1767535486:(e,t)=>new cb.IfcClassificationItem(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new cb.IfcLabel(t[2].value)),1098599126:(e,t)=>new cb.IfcClassificationItemRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),938368621:(e,t)=>new cb.IfcClassificationNotation(e,t[0].map((e=>new zb(e.value)))),3639012971:(e,t)=>new cb.IfcClassificationNotationFacet(e,new cb.IfcLabel(t[0].value)),3264961684:(e,t)=>new cb.IfcColourSpecification(e,t[0]?new cb.IfcLabel(t[0].value):null),2859738748:(e,t)=>new cb.IfcConnectionGeometry(e),2614616156:(e,t)=>new cb.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),4257277454:(e,t)=>new cb.IfcConnectionPortGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),2732653382:(e,t)=>new cb.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new cb.IfcConstraint(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null),1658513725:(e,t)=>new cb.IfcConstraintAggregationRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]),613356794:(e,t)=>new cb.IfcConstraintClassificationRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),347226245:(e,t)=>new cb.IfcConstraintRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1065062679:(e,t)=>new cb.IfcCoordinatedUniversalTimeOffset(e,new cb.IfcHourInDay(t[0].value),t[1]?new cb.IfcMinuteInHour(t[1].value):null,t[2]),602808272:(e,t)=>new cb.IfcCostValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,new cb.IfcLabel(t[6].value),t[7]?new cb.IfcText(t[7].value):null),539742890:(e,t)=>new cb.IfcCurrencyRelationship(e,new zb(t[0].value),new zb(t[1].value),new cb.IfcPositiveRatioMeasure(t[2].value),new zb(t[3].value),t[4]?new zb(t[4].value):null),1105321065:(e,t)=>new cb.IfcCurveStyleFont(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new cb.IfcCurveStyleFontAndScaling(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),new cb.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new cb.IfcCurveStyleFontPattern(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),1072939445:(e,t)=>new cb.IfcDateAndTime(e,new zb(t[0].value),new zb(t[1].value)),1765591967:(e,t)=>new cb.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new cb.IfcLabel(t[2].value):null),1045800335:(e,t)=>new cb.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new cb.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),1376555844:(e,t)=>new cb.IfcDocumentElectronicFormat(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),1154170062:(e,t)=>new cb.IfcDocumentInformation(e,new cb.IfcIdentifier(t[0].value),new cb.IfcLabel(t[1].value),t[2]?new cb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?new cb.IfcText(t[4].value):null,t[5]?new cb.IfcText(t[5].value):null,t[6]?new cb.IfcText(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new zb(t[13].value):null,t[14]?new zb(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new cb.IfcDocumentInformationRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3796139169:(e,t)=>new cb.IfcDraughtingCalloutRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),1648886627:(e,t)=>new cb.IfcEnvironmentalImpactValue(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,new cb.IfcLabel(t[6].value),t[7],t[8]?new cb.IfcLabel(t[8].value):null),3200245327:(e,t)=>new cb.IfcExternalReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),2242383968:(e,t)=>new cb.IfcExternallyDefinedHatchStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),1040185647:(e,t)=>new cb.IfcExternallyDefinedSurfaceStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),3207319532:(e,t)=>new cb.IfcExternallyDefinedSymbol(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),3548104201:(e,t)=>new cb.IfcExternallyDefinedTextFont(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),852622518:(e,t)=>new cb.IfcGridAxis(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),new cb.IfcBoolean(t[2].value)),3020489413:(e,t)=>new cb.IfcIrregularTimeSeriesValue(e,new zb(t[0].value),t[1].map((e=>tD(1,e)))),2655187982:(e,t)=>new cb.IfcLibraryInformation(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new zb(e.value))):null),3452421091:(e,t)=>new cb.IfcLibraryReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),4162380809:(e,t)=>new cb.IfcLightDistributionData(e,new cb.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new cb.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new cb.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new cb.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),30780891:(e,t)=>new cb.IfcLocalTime(e,new cb.IfcHourInDay(t[0].value),t[1]?new cb.IfcMinuteInHour(t[1].value):null,t[2]?new cb.IfcSecondInMinute(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new cb.IfcDaylightSavingHour(t[4].value):null),1838606355:(e,t)=>new cb.IfcMaterial(e,new cb.IfcLabel(t[0].value)),1847130766:(e,t)=>new cb.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),248100487:(e,t)=>new cb.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new cb.IfcPositiveLengthMeasure(t[1].value),t[2]?new cb.IfcLogical(t[2].value):null),3303938423:(e,t)=>new cb.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new cb.IfcLabel(t[1].value):null),1303795690:(e,t)=>new cb.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new cb.IfcLengthMeasure(t[3].value)),2199411900:(e,t)=>new cb.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),3265635763:(e,t)=>new cb.IfcMaterialProperties(e,new zb(t[0].value)),2597039031:(e,t)=>new cb.IfcMeasureWithUnit(e,tD(1,t[0]),new zb(t[1].value)),4256014907:(e,t)=>new cb.IfcMechanicalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null),677618848:(e,t)=>new cb.IfcMechanicalSteelMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null,t[6]?new cb.IfcPressureMeasure(t[6].value):null,t[7]?new cb.IfcPressureMeasure(t[7].value):null,t[8]?new cb.IfcPositiveRatioMeasure(t[8].value):null,t[9]?new cb.IfcModulusOfElasticityMeasure(t[9].value):null,t[10]?new cb.IfcPressureMeasure(t[10].value):null,t[11]?new cb.IfcPositiveRatioMeasure(t[11].value):null,t[12]?t[12].map((e=>new zb(e.value))):null),3368373690:(e,t)=>new cb.IfcMetric(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new cb.IfcLabel(t[8].value):null,new zb(t[9].value)),2706619895:(e,t)=>new cb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new cb.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new cb.IfcObjectPlacement(e),2251480897:(e,t)=>new cb.IfcObjective(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2],t[3]?new cb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9],t[10]?new cb.IfcLabel(t[10].value):null),1227763645:(e,t)=>new cb.IfcOpticalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcPositiveRatioMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcPositiveRatioMeasure(t[5].value):null,t[6]?new cb.IfcPositiveRatioMeasure(t[6].value):null,t[7]?new cb.IfcPositiveRatioMeasure(t[7].value):null,t[8]?new cb.IfcPositiveRatioMeasure(t[8].value):null,t[9]?new cb.IfcPositiveRatioMeasure(t[9].value):null),4251960020:(e,t)=>new cb.IfcOrganization(e,t[0]?new cb.IfcIdentifier(t[0].value):null,new cb.IfcLabel(t[1].value),t[2]?new cb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1411181986:(e,t)=>new cb.IfcOrganizationRelationship(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1207048766:(e,t)=>new cb.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new cb.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new cb.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new cb.IfcPerson(e,t[0]?new cb.IfcIdentifier(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new cb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new cb.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new cb.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new cb.IfcPhysicalQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null),2226359599:(e,t)=>new cb.IfcPhysicalSimpleQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new cb.IfcPostalAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcLabel(t[9].value):null),3727388367:(e,t)=>new cb.IfcPreDefinedItem(e,new cb.IfcLabel(t[0].value)),990879717:(e,t)=>new cb.IfcPreDefinedSymbol(e,new cb.IfcLabel(t[0].value)),3213052703:(e,t)=>new cb.IfcPreDefinedTerminatorSymbol(e,new cb.IfcLabel(t[0].value)),1775413392:(e,t)=>new cb.IfcPreDefinedTextFont(e,new cb.IfcLabel(t[0].value)),2022622350:(e,t)=>new cb.IfcPresentationLayerAssignment(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new cb.IfcPresentationLayerWithStyle(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcIdentifier(t[3].value):null,t[4].value,t[5].value,t[6].value,t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new cb.IfcPresentationStyle(e,t[0]?new cb.IfcLabel(t[0].value):null),2417041796:(e,t)=>new cb.IfcPresentationStyleAssignment(e,t[0].map((e=>new zb(e.value)))),2095639259:(e,t)=>new cb.IfcProductRepresentation(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2267347899:(e,t)=>new cb.IfcProductsOfCombustionProperties(e,new zb(t[0].value),t[1]?new cb.IfcSpecificHeatCapacityMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null),3958567839:(e,t)=>new cb.IfcProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null),2802850158:(e,t)=>new cb.IfcProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null),2598011224:(e,t)=>new cb.IfcProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null),3896028662:(e,t)=>new cb.IfcPropertyConstraintRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),148025276:(e,t)=>new cb.IfcPropertyDependencyRelationship(e,new zb(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcText(t[4].value):null),3710013099:(e,t)=>new cb.IfcPropertyEnumeration(e,new cb.IfcLabel(t[0].value),t[1].map((e=>tD(1,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new cb.IfcQuantityArea(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcAreaMeasure(t[3].value)),2093928680:(e,t)=>new cb.IfcQuantityCount(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcCountMeasure(t[3].value)),931644368:(e,t)=>new cb.IfcQuantityLength(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcLengthMeasure(t[3].value)),3252649465:(e,t)=>new cb.IfcQuantityTime(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcTimeMeasure(t[3].value)),2405470396:(e,t)=>new cb.IfcQuantityVolume(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcVolumeMeasure(t[3].value)),825690147:(e,t)=>new cb.IfcQuantityWeight(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new cb.IfcMassMeasure(t[3].value)),2692823254:(e,t)=>new cb.IfcReferencesValueDocument(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),1580146022:(e,t)=>new cb.IfcReinforcementBarProperties(e,new cb.IfcAreaMeasure(t[0].value),new cb.IfcLabel(t[1].value),t[2],t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcCountMeasure(t[5].value):null),1222501353:(e,t)=>new cb.IfcRelaxation(e,new cb.IfcNormalisedRatioMeasure(t[0].value),new cb.IfcNormalisedRatioMeasure(t[1].value)),1076942058:(e,t)=>new cb.IfcRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new cb.IfcRepresentationContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null),3008791417:(e,t)=>new cb.IfcRepresentationItem(e),1660063152:(e,t)=>new cb.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),3679540991:(e,t)=>new cb.IfcRibPlateProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]),2341007311:(e,t)=>new cb.IfcRoot(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),448429030:(e,t)=>new cb.IfcSIUnit(e,t[0],t[1],t[2]),2042790032:(e,t)=>new cb.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new cb.IfcSectionReinforcementProperties(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),867548509:(e,t)=>new cb.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcText(t[2].value):null,t[3].value,new zb(t[4].value)),3982875396:(e,t)=>new cb.IfcShapeModel(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new cb.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3692461612:(e,t)=>new cb.IfcSimpleProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null),2273995522:(e,t)=>new cb.IfcStructuralConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null),2162789131:(e,t)=>new cb.IfcStructuralLoad(e,t[0]?new cb.IfcLabel(t[0].value):null),2525727697:(e,t)=>new cb.IfcStructuralLoadStatic(e,t[0]?new cb.IfcLabel(t[0].value):null),3408363356:(e,t)=>new cb.IfcStructuralLoadTemperature(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new cb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new cb.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new cb.IfcStyleModel(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new cb.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3049322572:(e,t)=>new cb.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),1300840506:(e,t)=>new cb.IfcSurfaceStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new cb.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new cb.IfcSurfaceStyleRefraction(e,t[0]?new cb.IfcReal(t[0].value):null,t[1]?new cb.IfcReal(t[1].value):null),846575682:(e,t)=>new cb.IfcSurfaceStyleShading(e,new zb(t[0].value)),1351298697:(e,t)=>new cb.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new cb.IfcSurfaceTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null),1290481447:(e,t)=>new cb.IfcSymbolStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,tD(1,t[1])),985171141:(e,t)=>new cb.IfcTable(e,t[0].value,t[1].map((e=>new zb(e.value)))),531007025:(e,t)=>new cb.IfcTableRow(e,t[0].map((e=>tD(1,e))),t[1].value),912023232:(e,t)=>new cb.IfcTelecomAddress(e,t[0],t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new cb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new cb.IfcLabel(e.value))):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new cb.IfcLabel(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null),1447204868:(e,t)=>new cb.IfcTextStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value)),1983826977:(e,t)=>new cb.IfcTextStyleFontModel(e,new cb.IfcLabel(t[0].value),t[1]?t[1].map((e=>new cb.IfcTextFontName(e.value))):null,t[2]?new cb.IfcFontStyle(t[2].value):null,t[3]?new cb.IfcFontVariant(t[3].value):null,t[4]?new cb.IfcFontWeight(t[4].value):null,tD(1,t[5])),2636378356:(e,t)=>new cb.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new cb.IfcTextStyleTextModel(e,t[0]?tD(1,t[0]):null,t[1]?new cb.IfcTextAlignment(t[1].value):null,t[2]?new cb.IfcTextDecoration(t[2].value):null,t[3]?tD(1,t[3]):null,t[4]?tD(1,t[4]):null,t[5]?new cb.IfcTextTransformation(t[5].value):null,t[6]?tD(1,t[6]):null),1484833681:(e,t)=>new cb.IfcTextStyleWithBoxCharacteristics(e,t[0]?new cb.IfcPositiveLengthMeasure(t[0].value):null,t[1]?new cb.IfcPositiveLengthMeasure(t[1].value):null,t[2]?new cb.IfcPlaneAngleMeasure(t[2].value):null,t[3]?new cb.IfcPlaneAngleMeasure(t[3].value):null,t[4]?tD(1,t[4]):null),280115917:(e,t)=>new cb.IfcTextureCoordinate(e),1742049831:(e,t)=>new cb.IfcTextureCoordinateGenerator(e,new cb.IfcLabel(t[0].value),t[1].map((e=>tD(1,e)))),2552916305:(e,t)=>new cb.IfcTextureMap(e,t[0].map((e=>new zb(e.value)))),1210645708:(e,t)=>new cb.IfcTextureVertex(e,t[0].map((e=>new cb.IfcParameterValue(e.value)))),3317419933:(e,t)=>new cb.IfcThermalMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcSpecificHeatCapacityMeasure(t[1].value):null,t[2]?new cb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new cb.IfcThermodynamicTemperatureMeasure(t[3].value):null,t[4]?new cb.IfcThermalConductivityMeasure(t[4].value):null),3101149627:(e,t)=>new cb.IfcTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),1718945513:(e,t)=>new cb.IfcTimeSeriesReferenceRelationship(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),581633288:(e,t)=>new cb.IfcTimeSeriesValue(e,t[0].map((e=>tD(1,e)))),1377556343:(e,t)=>new cb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new cb.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new cb.IfcLabel(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new cb.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new cb.IfcVertex(e),3304826586:(e,t)=>new cb.IfcVertexBasedTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value)))),1907098498:(e,t)=>new cb.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new cb.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new cb.IfcLengthMeasure(e.value)))),1065908215:(e,t)=>new cb.IfcWaterProperties(e,new zb(t[0].value),t[1]?t[1].value:null,t[2]?new cb.IfcIonConcentrationMeasure(t[2].value):null,t[3]?new cb.IfcIonConcentrationMeasure(t[3].value):null,t[4]?new cb.IfcIonConcentrationMeasure(t[4].value):null,t[5]?new cb.IfcNormalisedRatioMeasure(t[5].value):null,t[6]?new cb.IfcPHMeasure(t[6].value):null,t[7]?new cb.IfcNormalisedRatioMeasure(t[7].value):null),2442683028:(e,t)=>new cb.IfcAnnotationOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),962685235:(e,t)=>new cb.IfcAnnotationSurfaceOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3612888222:(e,t)=>new cb.IfcAnnotationSymbolOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),2297822566:(e,t)=>new cb.IfcAnnotationTextOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),3798115385:(e,t)=>new cb.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new cb.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new cb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new cb.IfcBlobTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcIdentifier(t[4].value),t[5].value),3150382593:(e,t)=>new cb.IfcCenterLineProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),647927063:(e,t)=>new cb.IfcClassificationReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null),776857604:(e,t)=>new cb.IfcColourRgb(e,t[0]?new cb.IfcLabel(t[0].value):null,new cb.IfcNormalisedRatioMeasure(t[1].value),new cb.IfcNormalisedRatioMeasure(t[2].value),new cb.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new cb.IfcComplexProperty(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new cb.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),1485152156:(e,t)=>new cb.IfcCompositeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new cb.IfcLabel(t[3].value):null),370225590:(e,t)=>new cb.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new cb.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new cb.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new cb.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new cb.IfcLabel(t[2].value)),2889183280:(e,t)=>new cb.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new cb.IfcLabel(t[2].value),new zb(t[3].value)),3800577675:(e,t)=>new cb.IfcCurveStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?new zb(t[3].value):null),3632507154:(e,t)=>new cb.IfcDerivedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new cb.IfcLabel(t[4].value):null),2273265877:(e,t)=>new cb.IfcDimensionCalloutRelationship(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),1694125774:(e,t)=>new cb.IfcDimensionPair(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value)),3732053477:(e,t)=>new cb.IfcDocumentReference(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcIdentifier(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null),4170525392:(e,t)=>new cb.IfcDraughtingPreDefinedTextFont(e,new cb.IfcLabel(t[0].value)),3900360178:(e,t)=>new cb.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new cb.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),t[3].value),1860660968:(e,t)=>new cb.IfcExtendedMaterialProperties(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcText(t[2].value):null,new cb.IfcLabel(t[3].value)),2556980723:(e,t)=>new cb.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new cb.IfcFaceBound(e,new zb(t[0].value),t[1].value),803316827:(e,t)=>new cb.IfcFaceOuterBound(e,new zb(t[0].value),t[1].value),3008276851:(e,t)=>new cb.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),t[2].value),4219587988:(e,t)=>new cb.IfcFailureConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcForceMeasure(t[4].value):null,t[5]?new cb.IfcForceMeasure(t[5].value):null,t[6]?new cb.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new cb.IfcFillAreaStyle(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),3857492461:(e,t)=>new cb.IfcFuelProperties(e,new zb(t[0].value),t[1]?new cb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcHeatingValueMeasure(t[3].value):null,t[4]?new cb.IfcHeatingValueMeasure(t[4].value):null),803998398:(e,t)=>new cb.IfcGeneralMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcMolecularWeightMeasure(t[1].value):null,t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcMassDensityMeasure(t[3].value):null),1446786286:(e,t)=>new cb.IfcGeneralProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null),3448662350:(e,t)=>new cb.IfcGeometricRepresentationContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,new cb.IfcDimensionCount(t[2].value),t[3]?t[3].value:null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new cb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new cb.IfcGeometricRepresentationSubContext(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new cb.IfcPositiveRatioMeasure(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null),3590301190:(e,t)=>new cb.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new cb.IfcGridPlacement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),812098782:(e,t)=>new cb.IfcHalfSpaceSolid(e,new zb(t[0].value),t[1].value),2445078500:(e,t)=>new cb.IfcHygroscopicMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcPositiveRatioMeasure(t[1].value):null,t[2]?new cb.IfcPositiveRatioMeasure(t[2].value):null,t[3]?new cb.IfcIsothermalMoistureCapacityMeasure(t[3].value):null,t[4]?new cb.IfcVaporPermeabilityMeasure(t[4].value):null,t[5]?new cb.IfcMoistureDiffusivityMeasure(t[5].value):null),3905492369:(e,t)=>new cb.IfcImageTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcIdentifier(t[4].value)),3741457305:(e,t)=>new cb.IfcIrregularTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1402838566:(e,t)=>new cb.IfcLightSource(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new cb.IfcLightSourceAmbient(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new cb.IfcLightSourceDirectional(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new cb.IfcLightSourceGoniometric(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new cb.IfcThermodynamicTemperatureMeasure(t[6].value),new cb.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new cb.IfcLightSourcePositional(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcReal(t[6].value),new cb.IfcReal(t[7].value),new cb.IfcReal(t[8].value)),3422422726:(e,t)=>new cb.IfcLightSourceSpot(e,t[0]?new cb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new cb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new cb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcReal(t[6].value),new cb.IfcReal(t[7].value),new cb.IfcReal(t[8].value),new zb(t[9].value),t[10]?new cb.IfcReal(t[10].value):null,new cb.IfcPositivePlaneAngleMeasure(t[11].value),new cb.IfcPositivePlaneAngleMeasure(t[12].value)),2624227202:(e,t)=>new cb.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new cb.IfcLoop(e),2347385850:(e,t)=>new cb.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),2022407955:(e,t)=>new cb.IfcMaterialDefinitionRepresentation(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1430189142:(e,t)=>new cb.IfcMechanicalConcreteMaterialProperties(e,new zb(t[0].value),t[1]?new cb.IfcDynamicViscosityMeasure(t[1].value):null,t[2]?new cb.IfcModulusOfElasticityMeasure(t[2].value):null,t[3]?new cb.IfcModulusOfElasticityMeasure(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new cb.IfcThermalExpansionCoefficientMeasure(t[5].value):null,t[6]?new cb.IfcPressureMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcText(t[8].value):null,t[9]?new cb.IfcText(t[9].value):null,t[10]?new cb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new cb.IfcText(t[11].value):null),219451334:(e,t)=>new cb.IfcObjectDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),2833995503:(e,t)=>new cb.IfcOneDirectionRepeatFactor(e,new zb(t[0].value)),2665983363:(e,t)=>new cb.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1029017970:(e,t)=>new cb.IfcOrientedEdge(e,new zb(t[0].value),t[1].value),2529465313:(e,t)=>new cb.IfcParameterizedProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value)),2519244187:(e,t)=>new cb.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new cb.IfcPhysicalComplexQuantity(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new cb.IfcLabel(t[3].value),t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcLabel(t[5].value):null),597895409:(e,t)=>new cb.IfcPixelTexture(e,t[0].value,t[1].value,t[2],t[3]?new zb(t[3].value):null,new cb.IfcInteger(t[4].value),new cb.IfcInteger(t[5].value),new cb.IfcInteger(t[6].value),t[7].map((e=>e.value))),2004835150:(e,t)=>new cb.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new cb.IfcPlanarExtent(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new cb.IfcPoint(e),4022376103:(e,t)=>new cb.IfcPointOnCurve(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new cb.IfcPointOnSurface(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value),new cb.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new cb.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new cb.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),t[1].value,new zb(t[2].value),new zb(t[3].value)),759155922:(e,t)=>new cb.IfcPreDefinedColour(e,new cb.IfcLabel(t[0].value)),2559016684:(e,t)=>new cb.IfcPreDefinedCurveFont(e,new cb.IfcLabel(t[0].value)),433424934:(e,t)=>new cb.IfcPreDefinedDimensionSymbol(e,new cb.IfcLabel(t[0].value)),179317114:(e,t)=>new cb.IfcPreDefinedPointMarkerSymbol(e,new cb.IfcLabel(t[0].value)),673634403:(e,t)=>new cb.IfcProductDefinitionShape(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),871118103:(e,t)=>new cb.IfcPropertyBoundedValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?tD(1,t[3]):null,t[4]?new zb(t[4].value):null),1680319473:(e,t)=>new cb.IfcPropertyDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),4166981789:(e,t)=>new cb.IfcPropertyEnumeratedValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new cb.IfcPropertyListValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3]?new zb(t[3].value):null),941946838:(e,t)=>new cb.IfcPropertyReferenceValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value)),3357820518:(e,t)=>new cb.IfcPropertySetDefinition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),3650150729:(e,t)=>new cb.IfcPropertySingleValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2]?tD(1,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new cb.IfcPropertyTableValue(e,new cb.IfcIdentifier(t[0].value),t[1]?new cb.IfcText(t[1].value):null,t[2].map((e=>tD(1,e))),t[3].map((e=>tD(1,e))),t[4]?new cb.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3615266464:(e,t)=>new cb.IfcRectangleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new cb.IfcRegularTimeSeries(e,new cb.IfcLabel(t[0].value),t[1]?new cb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4],t[5],t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new cb.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),3765753017:(e,t)=>new cb.IfcReinforcementDefinitionProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),478536968:(e,t)=>new cb.IfcRelationship(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),2778083089:(e,t)=>new cb.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value)),1509187699:(e,t)=>new cb.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),2411513650:(e,t)=>new cb.IfcServiceLifeFactor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?tD(1,t[5]):null,tD(1,t[6]),t[7]?tD(1,t[7]):null),4124623270:(e,t)=>new cb.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),2609359061:(e,t)=>new cb.IfcSlippageConnectionCondition(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new cb.IfcSolidModel(e),2485662743:(e,t)=>new cb.IfcSoundProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new cb.IfcBoolean(t[4].value),t[5],t[6].map((e=>new zb(e.value)))),1202362311:(e,t)=>new cb.IfcSoundValue(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new cb.IfcFrequencyMeasure(t[5].value),t[6]?tD(1,t[6]):null),390701378:(e,t)=>new cb.IfcSpaceThermalLoadProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveRatioMeasure(t[4].value):null,t[5],t[6],t[7]?new cb.IfcText(t[7].value):null,new cb.IfcPowerMeasure(t[8].value),t[9]?new cb.IfcPowerMeasure(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new cb.IfcLabel(t[11].value):null,t[12]?new cb.IfcLabel(t[12].value):null,t[13]),1595516126:(e,t)=>new cb.IfcStructuralLoadLinearForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLinearForceMeasure(t[1].value):null,t[2]?new cb.IfcLinearForceMeasure(t[2].value):null,t[3]?new cb.IfcLinearForceMeasure(t[3].value):null,t[4]?new cb.IfcLinearMomentMeasure(t[4].value):null,t[5]?new cb.IfcLinearMomentMeasure(t[5].value):null,t[6]?new cb.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new cb.IfcStructuralLoadPlanarForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcPlanarForceMeasure(t[1].value):null,t[2]?new cb.IfcPlanarForceMeasure(t[2].value):null,t[3]?new cb.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new cb.IfcStructuralLoadSingleDisplacement(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new cb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new cb.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new cb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcLengthMeasure(t[1].value):null,t[2]?new cb.IfcLengthMeasure(t[2].value):null,t[3]?new cb.IfcLengthMeasure(t[3].value):null,t[4]?new cb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new cb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new cb.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new cb.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new cb.IfcStructuralLoadSingleForce(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcTorqueMeasure(t[4].value):null,t[5]?new cb.IfcTorqueMeasure(t[5].value):null,t[6]?new cb.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new cb.IfcStructuralLoadSingleForceWarping(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new cb.IfcForceMeasure(t[1].value):null,t[2]?new cb.IfcForceMeasure(t[2].value):null,t[3]?new cb.IfcForceMeasure(t[3].value):null,t[4]?new cb.IfcTorqueMeasure(t[4].value):null,t[5]?new cb.IfcTorqueMeasure(t[5].value):null,t[6]?new cb.IfcTorqueMeasure(t[6].value):null,t[7]?new cb.IfcWarpingMomentMeasure(t[7].value):null),3843319758:(e,t)=>new cb.IfcStructuralProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcMomentOfInertiaMeasure(t[7].value):null,t[8]?new cb.IfcMomentOfInertiaMeasure(t[8].value):null,t[9]?new cb.IfcMomentOfInertiaMeasure(t[9].value):null,t[10]?new cb.IfcMomentOfInertiaMeasure(t[10].value):null,t[11]?new cb.IfcWarpingConstantMeasure(t[11].value):null,t[12]?new cb.IfcLengthMeasure(t[12].value):null,t[13]?new cb.IfcLengthMeasure(t[13].value):null,t[14]?new cb.IfcAreaMeasure(t[14].value):null,t[15]?new cb.IfcAreaMeasure(t[15].value):null,t[16]?new cb.IfcSectionModulusMeasure(t[16].value):null,t[17]?new cb.IfcSectionModulusMeasure(t[17].value):null,t[18]?new cb.IfcSectionModulusMeasure(t[18].value):null,t[19]?new cb.IfcSectionModulusMeasure(t[19].value):null,t[20]?new cb.IfcSectionModulusMeasure(t[20].value):null,t[21]?new cb.IfcLengthMeasure(t[21].value):null,t[22]?new cb.IfcLengthMeasure(t[22].value):null),3653947884:(e,t)=>new cb.IfcStructuralSteelProfileProperties(e,t[0]?new cb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new cb.IfcMassPerLengthMeasure(t[2].value):null,t[3]?new cb.IfcPositiveLengthMeasure(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcMomentOfInertiaMeasure(t[7].value):null,t[8]?new cb.IfcMomentOfInertiaMeasure(t[8].value):null,t[9]?new cb.IfcMomentOfInertiaMeasure(t[9].value):null,t[10]?new cb.IfcMomentOfInertiaMeasure(t[10].value):null,t[11]?new cb.IfcWarpingConstantMeasure(t[11].value):null,t[12]?new cb.IfcLengthMeasure(t[12].value):null,t[13]?new cb.IfcLengthMeasure(t[13].value):null,t[14]?new cb.IfcAreaMeasure(t[14].value):null,t[15]?new cb.IfcAreaMeasure(t[15].value):null,t[16]?new cb.IfcSectionModulusMeasure(t[16].value):null,t[17]?new cb.IfcSectionModulusMeasure(t[17].value):null,t[18]?new cb.IfcSectionModulusMeasure(t[18].value):null,t[19]?new cb.IfcSectionModulusMeasure(t[19].value):null,t[20]?new cb.IfcSectionModulusMeasure(t[20].value):null,t[21]?new cb.IfcLengthMeasure(t[21].value):null,t[22]?new cb.IfcLengthMeasure(t[22].value):null,t[23]?new cb.IfcAreaMeasure(t[23].value):null,t[24]?new cb.IfcAreaMeasure(t[24].value):null,t[25]?new cb.IfcPositiveRatioMeasure(t[25].value):null,t[26]?new cb.IfcPositiveRatioMeasure(t[26].value):null),2233826070:(e,t)=>new cb.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new cb.IfcSurface(e),1878645084:(e,t)=>new cb.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new cb.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(1,t[7]):null,t[8]),2247615214:(e,t)=>new cb.IfcSweptAreaSolid(e,new zb(t[0].value),new zb(t[1].value)),1260650574:(e,t)=>new cb.IfcSweptDiskSolid(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),t[2]?new cb.IfcPositiveLengthMeasure(t[2].value):null,new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value)),230924584:(e,t)=>new cb.IfcSweptSurface(e,new zb(t[0].value),new zb(t[1].value)),3071757647:(e,t)=>new cb.IfcTShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new cb.IfcPlaneAngleMeasure(t[11].value):null,t[12]?new cb.IfcPositiveLengthMeasure(t[12].value):null),3028897424:(e,t)=>new cb.IfcTerminatorSymbol(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value)),4282788508:(e,t)=>new cb.IfcTextLiteral(e,new cb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new cb.IfcTextLiteralWithExtent(e,new cb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new cb.IfcBoxAlignment(t[4].value)),2715220739:(e,t)=>new cb.IfcTrapeziumProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcLengthMeasure(t[6].value)),1345879162:(e,t)=>new cb.IfcTwoDirectionRepeatFactor(e,new zb(t[0].value),new zb(t[1].value)),1628702193:(e,t)=>new cb.IfcTypeObject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),2347495698:(e,t)=>new cb.IfcTypeProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null),427810014:(e,t)=>new cb.IfcUShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPlaneAngleMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),1417489154:(e,t)=>new cb.IfcVector(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new cb.IfcVertexLoop(e,new zb(t[0].value)),336235671:(e,t)=>new cb.IfcWindowLiningProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new cb.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new cb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new cb.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null),512836454:(e,t)=>new cb.IfcWindowPanelProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5],t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),1299126871:(e,t)=>new cb.IfcWindowStyle(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10].value,t[11].value),2543172580:(e,t)=>new cb.IfcZShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),3288037868:(e,t)=>new cb.IfcAnnotationCurveOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),669184980:(e,t)=>new cb.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),2265737646:(e,t)=>new cb.IfcAnnotationFillAreaOccurrence(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]),1302238472:(e,t)=>new cb.IfcAnnotationSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),4261334040:(e,t)=>new cb.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new cb.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new cb.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new cb.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new cb.IfcBoundedSurface(e),2581212453:(e,t)=>new cb.IfcBoundingBox(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new cb.IfcBoxedHalfSpace(e,new zb(t[0].value),t[1].value,new zb(t[2].value)),2898889636:(e,t)=>new cb.IfcCShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),1123145078:(e,t)=>new cb.IfcCartesianPoint(e,t[0].map((e=>new cb.IfcLengthMeasure(e.value)))),59481748:(e,t)=>new cb.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null),3749851601:(e,t)=>new cb.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null),3486308946:(e,t)=>new cb.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?t[4].value:null),3331915920:(e,t)=>new cb.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new cb.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?t[3].value:null,t[4]?new zb(t[4].value):null,t[5]?t[5].value:null,t[6]?t[6].value:null),1383045692:(e,t)=>new cb.IfcCircleProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new cb.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),2485617015:(e,t)=>new cb.IfcCompositeCurveSegment(e,t[0],t[1].value,new zb(t[2].value)),4133800736:(e,t)=>new cb.IfcCraneRailAShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,new cb.IfcPositiveLengthMeasure(t[6].value),new cb.IfcPositiveLengthMeasure(t[7].value),new cb.IfcPositiveLengthMeasure(t[8].value),new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcPositiveLengthMeasure(t[10].value),new cb.IfcPositiveLengthMeasure(t[11].value),new cb.IfcPositiveLengthMeasure(t[12].value),new cb.IfcPositiveLengthMeasure(t[13].value),t[14]?new cb.IfcPositiveLengthMeasure(t[14].value):null),194851669:(e,t)=>new cb.IfcCraneRailFShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,new cb.IfcPositiveLengthMeasure(t[6].value),new cb.IfcPositiveLengthMeasure(t[7].value),new cb.IfcPositiveLengthMeasure(t[8].value),new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcPositiveLengthMeasure(t[10].value),t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),2506170314:(e,t)=>new cb.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new cb.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new cb.IfcCurve(e),2827736869:(e,t)=>new cb.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),693772133:(e,t)=>new cb.IfcDefinedSymbol(e,new zb(t[0].value),new zb(t[1].value)),606661476:(e,t)=>new cb.IfcDimensionCurve(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),4054601972:(e,t)=>new cb.IfcDimensionCurveTerminator(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null,new zb(t[3].value),t[4]),32440307:(e,t)=>new cb.IfcDirection(e,t[0].map((e=>e.value))),2963535650:(e,t)=>new cb.IfcDoorLiningProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new cb.IfcPositiveLengthMeasure(t[5].value):null,t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcLengthMeasure(t[9].value):null,t[10]?new cb.IfcLengthMeasure(t[10].value):null,t[11]?new cb.IfcLengthMeasure(t[11].value):null,t[12]?new cb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new cb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null),1714330368:(e,t)=>new cb.IfcDoorPanelProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new cb.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),526551008:(e,t)=>new cb.IfcDoorStyle(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10].value,t[11].value),3073041342:(e,t)=>new cb.IfcDraughtingCallout(e,t[0].map((e=>new zb(e.value)))),445594917:(e,t)=>new cb.IfcDraughtingPreDefinedColour(e,new cb.IfcLabel(t[0].value)),4006246654:(e,t)=>new cb.IfcDraughtingPreDefinedCurveFont(e,new cb.IfcLabel(t[0].value)),1472233963:(e,t)=>new cb.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new cb.IfcElementQuantity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new cb.IfcElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2777663545:(e,t)=>new cb.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new cb.IfcEllipseProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),80994333:(e,t)=>new cb.IfcEnergyProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null),477187591:(e,t)=>new cb.IfcExtrudedAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),2047409740:(e,t)=>new cb.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new cb.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new cb.IfcPlaneAngleMeasure(t[4].value)),4203026998:(e,t)=>new cb.IfcFillAreaStyleTileSymbolWithStyle(e,new zb(t[0].value)),315944413:(e,t)=>new cb.IfcFillAreaStyleTiles(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new cb.IfcPositiveRatioMeasure(t[2].value)),3455213021:(e,t)=>new cb.IfcFluidFlowProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value),t[9]?new zb(t[9].value):null,t[10]?new cb.IfcLabel(t[10].value):null,t[11]?new cb.IfcThermodynamicTemperatureMeasure(t[11].value):null,t[12]?new cb.IfcThermodynamicTemperatureMeasure(t[12].value):null,t[13]?new zb(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?tD(1,t[15]):null,t[16]?new cb.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new cb.IfcLinearVelocityMeasure(t[17].value):null,t[18]?new cb.IfcPressureMeasure(t[18].value):null),4238390223:(e,t)=>new cb.IfcFurnishingElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1268542332:(e,t)=>new cb.IfcFurnitureType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new cb.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new cb.IfcIShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null),572779678:(e,t)=>new cb.IfcLShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),t[4]?new cb.IfcPositiveLengthMeasure(t[4].value):null,new cb.IfcPositiveLengthMeasure(t[5].value),t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new cb.IfcPlaneAngleMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),1281925730:(e,t)=>new cb.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new cb.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new cb.IfcObject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3388369263:(e,t)=>new cb.IfcOffsetCurve2D(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2].value),3505215534:(e,t)=>new cb.IfcOffsetCurve3D(e,new zb(t[0].value),new cb.IfcLengthMeasure(t[1].value),t[2].value,new zb(t[3].value)),3566463478:(e,t)=>new cb.IfcPermeableCoveringProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5],t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),603570806:(e,t)=>new cb.IfcPlanarBox(e,new cb.IfcLengthMeasure(t[0].value),new cb.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new cb.IfcPlane(e,new zb(t[0].value)),2945172077:(e,t)=>new cb.IfcProcess(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),4208778838:(e,t)=>new cb.IfcProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new cb.IfcProject(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcLabel(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7].map((e=>new zb(e.value))),new zb(t[8].value)),4194566429:(e,t)=>new cb.IfcProjectionCurve(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new cb.IfcLabel(t[2].value):null),1451395588:(e,t)=>new cb.IfcPropertySet(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),3219374653:(e,t)=>new cb.IfcProxy(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcLabel(t[8].value):null),2770003689:(e,t)=>new cb.IfcRectangleHollowProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),t[6]?new cb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null),2798486643:(e,t)=>new cb.IfcRectangularPyramid(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new cb.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new cb.IfcParameterValue(t[1].value),new cb.IfcParameterValue(t[2].value),new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value),t[5].value,t[6].value),3939117080:(e,t)=>new cb.IfcRelAssigns(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new cb.IfcRelAssignsToActor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new cb.IfcRelAssignsToControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new cb.IfcRelAssignsToGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),4278684876:(e,t)=>new cb.IfcRelAssignsToProcess(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new cb.IfcRelAssignsToProduct(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),3372526763:(e,t)=>new cb.IfcRelAssignsToProjectOrder(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new cb.IfcRelAssignsToResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new cb.IfcRelAssociates(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),1327628568:(e,t)=>new cb.IfcRelAssociatesAppliedValue(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4095574036:(e,t)=>new cb.IfcRelAssociatesApproval(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new cb.IfcRelAssociatesClassification(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new cb.IfcRelAssociatesConstraint(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new cb.IfcLabel(t[5].value),new zb(t[6].value)),982818633:(e,t)=>new cb.IfcRelAssociatesDocument(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new cb.IfcRelAssociatesLibrary(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new cb.IfcRelAssociatesMaterial(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2851387026:(e,t)=>new cb.IfcRelAssociatesProfileProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),826625072:(e,t)=>new cb.IfcRelConnects(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null),1204542856:(e,t)=>new cb.IfcRelConnectsElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new cb.IfcRelConnectsPathElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>e.value)),t[8].map((e=>e.value)),t[9],t[10]),4201705270:(e,t)=>new cb.IfcRelConnectsPortToElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new cb.IfcRelConnectsPorts(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new cb.IfcRelConnectsStructuralActivity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3912681535:(e,t)=>new cb.IfcRelConnectsStructuralElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new cb.IfcRelConnectsStructuralMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new cb.IfcRelConnectsWithEccentricity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new cb.IfcRelConnectsWithRealizingElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new cb.IfcLabel(t[8].value):null),3242617779:(e,t)=>new cb.IfcRelContainedInSpatialStructure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new cb.IfcRelCoversBldgElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new cb.IfcRelCoversSpaces(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new cb.IfcRelDecomposes(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),693640335:(e,t)=>new cb.IfcRelDefines(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4186316022:(e,t)=>new cb.IfcRelDefinesByProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new cb.IfcRelDefinesByType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new cb.IfcRelFillsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new cb.IfcRelFlowControlElements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4189434867:(e,t)=>new cb.IfcRelInteractionRequirements(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcCountMeasure(t[4].value):null,t[5]?new cb.IfcNormalisedRatioMeasure(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),new zb(t[8].value)),3268803585:(e,t)=>new cb.IfcRelNests(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2051452291:(e,t)=>new cb.IfcRelOccupiesSpaces(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),202636808:(e,t)=>new cb.IfcRelOverridesProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value),t[6].map((e=>new zb(e.value)))),750771296:(e,t)=>new cb.IfcRelProjectsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new cb.IfcRelReferencedInSpatialStructure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),1058617721:(e,t)=>new cb.IfcRelSchedulesCostItems(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),4122056220:(e,t)=>new cb.IfcRelSequence(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),new cb.IfcTimeMeasure(t[6].value),t[7]),366585022:(e,t)=>new cb.IfcRelServicesBuildings(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new cb.IfcRelSpaceBoundary(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]),1401173127:(e,t)=>new cb.IfcRelVoidsElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),2914609552:(e,t)=>new cb.IfcResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1856042241:(e,t)=>new cb.IfcRevolvedAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcPlaneAngleMeasure(t[3].value)),4158566097:(e,t)=>new cb.IfcRightCircularCone(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new cb.IfcRightCircularCylinder(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),2706606064:(e,t)=>new cb.IfcSpatialStructureElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new cb.IfcSpatialStructureElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),451544542:(e,t)=>new cb.IfcSphere(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),3544373492:(e,t)=>new cb.IfcStructuralActivity(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new cb.IfcStructuralItem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new cb.IfcStructuralMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new cb.IfcStructuralReaction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new cb.IfcStructuralSurfaceMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new cb.IfcStructuralSurfaceMemberVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9].map((e=>new cb.IfcPositiveLengthMeasure(e.value))),new zb(t[10].value)),4070609034:(e,t)=>new cb.IfcStructuredDimensionCallout(e,t[0].map((e=>new zb(e.value)))),2028607225:(e,t)=>new cb.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcParameterValue(t[3].value),new cb.IfcParameterValue(t[4].value),new zb(t[5].value)),2809605785:(e,t)=>new cb.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new cb.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new cb.IfcSurfaceOfRevolution(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),1580310250:(e,t)=>new cb.IfcSystemFurnitureElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3473067441:(e,t)=>new cb.IfcTask(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null),2097647324:(e,t)=>new cb.IfcTransportElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2296667514:(e,t)=>new cb.IfcActor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value)),1674181508:(e,t)=>new cb.IfcAnnotation(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3207858831:(e,t)=>new cb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value),new cb.IfcPositiveLengthMeasure(t[5].value),new cb.IfcPositiveLengthMeasure(t[6].value),t[7]?new cb.IfcPositiveLengthMeasure(t[7].value):null,new cb.IfcPositiveLengthMeasure(t[8].value),t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),1334484129:(e,t)=>new cb.IfcBlock(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new cb.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new cb.IfcBoundedCurve(e),4031249490:(e,t)=>new cb.IfcBuilding(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcLengthMeasure(t[9].value):null,t[10]?new cb.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),1950629157:(e,t)=>new cb.IfcBuildingElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3124254112:(e,t)=>new cb.IfcBuildingStorey(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcLengthMeasure(t[9].value):null),2937912522:(e,t)=>new cb.IfcCircleHollowProfileDef(e,t[0],t[1]?new cb.IfcLabel(t[1].value):null,new zb(t[2].value),new cb.IfcPositiveLengthMeasure(t[3].value),new cb.IfcPositiveLengthMeasure(t[4].value)),300633059:(e,t)=>new cb.IfcColumnType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3732776249:(e,t)=>new cb.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),t[1].value),2510884976:(e,t)=>new cb.IfcConic(e,new zb(t[0].value)),2559216714:(e,t)=>new cb.IfcConstructionResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),3293443760:(e,t)=>new cb.IfcControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3895139033:(e,t)=>new cb.IfcCostItem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1419761937:(e,t)=>new cb.IfcCostSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,new cb.IfcIdentifier(t[11].value),t[12]),1916426348:(e,t)=>new cb.IfcCoveringType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new cb.IfcCrewResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),1457835157:(e,t)=>new cb.IfcCurtainWallType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),681481545:(e,t)=>new cb.IfcDimensionCurveDirectedCallout(e,t[0].map((e=>new zb(e.value)))),3256556792:(e,t)=>new cb.IfcDistributionElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3849074793:(e,t)=>new cb.IfcDistributionFlowElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),360485395:(e,t)=>new cb.IfcElectricalBaseProperties(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4],t[5]?new cb.IfcLabel(t[5].value):null,t[6],new cb.IfcElectricVoltageMeasure(t[7].value),new cb.IfcFrequencyMeasure(t[8].value),t[9]?new cb.IfcElectricCurrentMeasure(t[9].value):null,t[10]?new cb.IfcElectricCurrentMeasure(t[10].value):null,t[11]?new cb.IfcPowerMeasure(t[11].value):null,t[12]?new cb.IfcPowerMeasure(t[12].value):null,t[13].value),1758889154:(e,t)=>new cb.IfcElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new cb.IfcElementAssembly(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]),1623761950:(e,t)=>new cb.IfcElementComponent(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new cb.IfcElementComponentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1704287377:(e,t)=>new cb.IfcEllipse(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value),new cb.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new cb.IfcEnergyConversionDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1962604670:(e,t)=>new cb.IfcEquipmentElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3272907226:(e,t)=>new cb.IfcEquipmentStandard(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),3174744832:(e,t)=>new cb.IfcEvaporativeCoolerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new cb.IfcEvaporatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),807026263:(e,t)=>new cb.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new cb.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),647756555:(e,t)=>new cb.IfcFastener(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2489546625:(e,t)=>new cb.IfcFastenerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2827207264:(e,t)=>new cb.IfcFeatureElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new cb.IfcFeatureElementAddition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new cb.IfcFeatureElementSubtraction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new cb.IfcFlowControllerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3198132628:(e,t)=>new cb.IfcFlowFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3815607619:(e,t)=>new cb.IfcFlowMeterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new cb.IfcFlowMovingDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1834744321:(e,t)=>new cb.IfcFlowSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1339347760:(e,t)=>new cb.IfcFlowStorageDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2297155007:(e,t)=>new cb.IfcFlowTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3009222698:(e,t)=>new cb.IfcFlowTreatmentDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),263784265:(e,t)=>new cb.IfcFurnishingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),814719939:(e,t)=>new cb.IfcFurnitureStandard(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),200128114:(e,t)=>new cb.IfcGasTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3009204131:(e,t)=>new cb.IfcGrid(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null),2706460486:(e,t)=>new cb.IfcGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1251058090:(e,t)=>new cb.IfcHeatExchangerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new cb.IfcHumidifierType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2391368822:(e,t)=>new cb.IfcInventory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],new zb(t[6].value),t[7].map((e=>new zb(e.value))),new zb(t[8].value),t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new cb.IfcJunctionBoxType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3827777499:(e,t)=>new cb.IfcLaborResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?new cb.IfcText(t[9].value):null),1051575348:(e,t)=>new cb.IfcLampType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new cb.IfcLightFixtureType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2506943328:(e,t)=>new cb.IfcLinearDimension(e,t[0].map((e=>new zb(e.value)))),377706215:(e,t)=>new cb.IfcMechanicalFastener(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),2108223431:(e,t)=>new cb.IfcMechanicalFastenerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3181161470:(e,t)=>new cb.IfcMemberType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new cb.IfcMotorConnectionType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1916936684:(e,t)=>new cb.IfcMove(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null,new zb(t[10].value),new zb(t[11].value),t[12]?t[12].map((e=>new cb.IfcText(e.value))):null),4143007308:(e,t)=>new cb.IfcOccupant(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new cb.IfcOpeningElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3425660407:(e,t)=>new cb.IfcOrderAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcLabel(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8].value,t[9]?t[9].value:null,new cb.IfcIdentifier(t[10].value)),2837617999:(e,t)=>new cb.IfcOutletType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new cb.IfcPerformanceHistory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcLabel(t[5].value)),3327091369:(e,t)=>new cb.IfcPermit(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value)),804291784:(e,t)=>new cb.IfcPipeFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new cb.IfcPipeSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new cb.IfcPlateType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3724593414:(e,t)=>new cb.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new cb.IfcPort(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new cb.IfcProcedure(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6],t[7]?new cb.IfcLabel(t[7].value):null),2904328755:(e,t)=>new cb.IfcProjectOrder(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6],t[7]?new cb.IfcLabel(t[7].value):null),3642467123:(e,t)=>new cb.IfcProjectOrderRecord(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value))),t[6]),3651124850:(e,t)=>new cb.IfcProjectionElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1842657554:(e,t)=>new cb.IfcProtectiveDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new cb.IfcPumpType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3248260540:(e,t)=>new cb.IfcRadiusDimension(e,t[0].map((e=>new zb(e.value)))),2893384427:(e,t)=>new cb.IfcRailingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2324767716:(e,t)=>new cb.IfcRampFlightType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),160246688:(e,t)=>new cb.IfcRelAggregates(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2863920197:(e,t)=>new cb.IfcRelAssignsTasks(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),1768891740:(e,t)=>new cb.IfcSanitaryTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3517283431:(e,t)=>new cb.IfcScheduleTimeControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new cb.IfcTimeMeasure(t[13].value):null,t[14]?new cb.IfcTimeMeasure(t[14].value):null,t[15]?new cb.IfcTimeMeasure(t[15].value):null,t[16]?new cb.IfcTimeMeasure(t[16].value):null,t[17]?new cb.IfcTimeMeasure(t[17].value):null,t[18]?t[18].value:null,t[19]?new zb(t[19].value):null,t[20]?new cb.IfcTimeMeasure(t[20].value):null,t[21]?new cb.IfcTimeMeasure(t[21].value):null,t[22]?new cb.IfcPositiveRatioMeasure(t[22].value):null),4105383287:(e,t)=>new cb.IfcServiceLife(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],new cb.IfcTimeMeasure(t[6].value)),4097777520:(e,t)=>new cb.IfcSite(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9]?new cb.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new cb.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new cb.IfcLengthMeasure(t[11].value):null,t[12]?new cb.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new cb.IfcSlabType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new cb.IfcSpace(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new cb.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new cb.IfcSpaceHeaterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),652456506:(e,t)=>new cb.IfcSpaceProgram(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),t[6]?new cb.IfcAreaMeasure(t[6].value):null,t[7]?new cb.IfcAreaMeasure(t[7].value):null,t[8]?new zb(t[8].value):null,new cb.IfcAreaMeasure(t[9].value)),3812236995:(e,t)=>new cb.IfcSpaceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3112655638:(e,t)=>new cb.IfcStackTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new cb.IfcStairFlightType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new cb.IfcStructuralAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null),1179482911:(e,t)=>new cb.IfcStructuralConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),4243806635:(e,t)=>new cb.IfcStructuralCurveConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),214636428:(e,t)=>new cb.IfcStructuralCurveMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),2445595289:(e,t)=>new cb.IfcStructuralCurveMemberVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),1807405624:(e,t)=>new cb.IfcStructuralLinearAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11]),1721250024:(e,t)=>new cb.IfcStructuralLinearActionVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11],new zb(t[12].value),t[13].map((e=>new zb(e.value)))),1252848954:(e,t)=>new cb.IfcStructuralLoadGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new cb.IfcRatioMeasure(t[8].value):null,t[9]?new cb.IfcLabel(t[9].value):null),1621171031:(e,t)=>new cb.IfcStructuralPlanarAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11]),3987759626:(e,t)=>new cb.IfcStructuralPlanarActionVarying(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null,t[11],new zb(t[12].value),t[13].map((e=>new zb(e.value)))),2082059205:(e,t)=>new cb.IfcStructuralPointAction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9].value,t[10]?new zb(t[10].value):null),734778138:(e,t)=>new cb.IfcStructuralPointConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1235345126:(e,t)=>new cb.IfcStructuralPointReaction(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new cb.IfcStructuralResultGroup(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7].value),1975003073:(e,t)=>new cb.IfcStructuralSurfaceConnection(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new cb.IfcSubContractResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new cb.IfcText(t[10].value):null),2315554128:(e,t)=>new cb.IfcSwitchingDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new cb.IfcSystem(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),5716631:(e,t)=>new cb.IfcTankType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1637806684:(e,t)=>new cb.IfcTimeSeriesSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6],new zb(t[7].value)),1692211062:(e,t)=>new cb.IfcTransformerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1620046519:(e,t)=>new cb.IfcTransportElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]?new cb.IfcMassMeasure(t[9].value):null,t[10]?new cb.IfcCountMeasure(t[10].value):null),3593883385:(e,t)=>new cb.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),t[3].value,t[4]),1600972822:(e,t)=>new cb.IfcTubeBundleType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new cb.IfcUnitaryEquipmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new cb.IfcValveType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new cb.IfcVirtualElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1898987631:(e,t)=>new cb.IfcWallType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new cb.IfcWasteTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1028945134:(e,t)=>new cb.IfcWorkControl(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),4218914973:(e,t)=>new cb.IfcWorkPlan(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),3342526732:(e,t)=>new cb.IfcWorkSchedule(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcTimeMeasure(t[9].value):null,t[10]?new cb.IfcTimeMeasure(t[10].value):null,new zb(t[11].value),t[12]?new zb(t[12].value):null,t[13],t[14]?new cb.IfcLabel(t[14].value):null),1033361043:(e,t)=>new cb.IfcZone(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1213861670:(e,t)=>new cb.Ifc2DCompositeCurve(e,t[0].map((e=>new zb(e.value))),t[1].value),3821786052:(e,t)=>new cb.IfcActionRequest(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value)),1411407467:(e,t)=>new cb.IfcAirTerminalBoxType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new cb.IfcAirTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new cb.IfcAirToAirHeatRecoveryType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2470393545:(e,t)=>new cb.IfcAngularDimension(e,t[0].map((e=>new zb(e.value)))),3460190687:(e,t)=>new cb.IfcAsset(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new cb.IfcIdentifier(t[5].value),new zb(t[6].value),new zb(t[7].value),new zb(t[8].value),new zb(t[9].value),new zb(t[10].value),new zb(t[11].value),new zb(t[12].value),new zb(t[13].value)),1967976161:(e,t)=>new cb.IfcBSplineCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value),819618141:(e,t)=>new cb.IfcBeamType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1916977116:(e,t)=>new cb.IfcBezierCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value),231477066:(e,t)=>new cb.IfcBoilerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3299480353:(e,t)=>new cb.IfcBuildingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),52481810:(e,t)=>new cb.IfcBuildingElementComponent(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2979338954:(e,t)=>new cb.IfcBuildingElementPart(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1095909175:(e,t)=>new cb.IfcBuildingElementProxy(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1909888760:(e,t)=>new cb.IfcBuildingElementProxyType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new cb.IfcCableCarrierFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new cb.IfcCableCarrierSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new cb.IfcCableSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new cb.IfcChillerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2611217952:(e,t)=>new cb.IfcCircle(e,new zb(t[0].value),new cb.IfcPositiveLengthMeasure(t[1].value)),2301859152:(e,t)=>new cb.IfcCoilType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new cb.IfcColumn(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3850581409:(e,t)=>new cb.IfcCompressorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new cb.IfcCondenserType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2188551683:(e,t)=>new cb.IfcCondition(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),1163958913:(e,t)=>new cb.IfcConditionCriterion(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3898045240:(e,t)=>new cb.IfcConstructionEquipmentResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),1060000209:(e,t)=>new cb.IfcConstructionMaterialResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new cb.IfcRatioMeasure(t[10].value):null),488727124:(e,t)=>new cb.IfcConstructionProductResource(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new cb.IfcIdentifier(t[5].value):null,t[6]?new cb.IfcLabel(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),335055490:(e,t)=>new cb.IfcCooledBeamType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new cb.IfcCoolingTowerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1973544240:(e,t)=>new cb.IfcCovering(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new cb.IfcCurtainWall(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3961806047:(e,t)=>new cb.IfcDamperType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4147604152:(e,t)=>new cb.IfcDiameterDimension(e,t[0].map((e=>new zb(e.value)))),1335981549:(e,t)=>new cb.IfcDiscreteAccessory(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2635815018:(e,t)=>new cb.IfcDiscreteAccessoryType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1599208980:(e,t)=>new cb.IfcDistributionChamberElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new cb.IfcDistributionControlElementType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),1945004755:(e,t)=>new cb.IfcDistributionElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new cb.IfcDistributionFlowElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new cb.IfcDistributionPort(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),395920057:(e,t)=>new cb.IfcDoor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),869906466:(e,t)=>new cb.IfcDuctFittingType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new cb.IfcDuctSegmentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new cb.IfcDuctSilencerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),855621170:(e,t)=>new cb.IfcEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null),663422040:(e,t)=>new cb.IfcElectricApplianceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new cb.IfcElectricFlowStorageDeviceType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new cb.IfcElectricGeneratorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1365060375:(e,t)=>new cb.IfcElectricHeaterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new cb.IfcElectricMotorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new cb.IfcElectricTimeControlType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1634875225:(e,t)=>new cb.IfcElectricalCircuit(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null),857184966:(e,t)=>new cb.IfcElectricalElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1658829314:(e,t)=>new cb.IfcEnergyConversionDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),346874300:(e,t)=>new cb.IfcFanType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new cb.IfcFilterType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new cb.IfcFireSuppressionTerminalType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new cb.IfcFlowController(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new cb.IfcFlowFitting(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new cb.IfcFlowInstrumentType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3132237377:(e,t)=>new cb.IfcFlowMovingDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new cb.IfcFlowSegment(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new cb.IfcFlowStorageDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new cb.IfcFlowTerminal(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new cb.IfcFlowTreatmentDevice(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new cb.IfcFooting(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new cb.IfcMember(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1687234759:(e,t)=>new cb.IfcPile(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]),3171933400:(e,t)=>new cb.IfcPlate(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2262370178:(e,t)=>new cb.IfcRailing(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new cb.IfcRamp(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new cb.IfcRampFlight(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3055160366:(e,t)=>new cb.IfcRationalBezierCurve(e,t[0].value,t[1].map((e=>new zb(e.value))),t[2],t[3].value,t[4].value,t[5].map((e=>e.value))),3027567501:(e,t)=>new cb.IfcReinforcingElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),2320036040:(e,t)=>new cb.IfcReinforcingMesh(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,new cb.IfcPositiveLengthMeasure(t[11].value),new cb.IfcPositiveLengthMeasure(t[12].value),new cb.IfcAreaMeasure(t[13].value),new cb.IfcAreaMeasure(t[14].value),new cb.IfcPositiveLengthMeasure(t[15].value),new cb.IfcPositiveLengthMeasure(t[16].value)),2016517767:(e,t)=>new cb.IfcRoof(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),1376911519:(e,t)=>new cb.IfcRoundedEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),1783015770:(e,t)=>new cb.IfcSensorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1529196076:(e,t)=>new cb.IfcSlab(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new cb.IfcStair(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new cb.IfcStairFlight(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?t[8].value:null,t[9]?t[9].value:null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null),2515109513:(e,t)=>new cb.IfcStructuralAnalysisModel(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),3824725483:(e,t)=>new cb.IfcTendon(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9],new cb.IfcPositiveLengthMeasure(t[10].value),new cb.IfcAreaMeasure(t[11].value),t[12]?new cb.IfcForceMeasure(t[12].value):null,t[13]?new cb.IfcPressureMeasure(t[13].value):null,t[14]?new cb.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new cb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new cb.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new cb.IfcTendonAnchor(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null),3313531582:(e,t)=>new cb.IfcVibrationIsolatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),2391406946:(e,t)=>new cb.IfcWall(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3512223829:(e,t)=>new cb.IfcWallStandardCase(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),3304561284:(e,t)=>new cb.IfcWindow(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null),2874132201:(e,t)=>new cb.IfcActuatorType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),3001207471:(e,t)=>new cb.IfcAlarmType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),753842376:(e,t)=>new cb.IfcBeam(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),2454782716:(e,t)=>new cb.IfcChamferEdgeFeature(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new cb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new cb.IfcPositiveLengthMeasure(t[10].value):null),578613899:(e,t)=>new cb.IfcControllerType(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new cb.IfcLabel(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,t[9]),1052013943:(e,t)=>new cb.IfcDistributionChamberElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null),1062813311:(e,t)=>new cb.IfcDistributionControlElement(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcIdentifier(t[8].value):null),3700593921:(e,t)=>new cb.IfcElectricDistributionPoint(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8],t[9]?new cb.IfcLabel(t[9].value):null),979691226:(e,t)=>new cb.IfcReinforcingBar(e,new cb.IfcGloballyUniqueId(t[0].value),new zb(t[1].value),t[2]?new cb.IfcLabel(t[2].value):null,t[3]?new cb.IfcText(t[3].value):null,t[4]?new cb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new cb.IfcIdentifier(t[7].value):null,t[8]?new cb.IfcLabel(t[8].value):null,new cb.IfcPositiveLengthMeasure(t[9].value),new cb.IfcAreaMeasure(t[10].value),t[11]?new cb.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13])},qb[1]={618182010:[912023232,3355820592],411424972:[1648886627,602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],3264961684:[776857604],2859738748:[1981873012,2732653382,4257277454,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],3796139169:[1694125774,2273265877],3200245327:[3732053477,647927063,3452421091,3548104201,3207319532,1040185647,2242383968],3265635763:[2445078500,803998398,3857492461,1860660968,1065908215,3317419933,2267347899,1227763645,1430189142,677618848,4256014907],4256014907:[1430189142,677618848],1918398963:[2889183280,3050246964,448429030],3701648758:[2624227202,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,931644368,2093928680,2044713172],3727388367:[4006246654,2559016684,445594917,759155922,4170525392,1983826977,1775413392,179317114,433424934,3213052703,990879717],990879717:[179317114,433424934,3213052703],1775413392:[4170525392,1983826977],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1290481447,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,3207858831,1484403080,2835456948,194851669,4133800736,2937912522,1383045692,2898889636,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],2802850158:[3653947884,3843319758,1446786286,3679540991],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,4203026998,374418227,2047409740,4147604152,2470393545,3248260540,2506943328,681481545,4070609034,3073041342,32440307,693772133,2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2581212453,3649129432,2736907675,1302238472,669184980,1417489154,3124975700,4282788508,220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,1345879162,2833995503,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235,2442683028,3958052878],2341007311:[781010003,202636808,4186316022,693640335,160246688,3268803585,2551354335,1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568,1865459582,205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259,3939117080,478536968,1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017,3357820518,1680319473,2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077,3888040117,3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,1628702193,219451334],3982875396:[1735638870,4240577450],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],2273995522:[2609359061,4219587988],2162789131:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],3958052878:[2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235,2442683028],846575682:[1878645084],626085974:[597895409,3905492369,616511568],280115917:[2552916305,1742049831],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],2442683028:[2265737646,4194566429,606661476,3288037868,2297822566,4054601972,3028897424,3612888222,962685235],3612888222:[4054601972,3028897424],3798115385:[2705031697],1310608509:[3150382593],370225590:[2205249479,2665983363],3900360178:[2233826070,1029017970,476780140],2556980723:[3008276851],1809719519:[803316827],1446786286:[3653947884,3843319758],3448662350:[4142052618],2453401579:[315944413,4203026998,374418227,2047409740,4147604152,2470393545,3248260540,2506943328,681481545,4070609034,3073041342,32440307,693772133,2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2581212453,3649129432,2736907675,1302238472,669184980,1417489154,3124975700,4282788508,220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,1345879162,2833995503,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],219451334:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077,3888040117,3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,1628702193],2833995503:[1345879162],2529465313:[572779678,3207858831,1484403080,2835456948,194851669,4133800736,2937912522,1383045692,2898889636,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103],759155922:[445594917],2559016684:[4006246654],1680319473:[1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017,3357820518],3357820518:[1451395588,3566463478,3455213021,360485395,80994333,1883228015,1714330368,2963535650,512836454,336235671,390701378,1202362311,2485662743,2411513650,3765753017],3615266464:[2770003689,2778083089],478536968:[781010003,202636808,4186316022,693640335,160246688,3268803585,2551354335,1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568,1865459582,205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259,3939117080],723233188:[3737207727,807026263,1425443689,2147822146,1260650574,2028607225,1856042241,477187591,2247615214],2473145415:[1973038258],1597423693:[1190533807],3843319758:[3653947884],2513912981:[220341763,2777663545,3454111270,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[2028607225,1856042241,477187591],230924584:[4124788165,2809605785],3028897424:[4054601972],4282788508:[3124975700],1628702193:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698],2347495698:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223,339256511,526551008,1299126871],3288037868:[4194566429,606661476],2736907675:[3649129432],4182860854:[3454111270,2827736869],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249,1260505505,3505215534,3388369263,Wb],3073041342:[4147604152,2470393545,3248260540,2506943328,681481545,4070609034],339256511:[3313531582,2635815018,2108223431,2489546625,2590856083,578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793,3256556792,1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059,1950629157,2097647324,3812236995,3893378262,1580310250,1268542332,4238390223],2777663545:[220341763],80994333:[360485395],4238390223:[1580310250,1268542332],1484403080:[3207858831],1425443689:[3737207727,807026263],3888040117:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822,2706460486,1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,103090709,3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653,4208778838,2744685151,3425660407,1916936684,Qb,2945172077],2945172077:[2744685151,3425660407,1916936684,Qb],4208778838:[3041715199,Vb,kb,857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777,3544373492,Gb,jb,3124254112,4031249490,2706606064,3219374653],3939117080:[205026976,2857406711,4278684876,1307041759,2863920197,1058617721,3372526763,2495723537,2051452291,1683148259],1683148259:[2051452291],2495723537:[2863920197,1058617721,3372526763],1865459582:[2851387026,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1327628568],826625072:[1401173127,3451746338,366585022,4122056220,1245217292,750771296,4189434867,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,3912681535,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,3268803585],693640335:[781010003,202636808,4186316022],4186316022:[202636808],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],2706606064:[Gb,jb,3124254112,4031249490],3893378262:[3812236995],3544373492:[2082059205,3987759626,1621171031,1721250024,1807405624,682877961,1235345126,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126],3979015343:[2218152070],3473067441:[3425660407,1916936684],2296667514:[4143007308],1260505505:[3055160366,1916977116,1967976161,3593883385,3724593414,1213861670,3732776249],1950629157:[1909888760,819618141,1898987631,1039846685,2533589738,2324767716,2893384427,4017108033,3181161470,1457835157,1916426348,300633059],3732776249:[1213861670],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[1163958913,3821786052,3342526732,4218914973,1028945134,1637806684,652456506,4105383287,3517283431,3642467123,2904328755,3327091369,2382730787,814719939,3272907226,1419761937,3895139033],681481545:[4147604152,2470393545,3248260540,2506943328],3256556792:[578613899,3001207471,2874132201,1783015770,4037862832,2063403501,1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300,3849074793],3849074793:[1599208980,1810631287,2030761528,3009222698,4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,395041908,804291784,4288270099,3198132628,712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832,2107101300],1758889154:[857184966,1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961,1945004755,_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810,3299480353,2769231204,1620046519,263784265,2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405,2827207264,1962604670,1335981549,377706215,647756555,1623761950,4123344466],1623761950:[1335981549,377706215,647756555],2590856083:[3313531582,2635815018,2108223431,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,231477066,1871374353,1911125066,1600972822,1692211062,1305183839,977012517,1806887404,1251058090,3390157468,3174744832],647756555:[377706215],2489546625:[2108223431],2827207264:[2454782716,1376911519,855621170,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[2454782716,1376911519,855621170,3588315303],3907093117:[712377611,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,1365060375,663422040,3352864051,1133259667,3112655638,1768891740,2837617999,1161773419,1051575348,200128114],3009222698:[1810631287,2030761528],2706460486:[2188551683,Hb,Ub,2515109513,1634875225,2254336722,2986769608,1252848954,2391368822],3740093272:[3041715199],682877961:[2082059205,3987759626,1621171031,1721250024,1807405624],1179482911:[1975003073,734778138,4243806635],214636428:[2445595289],1807405624:[1721250024],1621171031:[3987759626],2254336722:[2515109513,1634875225],1028945134:[3342526732,4218914973],1967976161:[3055160366,1916977116],1916977116:[3055160366],3299480353:[_b,3304561284,3512223829,Bb,4252922144,331165859,Sb,Nb,3283111854,xb,2262370178,Lb,Mb,1073191201,900683007,Fb,3495092785,1973544240,843113511,1095909175,979691226,2347447852,Ob,2320036040,3027567501,2979338954,52481810],52481810:[979691226,2347447852,Ob,2320036040,3027567501,2979338954],2635815018:[3313531582],2063403501:[578613899,3001207471,2874132201,1783015770,4037862832],1945004755:[1062813311,1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314,3040386961],3040386961:[1052013943,3508470533,2223149337,707683696,987401354,3132237377,4278956645,3700593921,2058353004,1658829314],855621170:[2454782716,1376911519],2058353004:[3700593921],3027567501:[979691226,2347447852,Ob,2320036040],2391406946:[3512223829]},Xb[1]={618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],130549933:[["Actors",2080292479,1,!0],["IsRelatedWith",3869604511,0,!0],["Relates",3869604511,1,!0]],747523909:[["Contains",1767535486,1,!0]],1767535486:[["IsClassifiedItemIn",1098599126,1,!0],["IsClassifyingItemIn",1098599126,0,!0]],1959218052:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],602808272:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],1154170062:[["IsPointedTo",770865208,1,!0],["IsPointer",770865208,0,!0]],1648886627:[["ValuesReferenced",2692823254,1,!0],["ValueOfComponents",1110488051,0,!0],["IsComponentIn",1110488051,1,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],3452421091:[["ReferenceIntoLibrary",2655187982,4,!0]],1838606355:[["HasRepresentation",2022407955,3,!0],["ClassifiedAs",1847130766,1,!0]],248100487:[["ToMaterialLayerSet",3303938423,0,!1]],3368373690:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],2251480897:[["ClassifiedAs",613356794,0,!0],["RelatesConstraints",347226245,2,!0],["IsRelatedWith",347226245,3,!0],["PropertiesForConstraint",3896028662,0,!0],["Aggregates",1658513725,2,!0],["IsAggregatedIn",1658513725,3,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["PartOfComplex",3021840470,2,!0]],2226359599:[["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],2598011224:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2044713172:[["PartOfComplex",3021840470,2,!0]],2093928680:[["PartOfComplex",3021840470,2,!0]],931644368:[["PartOfComplex",3021840470,2,!0]],3252649465:[["PartOfComplex",3021840470,2,!0]],2405470396:[["PartOfComplex",3021840470,2,!0]],825690147:[["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["MapUsage",2347385850,0,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],3692461612:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],531007025:[["OfTable",985171141,1,!1]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],280115917:[["AnnotatedSurface",1302238472,1,!0]],1742049831:[["AnnotatedSurface",1302238472,1,!0]],2552916305:[["AnnotatedSurface",1302238472,1,!0]],3101149627:[["DocumentedBy",1718945513,0,!0]],1377556343:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2442683028:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],962685235:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3612888222:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2297822566:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],370225590:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3732053477:[["ReferenceToDocument",1154170062,3,!0]],3900360178:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2556980723:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1809719519:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0]],2453401579:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0]],3590301190:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],812098782:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3741457305:[["DocumentedBy",1718945513,0,!0]],1402838566:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],1008929658:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],219451334:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0]],2833995503:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2665983363:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2519244187:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["PartOfComplex",3021840470,2,!0]],2004835150:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],871118103:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],1680319473:[["HasAssociations",1865459582,4,!0]],4166981789:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],2752243245:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],941946838:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],3357820518:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],3650150729:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],110355661:[["PropertyForDependance",148025276,0,!0],["PropertyDependsOn",148025276,1,!0],["PartOfComplex",2542286263,3,!0]],3413951693:[["DocumentedBy",1718945513,0,!0]],3765753017:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1509187699:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2411513650:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],4124623270:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],723233188:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485662743:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1202362311:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],390701378:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],2233826070:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3028897424:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1345879162:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1417489154:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],336235671:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],512836454:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1299126871:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3288037868:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],669184980:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2265737646:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1302238472:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4261334040:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1123145078:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2205249479:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485617015:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2506170314:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],693772133:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],606661476:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["AnnotatedBySymbols",3028897424,3,!0]],4054601972:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],32440307:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2963535650:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1714330368:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],526551008:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3073041342:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],1472233963:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2777663545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],80994333:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],477187591:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4203026998:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3455213021:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],987898635:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1281925730:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0]],3388369263:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3566463478:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],603570806:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0]],103090709:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0]],4194566429:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1451395588:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],3219374653:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0]],2798486643:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],451544542:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],3136571912:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1],["Causes",682877961,10,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],4070609034:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],2028607225:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsActingUpon",1683148259,6,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],1334484129:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],1950629157:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],300633059:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3732776249:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],681481545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],360485395:[["HasAssociations",1865459582,4,!0],["PropertyDefinitionOf",4186316022,5,!0],["DefinesType",1628702193,5,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1704287377:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1962604670:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3272907226:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],807026263:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],647756555:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],263784265:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],814719939:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],200128114:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1251058090:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],4288270099:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2506943328:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],377706215:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],977012517:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1916936684:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],3425660407:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3724593414:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!1],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["OperatesOn",4278684876,6,!0],["IsSuccessorFrom",4122056220,5,!0],["IsPredecessorTo",4122056220,4,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3642467123:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3248260540:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3517283431:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0],["ScheduleTimeControlAssigned",2863920197,7,!1]],4105383287:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ReferencesElements",1245217292,5,!0],["ServicedBySystems",366585022,5,!0],["ContainsElements",3242617779,5,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],652456506:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0],["HasInteractionReqsFrom",4189434867,7,!0],["HasInteractionReqsTo",4189434867,8,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],682877961:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1179482911:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ReferencesElement",3912681535,5,!0],["ConnectedBy",1638771189,4,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1721250024:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],1252848954:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],3987759626:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],2082059205:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1]],734778138:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!1],["Causes",682877961,10,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ResultGroupFor",2515109513,8,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],2315554128:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1637806684:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3593883385:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],728799441:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1898987631:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1213861670:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2470393545:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1967976161:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1916977116:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],231477066:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3299480353:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],52481810:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],395041908:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2611217952:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],843113511:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2188551683:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1]],1163958913:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["Controls",2495723537,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ResourceOf",205026976,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["CoversSpaces",2802773753,5,!0],["Covers",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4147604152:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["IsRelatedFromCallout",3796139169,3,!0],["IsRelatedToCallout",3796139169,2,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!1],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],855621170:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],663422040:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1365060375:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],712377611:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1634875225:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],857184966:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],346874300:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3055160366:[["LayerAssignments",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],1376911519:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],1783015770:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],331165859:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["IsGroupedBy",1307041759,6,!1],["ServicesBuildings",366585022,4,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]],2454782716:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["VoidsElements",1401173127,5,!1]],578613899:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["ObjectTypeOf",781010003,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["AssignedToFlowElement",279856033,4,!0]],3700593921:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasControlElements",279856033,5,!0]],979691226:[["HasAssignments",3939117080,4,!0],["IsDecomposedBy",2551354335,4,!0],["Decomposes",2551354335,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",693640335,4,!0],["ReferencedBy",2857406711,6,!0],["HasStructuralMember",3912681535,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["HasCoverings",886880790,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasPorts",4201705270,5,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0]]},Jb[1]={3630933823:(e,t)=>new cb.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new cb.IfcAddress(e,t[0],t[1],t[2]),639542469:(e,t)=>new cb.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new cb.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),1110488051:(e,t)=>new cb.IfcAppliedValueRelationship(e,t[0],t[1],t[2],t[3],t[4]),130549933:(e,t)=>new cb.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2080292479:(e,t)=>new cb.IfcApprovalActorRelationship(e,t[0],t[1],t[2]),390851274:(e,t)=>new cb.IfcApprovalPropertyRelationship(e,t[0],t[1]),3869604511:(e,t)=>new cb.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),4037036970:(e,t)=>new cb.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new cb.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new cb.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new cb.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new cb.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),622194075:(e,t)=>new cb.IfcCalendarDate(e,t[0],t[1],t[2]),747523909:(e,t)=>new cb.IfcClassification(e,t[0],t[1],t[2],t[3]),1767535486:(e,t)=>new cb.IfcClassificationItem(e,t[0],t[1],t[2]),1098599126:(e,t)=>new cb.IfcClassificationItemRelationship(e,t[0],t[1]),938368621:(e,t)=>new cb.IfcClassificationNotation(e,t[0]),3639012971:(e,t)=>new cb.IfcClassificationNotationFacet(e,t[0]),3264961684:(e,t)=>new cb.IfcColourSpecification(e,t[0]),2859738748:(e,t)=>new cb.IfcConnectionGeometry(e),2614616156:(e,t)=>new cb.IfcConnectionPointGeometry(e,t[0],t[1]),4257277454:(e,t)=>new cb.IfcConnectionPortGeometry(e,t[0],t[1],t[2]),2732653382:(e,t)=>new cb.IfcConnectionSurfaceGeometry(e,t[0],t[1]),1959218052:(e,t)=>new cb.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1658513725:(e,t)=>new cb.IfcConstraintAggregationRelationship(e,t[0],t[1],t[2],t[3],t[4]),613356794:(e,t)=>new cb.IfcConstraintClassificationRelationship(e,t[0],t[1]),347226245:(e,t)=>new cb.IfcConstraintRelationship(e,t[0],t[1],t[2],t[3]),1065062679:(e,t)=>new cb.IfcCoordinatedUniversalTimeOffset(e,t[0],t[1],t[2]),602808272:(e,t)=>new cb.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),539742890:(e,t)=>new cb.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new cb.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new cb.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new cb.IfcCurveStyleFontPattern(e,t[0],t[1]),1072939445:(e,t)=>new cb.IfcDateAndTime(e,t[0],t[1]),1765591967:(e,t)=>new cb.IfcDerivedUnit(e,t[0],t[1],t[2]),1045800335:(e,t)=>new cb.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new cb.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1376555844:(e,t)=>new cb.IfcDocumentElectronicFormat(e,t[0],t[1],t[2]),1154170062:(e,t)=>new cb.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new cb.IfcDocumentInformationRelationship(e,t[0],t[1],t[2]),3796139169:(e,t)=>new cb.IfcDraughtingCalloutRelationship(e,t[0],t[1],t[2],t[3]),1648886627:(e,t)=>new cb.IfcEnvironmentalImpactValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3200245327:(e,t)=>new cb.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new cb.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new cb.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3207319532:(e,t)=>new cb.IfcExternallyDefinedSymbol(e,t[0],t[1],t[2]),3548104201:(e,t)=>new cb.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new cb.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new cb.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new cb.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4]),3452421091:(e,t)=>new cb.IfcLibraryReference(e,t[0],t[1],t[2]),4162380809:(e,t)=>new cb.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new cb.IfcLightIntensityDistribution(e,t[0],t[1]),30780891:(e,t)=>new cb.IfcLocalTime(e,t[0],t[1],t[2],t[3],t[4]),1838606355:(e,t)=>new cb.IfcMaterial(e,t[0]),1847130766:(e,t)=>new cb.IfcMaterialClassificationRelationship(e,t[0],t[1]),248100487:(e,t)=>new cb.IfcMaterialLayer(e,t[0],t[1],t[2]),3303938423:(e,t)=>new cb.IfcMaterialLayerSet(e,t[0],t[1]),1303795690:(e,t)=>new cb.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3]),2199411900:(e,t)=>new cb.IfcMaterialList(e,t[0]),3265635763:(e,t)=>new cb.IfcMaterialProperties(e,t[0]),2597039031:(e,t)=>new cb.IfcMeasureWithUnit(e,t[0],t[1]),4256014907:(e,t)=>new cb.IfcMechanicalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),677618848:(e,t)=>new cb.IfcMechanicalSteelMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3368373690:(e,t)=>new cb.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2706619895:(e,t)=>new cb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new cb.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new cb.IfcObjectPlacement(e),2251480897:(e,t)=>new cb.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1227763645:(e,t)=>new cb.IfcOpticalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4251960020:(e,t)=>new cb.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1411181986:(e,t)=>new cb.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1207048766:(e,t)=>new cb.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new cb.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new cb.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new cb.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new cb.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new cb.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3727388367:(e,t)=>new cb.IfcPreDefinedItem(e,t[0]),990879717:(e,t)=>new cb.IfcPreDefinedSymbol(e,t[0]),3213052703:(e,t)=>new cb.IfcPreDefinedTerminatorSymbol(e,t[0]),1775413392:(e,t)=>new cb.IfcPreDefinedTextFont(e,t[0]),2022622350:(e,t)=>new cb.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new cb.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new cb.IfcPresentationStyle(e,t[0]),2417041796:(e,t)=>new cb.IfcPresentationStyleAssignment(e,t[0]),2095639259:(e,t)=>new cb.IfcProductRepresentation(e,t[0],t[1],t[2]),2267347899:(e,t)=>new cb.IfcProductsOfCombustionProperties(e,t[0],t[1],t[2],t[3],t[4]),3958567839:(e,t)=>new cb.IfcProfileDef(e,t[0],t[1]),2802850158:(e,t)=>new cb.IfcProfileProperties(e,t[0],t[1]),2598011224:(e,t)=>new cb.IfcProperty(e,t[0],t[1]),3896028662:(e,t)=>new cb.IfcPropertyConstraintRelationship(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new cb.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3710013099:(e,t)=>new cb.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new cb.IfcQuantityArea(e,t[0],t[1],t[2],t[3]),2093928680:(e,t)=>new cb.IfcQuantityCount(e,t[0],t[1],t[2],t[3]),931644368:(e,t)=>new cb.IfcQuantityLength(e,t[0],t[1],t[2],t[3]),3252649465:(e,t)=>new cb.IfcQuantityTime(e,t[0],t[1],t[2],t[3]),2405470396:(e,t)=>new cb.IfcQuantityVolume(e,t[0],t[1],t[2],t[3]),825690147:(e,t)=>new cb.IfcQuantityWeight(e,t[0],t[1],t[2],t[3]),2692823254:(e,t)=>new cb.IfcReferencesValueDocument(e,t[0],t[1],t[2],t[3]),1580146022:(e,t)=>new cb.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1222501353:(e,t)=>new cb.IfcRelaxation(e,t[0],t[1]),1076942058:(e,t)=>new cb.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new cb.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new cb.IfcRepresentationItem(e),1660063152:(e,t)=>new cb.IfcRepresentationMap(e,t[0],t[1]),3679540991:(e,t)=>new cb.IfcRibPlateProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2341007311:(e,t)=>new cb.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new cb.IfcSIUnit(e,t[0],t[1],t[2]),2042790032:(e,t)=>new cb.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new cb.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),867548509:(e,t)=>new cb.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new cb.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new cb.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),3692461612:(e,t)=>new cb.IfcSimpleProperty(e,t[0],t[1]),2273995522:(e,t)=>new cb.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new cb.IfcStructuralLoad(e,t[0]),2525727697:(e,t)=>new cb.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new cb.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new cb.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new cb.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new cb.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new cb.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new cb.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new cb.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new cb.IfcSurfaceStyleShading(e,t[0]),1351298697:(e,t)=>new cb.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new cb.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3]),1290481447:(e,t)=>new cb.IfcSymbolStyle(e,t[0],t[1]),985171141:(e,t)=>new cb.IfcTable(e,t[0],t[1]),531007025:(e,t)=>new cb.IfcTableRow(e,t[0],t[1]),912023232:(e,t)=>new cb.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1447204868:(e,t)=>new cb.IfcTextStyle(e,t[0],t[1],t[2],t[3]),1983826977:(e,t)=>new cb.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2636378356:(e,t)=>new cb.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new cb.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1484833681:(e,t)=>new cb.IfcTextStyleWithBoxCharacteristics(e,t[0],t[1],t[2],t[3],t[4]),280115917:(e,t)=>new cb.IfcTextureCoordinate(e),1742049831:(e,t)=>new cb.IfcTextureCoordinateGenerator(e,t[0],t[1]),2552916305:(e,t)=>new cb.IfcTextureMap(e,t[0]),1210645708:(e,t)=>new cb.IfcTextureVertex(e,t[0]),3317419933:(e,t)=>new cb.IfcThermalMaterialProperties(e,t[0],t[1],t[2],t[3],t[4]),3101149627:(e,t)=>new cb.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1718945513:(e,t)=>new cb.IfcTimeSeriesReferenceRelationship(e,t[0],t[1]),581633288:(e,t)=>new cb.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new cb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new cb.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new cb.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new cb.IfcVertex(e),3304826586:(e,t)=>new cb.IfcVertexBasedTextureMap(e,t[0],t[1]),1907098498:(e,t)=>new cb.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new cb.IfcVirtualGridIntersection(e,t[0],t[1]),1065908215:(e,t)=>new cb.IfcWaterProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2442683028:(e,t)=>new cb.IfcAnnotationOccurrence(e,t[0],t[1],t[2]),962685235:(e,t)=>new cb.IfcAnnotationSurfaceOccurrence(e,t[0],t[1],t[2]),3612888222:(e,t)=>new cb.IfcAnnotationSymbolOccurrence(e,t[0],t[1],t[2]),2297822566:(e,t)=>new cb.IfcAnnotationTextOccurrence(e,t[0],t[1],t[2]),3798115385:(e,t)=>new cb.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new cb.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new cb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new cb.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3150382593:(e,t)=>new cb.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),647927063:(e,t)=>new cb.IfcClassificationReference(e,t[0],t[1],t[2],t[3]),776857604:(e,t)=>new cb.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new cb.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),1485152156:(e,t)=>new cb.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new cb.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new cb.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new cb.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new cb.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new cb.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),3800577675:(e,t)=>new cb.IfcCurveStyle(e,t[0],t[1],t[2],t[3]),3632507154:(e,t)=>new cb.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),2273265877:(e,t)=>new cb.IfcDimensionCalloutRelationship(e,t[0],t[1],t[2],t[3]),1694125774:(e,t)=>new cb.IfcDimensionPair(e,t[0],t[1],t[2],t[3]),3732053477:(e,t)=>new cb.IfcDocumentReference(e,t[0],t[1],t[2]),4170525392:(e,t)=>new cb.IfcDraughtingPreDefinedTextFont(e,t[0]),3900360178:(e,t)=>new cb.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new cb.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),1860660968:(e,t)=>new cb.IfcExtendedMaterialProperties(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new cb.IfcFace(e,t[0]),1809719519:(e,t)=>new cb.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new cb.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new cb.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new cb.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new cb.IfcFillAreaStyle(e,t[0],t[1]),3857492461:(e,t)=>new cb.IfcFuelProperties(e,t[0],t[1],t[2],t[3],t[4]),803998398:(e,t)=>new cb.IfcGeneralMaterialProperties(e,t[0],t[1],t[2],t[3]),1446786286:(e,t)=>new cb.IfcGeneralProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3448662350:(e,t)=>new cb.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new cb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new cb.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),3590301190:(e,t)=>new cb.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new cb.IfcGridPlacement(e,t[0],t[1]),812098782:(e,t)=>new cb.IfcHalfSpaceSolid(e,t[0],t[1]),2445078500:(e,t)=>new cb.IfcHygroscopicMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3905492369:(e,t)=>new cb.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4]),3741457305:(e,t)=>new cb.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1402838566:(e,t)=>new cb.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new cb.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new cb.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new cb.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new cb.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new cb.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2624227202:(e,t)=>new cb.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new cb.IfcLoop(e),2347385850:(e,t)=>new cb.IfcMappedItem(e,t[0],t[1]),2022407955:(e,t)=>new cb.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1430189142:(e,t)=>new cb.IfcMechanicalConcreteMaterialProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),219451334:(e,t)=>new cb.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),2833995503:(e,t)=>new cb.IfcOneDirectionRepeatFactor(e,t[0]),2665983363:(e,t)=>new cb.IfcOpenShell(e,t[0]),1029017970:(e,t)=>new cb.IfcOrientedEdge(e,t[0],t[1]),2529465313:(e,t)=>new cb.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new cb.IfcPath(e,t[0]),3021840470:(e,t)=>new cb.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new cb.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2004835150:(e,t)=>new cb.IfcPlacement(e,t[0]),1663979128:(e,t)=>new cb.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new cb.IfcPoint(e),4022376103:(e,t)=>new cb.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new cb.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new cb.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new cb.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),759155922:(e,t)=>new cb.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new cb.IfcPreDefinedCurveFont(e,t[0]),433424934:(e,t)=>new cb.IfcPreDefinedDimensionSymbol(e,t[0]),179317114:(e,t)=>new cb.IfcPreDefinedPointMarkerSymbol(e,t[0]),673634403:(e,t)=>new cb.IfcProductDefinitionShape(e,t[0],t[1],t[2]),871118103:(e,t)=>new cb.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4]),1680319473:(e,t)=>new cb.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),4166981789:(e,t)=>new cb.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new cb.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new cb.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),3357820518:(e,t)=>new cb.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),3650150729:(e,t)=>new cb.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new cb.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3615266464:(e,t)=>new cb.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new cb.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3765753017:(e,t)=>new cb.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new cb.IfcRelationship(e,t[0],t[1],t[2],t[3]),2778083089:(e,t)=>new cb.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new cb.IfcSectionedSpine(e,t[0],t[1],t[2]),2411513650:(e,t)=>new cb.IfcServiceLifeFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4124623270:(e,t)=>new cb.IfcShellBasedSurfaceModel(e,t[0]),2609359061:(e,t)=>new cb.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new cb.IfcSolidModel(e),2485662743:(e,t)=>new cb.IfcSoundProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1202362311:(e,t)=>new cb.IfcSoundValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),390701378:(e,t)=>new cb.IfcSpaceThermalLoadProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1595516126:(e,t)=>new cb.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new cb.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new cb.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new cb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new cb.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new cb.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3843319758:(e,t)=>new cb.IfcStructuralProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22]),3653947884:(e,t)=>new cb.IfcStructuralSteelProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26]),2233826070:(e,t)=>new cb.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new cb.IfcSurface(e),1878645084:(e,t)=>new cb.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new cb.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new cb.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),230924584:(e,t)=>new cb.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new cb.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3028897424:(e,t)=>new cb.IfcTerminatorSymbol(e,t[0],t[1],t[2],t[3]),4282788508:(e,t)=>new cb.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new cb.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),2715220739:(e,t)=>new cb.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1345879162:(e,t)=>new cb.IfcTwoDirectionRepeatFactor(e,t[0],t[1]),1628702193:(e,t)=>new cb.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),2347495698:(e,t)=>new cb.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),427810014:(e,t)=>new cb.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1417489154:(e,t)=>new cb.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new cb.IfcVertexLoop(e,t[0]),336235671:(e,t)=>new cb.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),512836454:(e,t)=>new cb.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1299126871:(e,t)=>new cb.IfcWindowStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2543172580:(e,t)=>new cb.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3288037868:(e,t)=>new cb.IfcAnnotationCurveOccurrence(e,t[0],t[1],t[2]),669184980:(e,t)=>new cb.IfcAnnotationFillArea(e,t[0],t[1]),2265737646:(e,t)=>new cb.IfcAnnotationFillAreaOccurrence(e,t[0],t[1],t[2],t[3],t[4]),1302238472:(e,t)=>new cb.IfcAnnotationSurface(e,t[0],t[1]),4261334040:(e,t)=>new cb.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new cb.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new cb.IfcAxis2Placement3D(e,t[0],t[1],t[2]),2736907675:(e,t)=>new cb.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new cb.IfcBoundedSurface(e),2581212453:(e,t)=>new cb.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new cb.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new cb.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1123145078:(e,t)=>new cb.IfcCartesianPoint(e,t[0]),59481748:(e,t)=>new cb.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new cb.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new cb.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new cb.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new cb.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new cb.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new cb.IfcClosedShell(e,t[0]),2485617015:(e,t)=>new cb.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),4133800736:(e,t)=>new cb.IfcCraneRailAShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),194851669:(e,t)=>new cb.IfcCraneRailFShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new cb.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new cb.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new cb.IfcCurve(e),2827736869:(e,t)=>new cb.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),693772133:(e,t)=>new cb.IfcDefinedSymbol(e,t[0],t[1]),606661476:(e,t)=>new cb.IfcDimensionCurve(e,t[0],t[1],t[2]),4054601972:(e,t)=>new cb.IfcDimensionCurveTerminator(e,t[0],t[1],t[2],t[3],t[4]),32440307:(e,t)=>new cb.IfcDirection(e,t[0]),2963535650:(e,t)=>new cb.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),1714330368:(e,t)=>new cb.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),526551008:(e,t)=>new cb.IfcDoorStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),3073041342:(e,t)=>new cb.IfcDraughtingCallout(e,t[0]),445594917:(e,t)=>new cb.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new cb.IfcDraughtingPreDefinedCurveFont(e,t[0]),1472233963:(e,t)=>new cb.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new cb.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new cb.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new cb.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new cb.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),80994333:(e,t)=>new cb.IfcEnergyProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),477187591:(e,t)=>new cb.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2047409740:(e,t)=>new cb.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new cb.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),4203026998:(e,t)=>new cb.IfcFillAreaStyleTileSymbolWithStyle(e,t[0]),315944413:(e,t)=>new cb.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),3455213021:(e,t)=>new cb.IfcFluidFlowProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18]),4238390223:(e,t)=>new cb.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new cb.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new cb.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new cb.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),572779678:(e,t)=>new cb.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1281925730:(e,t)=>new cb.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new cb.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new cb.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),3388369263:(e,t)=>new cb.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new cb.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),3566463478:(e,t)=>new cb.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603570806:(e,t)=>new cb.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new cb.IfcPlane(e,t[0]),2945172077:(e,t)=>new cb.IfcProcess(e,t[0],t[1],t[2],t[3],t[4]),4208778838:(e,t)=>new cb.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new cb.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4194566429:(e,t)=>new cb.IfcProjectionCurve(e,t[0],t[1],t[2]),1451395588:(e,t)=>new cb.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),3219374653:(e,t)=>new cb.IfcProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2770003689:(e,t)=>new cb.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new cb.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new cb.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3939117080:(e,t)=>new cb.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new cb.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new cb.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new cb.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4278684876:(e,t)=>new cb.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new cb.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3372526763:(e,t)=>new cb.IfcRelAssignsToProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new cb.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new cb.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),1327628568:(e,t)=>new cb.IfcRelAssociatesAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4095574036:(e,t)=>new cb.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new cb.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new cb.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new cb.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new cb.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new cb.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),2851387026:(e,t)=>new cb.IfcRelAssociatesProfileProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),826625072:(e,t)=>new cb.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new cb.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new cb.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new cb.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new cb.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new cb.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),3912681535:(e,t)=>new cb.IfcRelConnectsStructuralElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new cb.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new cb.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new cb.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new cb.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new cb.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new cb.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new cb.IfcRelDecomposes(e,t[0],t[1],t[2],t[3],t[4],t[5]),693640335:(e,t)=>new cb.IfcRelDefines(e,t[0],t[1],t[2],t[3],t[4]),4186316022:(e,t)=>new cb.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new cb.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new cb.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new cb.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),4189434867:(e,t)=>new cb.IfcRelInteractionRequirements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3268803585:(e,t)=>new cb.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),2051452291:(e,t)=>new cb.IfcRelOccupiesSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),202636808:(e,t)=>new cb.IfcRelOverridesProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),750771296:(e,t)=>new cb.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new cb.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),1058617721:(e,t)=>new cb.IfcRelSchedulesCostItems(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4122056220:(e,t)=>new cb.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),366585022:(e,t)=>new cb.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new cb.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1401173127:(e,t)=>new cb.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),2914609552:(e,t)=>new cb.IfcResource(e,t[0],t[1],t[2],t[3],t[4]),1856042241:(e,t)=>new cb.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),4158566097:(e,t)=>new cb.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new cb.IfcRightCircularCylinder(e,t[0],t[1],t[2]),2706606064:(e,t)=>new cb.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new cb.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),451544542:(e,t)=>new cb.IfcSphere(e,t[0],t[1]),3544373492:(e,t)=>new cb.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new cb.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new cb.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new cb.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new cb.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new cb.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4070609034:(e,t)=>new cb.IfcStructuredDimensionCallout(e,t[0]),2028607225:(e,t)=>new cb.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new cb.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new cb.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new cb.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3473067441:(e,t)=>new cb.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2097647324:(e,t)=>new cb.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2296667514:(e,t)=>new cb.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1674181508:(e,t)=>new cb.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3207858831:(e,t)=>new cb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new cb.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new cb.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new cb.IfcBoundedCurve(e),4031249490:(e,t)=>new cb.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1950629157:(e,t)=>new cb.IfcBuildingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3124254112:(e,t)=>new cb.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new cb.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),300633059:(e,t)=>new cb.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3732776249:(e,t)=>new cb.IfcCompositeCurve(e,t[0],t[1]),2510884976:(e,t)=>new cb.IfcConic(e,t[0]),2559216714:(e,t)=>new cb.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3293443760:(e,t)=>new cb.IfcControl(e,t[0],t[1],t[2],t[3],t[4]),3895139033:(e,t)=>new cb.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4]),1419761937:(e,t)=>new cb.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),1916426348:(e,t)=>new cb.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new cb.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1457835157:(e,t)=>new cb.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),681481545:(e,t)=>new cb.IfcDimensionCurveDirectedCallout(e,t[0]),3256556792:(e,t)=>new cb.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new cb.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),360485395:(e,t)=>new cb.IfcElectricalBaseProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1758889154:(e,t)=>new cb.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new cb.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new cb.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new cb.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new cb.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new cb.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1962604670:(e,t)=>new cb.IfcEquipmentElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3272907226:(e,t)=>new cb.IfcEquipmentStandard(e,t[0],t[1],t[2],t[3],t[4]),3174744832:(e,t)=>new cb.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new cb.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),807026263:(e,t)=>new cb.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new cb.IfcFacetedBrepWithVoids(e,t[0],t[1]),647756555:(e,t)=>new cb.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2489546625:(e,t)=>new cb.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2827207264:(e,t)=>new cb.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new cb.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new cb.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new cb.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new cb.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new cb.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new cb.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new cb.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new cb.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new cb.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new cb.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),263784265:(e,t)=>new cb.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),814719939:(e,t)=>new cb.IfcFurnitureStandard(e,t[0],t[1],t[2],t[3],t[4]),200128114:(e,t)=>new cb.IfcGasTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3009204131:(e,t)=>new cb.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2706460486:(e,t)=>new cb.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new cb.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new cb.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391368822:(e,t)=>new cb.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new cb.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new cb.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1051575348:(e,t)=>new cb.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new cb.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2506943328:(e,t)=>new cb.IfcLinearDimension(e,t[0]),377706215:(e,t)=>new cb.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2108223431:(e,t)=>new cb.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3181161470:(e,t)=>new cb.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new cb.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916936684:(e,t)=>new cb.IfcMove(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4143007308:(e,t)=>new cb.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new cb.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3425660407:(e,t)=>new cb.IfcOrderAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2837617999:(e,t)=>new cb.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new cb.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5]),3327091369:(e,t)=>new cb.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5]),804291784:(e,t)=>new cb.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new cb.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new cb.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3724593414:(e,t)=>new cb.IfcPolyline(e,t[0]),3740093272:(e,t)=>new cb.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new cb.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new cb.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3642467123:(e,t)=>new cb.IfcProjectOrderRecord(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3651124850:(e,t)=>new cb.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1842657554:(e,t)=>new cb.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new cb.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3248260540:(e,t)=>new cb.IfcRadiusDimension(e,t[0]),2893384427:(e,t)=>new cb.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2324767716:(e,t)=>new cb.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),160246688:(e,t)=>new cb.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),2863920197:(e,t)=>new cb.IfcRelAssignsTasks(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1768891740:(e,t)=>new cb.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3517283431:(e,t)=>new cb.IfcScheduleTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22]),4105383287:(e,t)=>new cb.IfcServiceLife(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4097777520:(e,t)=>new cb.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new cb.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new cb.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new cb.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),652456506:(e,t)=>new cb.IfcSpaceProgram(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new cb.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3112655638:(e,t)=>new cb.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new cb.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new cb.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1179482911:(e,t)=>new cb.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4243806635:(e,t)=>new cb.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),214636428:(e,t)=>new cb.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2445595289:(e,t)=>new cb.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1807405624:(e,t)=>new cb.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1721250024:(e,t)=>new cb.IfcStructuralLinearActionVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1252848954:(e,t)=>new cb.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1621171031:(e,t)=>new cb.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),3987759626:(e,t)=>new cb.IfcStructuralPlanarActionVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2082059205:(e,t)=>new cb.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),734778138:(e,t)=>new cb.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1235345126:(e,t)=>new cb.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new cb.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1975003073:(e,t)=>new cb.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new cb.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2315554128:(e,t)=>new cb.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new cb.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),5716631:(e,t)=>new cb.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1637806684:(e,t)=>new cb.IfcTimeSeriesSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1692211062:(e,t)=>new cb.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1620046519:(e,t)=>new cb.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3593883385:(e,t)=>new cb.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new cb.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new cb.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new cb.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new cb.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1898987631:(e,t)=>new cb.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new cb.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1028945134:(e,t)=>new cb.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4218914973:(e,t)=>new cb.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),3342526732:(e,t)=>new cb.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),1033361043:(e,t)=>new cb.IfcZone(e,t[0],t[1],t[2],t[3],t[4]),1213861670:(e,t)=>new cb.Ifc2DCompositeCurve(e,t[0],t[1]),3821786052:(e,t)=>new cb.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5]),1411407467:(e,t)=>new cb.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new cb.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new cb.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2470393545:(e,t)=>new cb.IfcAngularDimension(e,t[0]),3460190687:(e,t)=>new cb.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1967976161:(e,t)=>new cb.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),819618141:(e,t)=>new cb.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916977116:(e,t)=>new cb.IfcBezierCurve(e,t[0],t[1],t[2],t[3],t[4]),231477066:(e,t)=>new cb.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3299480353:(e,t)=>new cb.IfcBuildingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),52481810:(e,t)=>new cb.IfcBuildingElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2979338954:(e,t)=>new cb.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1095909175:(e,t)=>new cb.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1909888760:(e,t)=>new cb.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new cb.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new cb.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new cb.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new cb.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2611217952:(e,t)=>new cb.IfcCircle(e,t[0],t[1]),2301859152:(e,t)=>new cb.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new cb.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3850581409:(e,t)=>new cb.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new cb.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188551683:(e,t)=>new cb.IfcCondition(e,t[0],t[1],t[2],t[3],t[4]),1163958913:(e,t)=>new cb.IfcConditionCriterion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3898045240:(e,t)=>new cb.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1060000209:(e,t)=>new cb.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new cb.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),335055490:(e,t)=>new cb.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new cb.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1973544240:(e,t)=>new cb.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new cb.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3961806047:(e,t)=>new cb.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4147604152:(e,t)=>new cb.IfcDiameterDimension(e,t[0]),1335981549:(e,t)=>new cb.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2635815018:(e,t)=>new cb.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1599208980:(e,t)=>new cb.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new cb.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new cb.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new cb.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new cb.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),395920057:(e,t)=>new cb.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),869906466:(e,t)=>new cb.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new cb.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new cb.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),855621170:(e,t)=>new cb.IfcEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),663422040:(e,t)=>new cb.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new cb.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new cb.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1365060375:(e,t)=>new cb.IfcElectricHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new cb.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new cb.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634875225:(e,t)=>new cb.IfcElectricalCircuit(e,t[0],t[1],t[2],t[3],t[4]),857184966:(e,t)=>new cb.IfcElectricalElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1658829314:(e,t)=>new cb.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),346874300:(e,t)=>new cb.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new cb.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new cb.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new cb.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new cb.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new cb.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3132237377:(e,t)=>new cb.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new cb.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new cb.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new cb.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new cb.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new cb.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new cb.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1687234759:(e,t)=>new cb.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3171933400:(e,t)=>new cb.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2262370178:(e,t)=>new cb.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new cb.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new cb.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3055160366:(e,t)=>new cb.IfcRationalBezierCurve(e,t[0],t[1],t[2],t[3],t[4],t[5]),3027567501:(e,t)=>new cb.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new cb.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2016517767:(e,t)=>new cb.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1376911519:(e,t)=>new cb.IfcRoundedEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1783015770:(e,t)=>new cb.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1529196076:(e,t)=>new cb.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new cb.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new cb.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2515109513:(e,t)=>new cb.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3824725483:(e,t)=>new cb.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new cb.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new cb.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391406946:(e,t)=>new cb.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3512223829:(e,t)=>new cb.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3304561284:(e,t)=>new cb.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2874132201:(e,t)=>new cb.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3001207471:(e,t)=>new cb.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),753842376:(e,t)=>new cb.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2454782716:(e,t)=>new cb.IfcChamferEdgeFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),578613899:(e,t)=>new cb.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1052013943:(e,t)=>new cb.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1062813311:(e,t)=>new cb.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3700593921:(e,t)=>new cb.IfcElectricDistributionPoint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),979691226:(e,t)=>new cb.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13])},Zb[1]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate],1110488051:e=>[e.ComponentOfTotal,e.Components,e.ArithmeticOperator,e.Name,e.Description],130549933:e=>[e.Description,e.ApprovalDateTime,e.ApprovalStatus,e.ApprovalLevel,e.ApprovalQualifier,e.Name,e.Identifier],2080292479:e=>[e.Actor,e.Approval,e.Role],390851274:e=>[e.ApprovedProperties,e.Approval],3869604511:e=>[e.RelatedApproval,e.RelatingApproval,e.Description,e.Name],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.LinearStiffnessByLengthX,e.LinearStiffnessByLengthY,e.LinearStiffnessByLengthZ,e.RotationalStiffnessByLengthX,e.RotationalStiffnessByLengthY,e.RotationalStiffnessByLengthZ],3367102660:e=>[e.Name,e.LinearStiffnessByAreaX,e.LinearStiffnessByAreaY,e.LinearStiffnessByAreaZ],1387855156:e=>[e.Name,e.LinearStiffnessX,e.LinearStiffnessY,e.LinearStiffnessZ,e.RotationalStiffnessX,e.RotationalStiffnessY,e.RotationalStiffnessZ],2069777674:e=>[e.Name,e.LinearStiffnessX,e.LinearStiffnessY,e.LinearStiffnessZ,e.RotationalStiffnessX,e.RotationalStiffnessY,e.RotationalStiffnessZ,e.WarpingStiffness],622194075:e=>[e.DayComponent,e.MonthComponent,e.YearComponent],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name],1767535486:e=>[e.Notation,e.ItemOf,e.Title],1098599126:e=>[e.RelatingItem,e.RelatedItems],938368621:e=>[e.NotationFacets],3639012971:e=>[e.NotationValue],3264961684:e=>[e.Name],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],4257277454:e=>[e.LocationAtRelatingElement,e.LocationAtRelatedElement,e.ProfileOfPort],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1658513725:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedConstraints,e.LogicalAggregator],613356794:e=>[e.ClassifiedConstraint,e.RelatedClassifications],347226245:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedConstraints],1065062679:e=>[e.HourOffset,e.MinuteOffset,e.Sense],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.CostType,e.Condition],539742890:e=>[e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],1072939445:e=>[e.DateComponent,e.TimeComponent],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],1376555844:e=>[e.FileExtension,e.MimeContentType,e.MimeSubtype],1154170062:e=>[e.DocumentId,e.Name,e.Description,e.DocumentReferences,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3796139169:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],1648886627:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.ImpactType,e.Category,e.UserDefinedCategory],3200245327:e=>[e.Location,e.ItemReference,e.Name],2242383968:e=>[e.Location,e.ItemReference,e.Name],1040185647:e=>[e.Location,e.ItemReference,e.Name],3207319532:e=>[e.Location,e.ItemReference,e.Name],3548104201:e=>[e.Location,e.ItemReference,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.LibraryReference],3452421091:e=>[e.Location,e.ItemReference,e.Name],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],30780891:e=>[e.HourComponent,e.MinuteComponent,e.SecondComponent,e.Zone,e.DaylightSavingOffset],1838606355:e=>[e.Name],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString()]},3303938423:e=>[e.MaterialLayers,e.LayerSetName],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine],2199411900:e=>[e.Materials],3265635763:e=>[e.Material],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],4256014907:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient],677618848:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient,e.YieldStress,e.UltimateStress,e.UltimateStrain,e.HardeningModule,e.ProportionalStress,e.PlasticStrain,e.Relaxations],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.ResultValues,e.ObjectiveQualifier,e.UserDefinedQualifier],1227763645:e=>[e.Material,e.VisibleTransmittance,e.SolarTransmittance,e.ThermalIrTransmittance,e.ThermalIrEmissivityBack,e.ThermalIrEmissivityFront,e.VisibleReflectanceBack,e.VisibleReflectanceFront,e.SolarReflectanceFront,e.SolarReflectanceBack],4251960020:e=>[e.Id,e.Name,e.Description,e.Roles,e.Addresses],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Id,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],3727388367:e=>[e.Name],990879717:e=>[e.Name],3213052703:e=>[e.Name],1775413392:e=>[e.Name],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier,e.LayerOn,e.LayerFrozen,e.LayerBlocked,e.LayerStyles],3119450353:e=>[e.Name],2417041796:e=>[e.Styles],2095639259:e=>[e.Name,e.Description,e.Representations],2267347899:e=>[e.Material,e.SpecificHeatCapacity,e.N20Content,e.COContent,e.CO2Content],3958567839:e=>[e.ProfileType,e.ProfileName],2802850158:e=>[e.ProfileName,e.ProfileDefinition],2598011224:e=>[e.Name,e.Description],3896028662:e=>[e.RelatingConstraint,e.RelatedProperties,e.Name,e.Description],148025276:e=>[e.DependingProperty,e.DependantProperty,e.Name,e.Description,e.Expression],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue],2692823254:e=>[e.ReferencedDocument,e.ReferencingValues,e.Name,e.Description],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],1222501353:e=>[e.RelaxationValue,e.InitialStress],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],3679540991:e=>[e.ProfileName,e.ProfileDefinition,e.Thickness,e.RibHeight,e.RibWidth,e.RibSpacing,e.Direction],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],867548509:e=>[e.ShapeRepresentations,e.Name,e.Description,e.ProductDefinitional,e.PartOfProductDefinitionShape],3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3692461612:e=>[e.Name,e.Description],2273995522:e=>[e.Name],2162789131:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaT_Constant,e.DeltaT_Y,e.DeltaT_Z],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour],1351298697:e=>[e.Textures],626085974:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform],1290481447:e=>[e.Name,sD(e.StyleOfSymbol)],985171141:e=>[e.Name,e.Rows],531007025:e=>[e.RowCells.map((e=>sD(e))),e.IsHeading],912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL],1447204868:e=>[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],1484833681:e=>[e.BoxHeight,e.BoxWidth,e.BoxSlantAngle,e.BoxRotateAngle,e.CharacterSpacing?sD(e.CharacterSpacing):null],280115917:e=>[],1742049831:e=>[e.Mode,e.Parameter.map((e=>sD(e)))],2552916305:e=>[e.TextureMaps],1210645708:e=>[e.Coordinates],3317419933:e=>[e.Material,e.SpecificHeatCapacity,e.BoilingPoint,e.FreezingPoint,e.ThermalConductivity],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],1718945513:e=>[e.ReferencedTimeSeries,e.TimeSeriesReferences],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],3304826586:e=>[e.TextureVertices,e.TexturePoints],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1065908215:e=>[e.Material,e.IsPotable,e.Hardness,e.AlkalinityConcentration,e.AcidityConcentration,e.ImpuritiesContent,e.PHLevel,e.DissolvedSolidsContent],2442683028:e=>[e.Item,e.Styles,e.Name],962685235:e=>[e.Item,e.Styles,e.Name],3612888222:e=>[e.Item,e.Styles,e.Name],2297822566:e=>[e.Item,e.Styles,e.Name],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.RasterFormat,e.RasterCode],3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],647927063:e=>[e.Location,e.ItemReference,e.Name,e.ReferencedSource],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Description,e.UsageName,e.HasProperties],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],3800577675:e=>[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],2273265877:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],1694125774:e=>[e.Name,e.Description,e.RelatingDraughtingCallout,e.RelatedDraughtingCallout],3732053477:e=>[e.Location,e.ItemReference,e.Name],4170525392:e=>[e.Name],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,e.SameSense],1860660968:e=>[e.Material,e.ExtendedProperties,e.Description,e.Name],2556980723:e=>[e.Bounds],1809719519:e=>[e.Bound,e.Orientation],803316827:e=>[e.Bound,e.Orientation],3008276851:e=>[e.Bounds,e.FaceSurface,e.SameSense],4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>[e.Name,e.FillStyles],3857492461:e=>[e.Material,e.CombustionTemperature,e.CarbonContent,e.LowerHeatingValue,e.HigherHeatingValue],803998398:e=>[e.Material,e.MolecularWeight,e.Porosity,e.MassDensity],1446786286:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea],3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementLocation,e.PlacementRefDirection],812098782:e=>[e.BaseSurface,e.AgreementFlag],2445078500:e=>[e.Material,e.UpperVaporResistanceFactor,e.LowerVaporResistanceFactor,e.IsothermalMoistureCapacity,e.VaporPermeability,e.MoistureDiffusivity],3905492369:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.UrlReference],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1430189142:e=>[e.Material,e.DynamicViscosity,e.YoungModulus,e.ShearModulus,e.PoissonRatio,e.ThermalExpansionCoefficient,e.CompressiveStrength,e.MaxAggregateSize,e.AdmixturesDescription,e.Workability,e.ProtectivePoreRatio,e.WaterImpermeability],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2833995503:e=>[e.RepeatFactor],2665983363:e=>[e.CfsFaces],1029017970:e=>[e.EdgeStart,e.EdgeEnd,e.EdgeElement,e.Orientation],2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>[e.RepeatS,e.RepeatT,e.TextureType,e.TextureTransform,e.Width,e.Height,e.ColourComponents,e.Pixel],2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>[e.BaseSurface,e.AgreementFlag,e.Position,e.PolygonalBoundary],759155922:e=>[e.Name],2559016684:e=>[e.Name],433424934:e=>[e.Name],179317114:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],871118103:e=>[e.Name,e.Description,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],4166981789:e=>[e.Name,e.Description,e.EnumerationValues.map((e=>sD(e))),e.EnumerationReference],2752243245:e=>[e.Name,e.Description,e.ListValues.map((e=>sD(e))),e.Unit],941946838:e=>[e.Name,e.Description,e.UsageName,e.PropertyReference],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3650150729:e=>[e.Name,e.Description,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Description,e.DefiningValues.map((e=>sD(e))),e.DefinedValues.map((e=>sD(e))),e.Expression,e.DefiningUnit,e.DefinedUnit],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],2411513650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PredefinedType,e.UpperValue?sD(e.UpperValue):null,sD(e.MostUsedValue),e.LowerValue?sD(e.LowerValue):null],4124623270:e=>[e.SbsmBoundary],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],2485662743:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,null==(t=e.IsAttenuating)?void 0:t.toString(),e.SoundScale,e.SoundValues]},1202362311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.SoundLevelTimeSeries,e.Frequency,e.SoundLevelSingleValue?sD(e.SoundLevelSingleValue):null],390701378:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableValueRatio,e.ThermalLoadSource,e.PropertySource,e.SourceDescription,e.MaximumValue,e.MinimumValue,e.ThermalLoadTimeSeriesValues,e.UserDefinedThermalLoadSource,e.UserDefinedPropertySource,e.ThermalLoadType],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],3843319758:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea,e.TorsionalConstantX,e.MomentOfInertiaYZ,e.MomentOfInertiaY,e.MomentOfInertiaZ,e.WarpingConstant,e.ShearCentreZ,e.ShearCentreY,e.ShearDeformationAreaZ,e.ShearDeformationAreaY,e.MaximumSectionModulusY,e.MinimumSectionModulusY,e.MaximumSectionModulusZ,e.MinimumSectionModulusZ,e.TorsionalSectionModulus,e.CentreOfGravityInX,e.CentreOfGravityInY],3653947884:e=>[e.ProfileName,e.ProfileDefinition,e.PhysicalWeight,e.Perimeter,e.MinimumPlateThickness,e.MaximumPlateThickness,e.CrossSectionArea,e.TorsionalConstantX,e.MomentOfInertiaYZ,e.MomentOfInertiaY,e.MomentOfInertiaZ,e.WarpingConstant,e.ShearCentreZ,e.ShearCentreY,e.ShearDeformationAreaZ,e.ShearDeformationAreaY,e.MaximumSectionModulusY,e.MinimumSectionModulusY,e.MaximumSectionModulusZ,e.MinimumSectionModulusZ,e.TorsionalSectionModulus,e.CentreOfGravityInX,e.CentreOfGravityInY,e.ShearAreaZ,e.ShearAreaY,e.PlasticShapeFactorY,e.PlasticShapeFactorZ],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope,e.CentreOfGravityInY],3028897424:e=>[e.Item,e.Styles,e.Name,e.AnnotatedCurve],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1345879162:e=>[e.RepeatFactor,e.SecondRepeatFactor],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope,e.CentreOfGravityInX],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],1299126871:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ConstructionType,e.OperationType,e.ParameterTakesPrecedence,e.Sizeable],2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3288037868:e=>[e.Item,e.Styles,e.Name],669184980:e=>[e.OuterBoundary,e.InnerBoundaries],2265737646:e=>[e.Item,e.Styles,e.Name,e.FillStyleTarget,e.GlobalOrLocal],1302238472:e=>[e.Item,e.TextureCoordinates],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>[e.BaseSurface,e.AgreementFlag,e.Enclosure],2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius,e.CentreOfGravityInX],1123145078:e=>[e.Coordinates],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],2485617015:e=>[e.Transition,e.SameSense,e.ParentCurve],4133800736:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallHeight,e.BaseWidth2,e.Radius,e.HeadWidth,e.HeadDepth2,e.HeadDepth3,e.WebThickness,e.BaseWidth4,e.BaseDepth1,e.BaseDepth2,e.BaseDepth3,e.CentreOfGravityInY],194851669:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallHeight,e.HeadWidth,e.Radius,e.HeadDepth2,e.HeadDepth3,e.WebThickness,e.BaseDepth1,e.BaseDepth2,e.CentreOfGravityInY],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],693772133:e=>[e.Definition,e.Target],606661476:e=>[e.Item,e.Styles,e.Name],4054601972:e=>[e.Item,e.Styles,e.Name,e.AnnotatedCurve,e.Role],32440307:e=>[e.DirectionRatios],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],526551008:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.OperationType,e.ConstructionType,e.ParameterTakesPrecedence,e.Sizeable],3073041342:e=>[e.Contents],445594917:e=>[e.Name],4006246654:e=>[e.Name],1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],80994333:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.EnergySequence,e.UserDefinedEnergySequence],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],4203026998:e=>[e.Symbol],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],3455213021:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PropertySource,e.FlowConditionTimeSeries,e.VelocityTimeSeries,e.FlowrateTimeSeries,e.Fluid,e.PressureTimeSeries,e.UserDefinedPropertySource,e.TemperatureSingleValue,e.WetBulbTemperatureSingleValue,e.WetBulbTemperatureTimeSeries,e.TemperatureTimeSeries,e.FlowrateSingleValue?sD(e.FlowrateSingleValue):null,e.FlowConditionSingleValue,e.VelocitySingleValue,e.PressureSingleValue],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope,e.CentreOfGravityInX,e.CentreOfGravityInY],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3388369263:e=>[e.BasisCurve,e.Distance,e.SelfIntersect],3505215534:e=>[e.BasisCurve,e.Distance,e.SelfIntersect,e.RefDirection],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],4194566429:e=>[e.Item,e.Styles,e.Name],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],3219374653:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.ProxyType,e.Tag],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,e.Usense,e.Vsense],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],3372526763:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],1327628568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingAppliedValue],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],2851387026:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingProfileProperties,e.ProfileSectionLocation,e.ProfileOrientation],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],3912681535:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralMember],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedSpace,e.RelatedCoverings],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],4189434867:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DailyInteraction,e.ImportanceRating,e.LocationOfInteraction,e.RelatedSpaceProgram,e.RelatingSpaceProgram],3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2051452291:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],202636808:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition,e.OverridingProperties],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],1058617721:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],451544542:e=>[e.Position,e.Radius],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness,e.SubsequentThickness,e.VaryingThicknessLocation],4070609034:e=>[e.Contents],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3473067441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.CentreOfGravityInY],1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],1950629157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3732776249:e=>[e.Segments,e.SelfIntersect],2510884976:e=>[e.Position],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.SubmittedBy,e.PreparedBy,e.SubmittedOn,e.Status,e.TargetUsers,e.UpdateDate,e.ID,e.PredefinedType],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],681481545:e=>[e.Contents],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],360485395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.EnergySequence,e.UserDefinedEnergySequence,e.ElectricCurrentType,e.InputVoltage,e.InputFrequency,e.FullLoadCurrent,e.MinimumCircuitCurrent,e.MaximumPowerInput,e.RatedPowerInput,e.InputPhase],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1962604670:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3272907226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],814719939:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],200128114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes],2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.InventoryType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.SkillSet],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2506943328:e=>[e.Contents],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916936684:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority,e.MoveFrom,e.MoveTo,e.PunchList],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3425660407:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TaskId,e.Status,e.WorkMethod,e.IsMilestone,e.Priority,e.ActionID],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LifeCyclePhase],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PermitID],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ProcedureID,e.ProcedureType,e.UserDefinedProcedureType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ID,e.PredefinedType,e.Status],3642467123:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Records,e.PredefinedType],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3248260540:e=>[e.Contents],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2863920197:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl,e.TimeForTask],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3517283431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ActualStart,e.EarlyStart,e.LateStart,e.ScheduleStart,e.ActualFinish,e.EarlyFinish,e.LateFinish,e.ScheduleFinish,e.ScheduleDuration,e.ActualDuration,e.RemainingTime,e.FreeFloat,e.TotalFloat,e.IsCritical,e.StatusTime,e.StartFloat,e.FinishFloat,e.Completion],4105383287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ServiceLifeType,e.ServiceLifeDuration],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.InteriorOrExteriorSpace,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],652456506:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.SpaceProgramIdentifier,e.MaxRequiredArea,e.MinRequiredArea,e.RequestedLocation,e.StandardRequiredArea],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy],1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],1807405624:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue],1721250024:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue,e.VaryingAppliedLoadLocation,e.SubsequentAppliedLoads],1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],1621171031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue],3987759626:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy,e.ProjectedOrTrue,e.VaryingAppliedLoadLocation,e.SubsequentAppliedLoads],2082059205:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.DestabilizingLoad,e.CausedBy],734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,e.IsLinear],1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.SubContractor,e.JobDescription],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1637806684:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ApplicableDates,e.TimeSeriesScheduleType,e.TimeSeries],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OperationType,e.CapacityByWeight,e.CapacityByNumber],3593883385:e=>[e.BasisCurve,e.Trim1,e.Trim2,e.SenseAgreement,e.MasterRepresentation],1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identifier,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.WorkControlType,e.UserDefinedControlType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1213861670:e=>[e.Segments,e.SelfIntersect],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.RequestID],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2470393545:e=>[e.Contents],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.AssetID,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1967976161:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect],819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916977116:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3299480353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],52481810:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.CompositionType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188551683:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1163958913:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Criterion,e.CriterionDateTime],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity,e.Suppliers,e.UsageRatio],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ResourceIdentifier,e.ResourceGroup,e.ResourceConsumption,e.BaseQuantity],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4147604152:e=>[e.Contents],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],855621170:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1365060375:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634875225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],857184966:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3055160366:e=>[e.Degree,e.ControlPointsList,e.CurveForm,e.ClosedCurve,e.SelfIntersect,e.WeightsData],3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],1376911519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength,e.Radius],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ShapeType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRiser,e.NumberOfTreads,e.RiserHeight,e.TreadLength],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2454782716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.FeatureLength,e.Width,e.Height],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.ControlElementId],3700593921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.DistributionPointFunction,e.UserDefinedFunction],979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarRole,e.BarSurface]},$b[1]={3699917729:e=>new cb.IfcAbsorbedDoseMeasure(e),4182062534:e=>new cb.IfcAccelerationMeasure(e),360377573:e=>new cb.IfcAmountOfSubstanceMeasure(e),632304761:e=>new cb.IfcAngularVelocityMeasure(e),2650437152:e=>new cb.IfcAreaMeasure(e),2735952531:e=>new cb.IfcBoolean(e),1867003952:e=>new cb.IfcBoxAlignment(e),2991860651:e=>new cb.IfcComplexNumber(e),3812528620:e=>new cb.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new cb.IfcContextDependentMeasure(e),1778710042:e=>new cb.IfcCountMeasure(e),94842927:e=>new cb.IfcCurvatureMeasure(e),86635668:e=>new cb.IfcDayInMonthNumber(e),300323983:e=>new cb.IfcDaylightSavingHour(e),1514641115:e=>new cb.IfcDescriptiveMeasure(e),4134073009:e=>new cb.IfcDimensionCount(e),524656162:e=>new cb.IfcDoseEquivalentMeasure(e),69416015:e=>new cb.IfcDynamicViscosityMeasure(e),1827137117:e=>new cb.IfcElectricCapacitanceMeasure(e),3818826038:e=>new cb.IfcElectricChargeMeasure(e),2093906313:e=>new cb.IfcElectricConductanceMeasure(e),3790457270:e=>new cb.IfcElectricCurrentMeasure(e),2951915441:e=>new cb.IfcElectricResistanceMeasure(e),2506197118:e=>new cb.IfcElectricVoltageMeasure(e),2078135608:e=>new cb.IfcEnergyMeasure(e),1102727119:e=>new cb.IfcFontStyle(e),2715512545:e=>new cb.IfcFontVariant(e),2590844177:e=>new cb.IfcFontWeight(e),1361398929:e=>new cb.IfcForceMeasure(e),3044325142:e=>new cb.IfcFrequencyMeasure(e),3064340077:e=>new cb.IfcGloballyUniqueId(e),3113092358:e=>new cb.IfcHeatFluxDensityMeasure(e),1158859006:e=>new cb.IfcHeatingValueMeasure(e),2589826445:e=>new cb.IfcHourInDay(e),983778844:e=>new cb.IfcIdentifier(e),3358199106:e=>new cb.IfcIlluminanceMeasure(e),2679005408:e=>new cb.IfcInductanceMeasure(e),1939436016:e=>new cb.IfcInteger(e),3809634241:e=>new cb.IfcIntegerCountRateMeasure(e),3686016028:e=>new cb.IfcIonConcentrationMeasure(e),3192672207:e=>new cb.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new cb.IfcKinematicViscosityMeasure(e),3258342251:e=>new cb.IfcLabel(e),1243674935:e=>new cb.IfcLengthMeasure(e),191860431:e=>new cb.IfcLinearForceMeasure(e),2128979029:e=>new cb.IfcLinearMomentMeasure(e),1307019551:e=>new cb.IfcLinearStiffnessMeasure(e),3086160713:e=>new cb.IfcLinearVelocityMeasure(e),503418787:e=>new cb.IfcLogical(e),2095003142:e=>new cb.IfcLuminousFluxMeasure(e),2755797622:e=>new cb.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new cb.IfcLuminousIntensityMeasure(e),286949696:e=>new cb.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new cb.IfcMagneticFluxMeasure(e),1477762836:e=>new cb.IfcMassDensityMeasure(e),4017473158:e=>new cb.IfcMassFlowRateMeasure(e),3124614049:e=>new cb.IfcMassMeasure(e),3531705166:e=>new cb.IfcMassPerLengthMeasure(e),102610177:e=>new cb.IfcMinuteInHour(e),3341486342:e=>new cb.IfcModulusOfElasticityMeasure(e),2173214787:e=>new cb.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new cb.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new cb.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new cb.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new cb.IfcMolecularWeightMeasure(e),3114022597:e=>new cb.IfcMomentOfInertiaMeasure(e),2615040989:e=>new cb.IfcMonetaryMeasure(e),765770214:e=>new cb.IfcMonthInYearNumber(e),2095195183:e=>new cb.IfcNormalisedRatioMeasure(e),2395907400:e=>new cb.IfcNumericMeasure(e),929793134:e=>new cb.IfcPHMeasure(e),2260317790:e=>new cb.IfcParameterValue(e),2642773653:e=>new cb.IfcPlanarForceMeasure(e),4042175685:e=>new cb.IfcPlaneAngleMeasure(e),2815919920:e=>new cb.IfcPositiveLengthMeasure(e),3054510233:e=>new cb.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new cb.IfcPositiveRatioMeasure(e),1364037233:e=>new cb.IfcPowerMeasure(e),2169031380:e=>new cb.IfcPresentableText(e),3665567075:e=>new cb.IfcPressureMeasure(e),3972513137:e=>new cb.IfcRadioActivityMeasure(e),96294661:e=>new cb.IfcRatioMeasure(e),200335297:e=>new cb.IfcReal(e),2133746277:e=>new cb.IfcRotationalFrequencyMeasure(e),1755127002:e=>new cb.IfcRotationalMassMeasure(e),3211557302:e=>new cb.IfcRotationalStiffnessMeasure(e),2766185779:e=>new cb.IfcSecondInMinute(e),3467162246:e=>new cb.IfcSectionModulusMeasure(e),2190458107:e=>new cb.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new cb.IfcShearModulusMeasure(e),3471399674:e=>new cb.IfcSolidAngleMeasure(e),846465480:e=>new cb.IfcSoundPowerMeasure(e),993287707:e=>new cb.IfcSoundPressureMeasure(e),3477203348:e=>new cb.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new cb.IfcSpecularExponent(e),361837227:e=>new cb.IfcSpecularRoughness(e),58845555:e=>new cb.IfcTemperatureGradientMeasure(e),2801250643:e=>new cb.IfcText(e),1460886941:e=>new cb.IfcTextAlignment(e),3490877962:e=>new cb.IfcTextDecoration(e),603696268:e=>new cb.IfcTextFontName(e),296282323:e=>new cb.IfcTextTransformation(e),232962298:e=>new cb.IfcThermalAdmittanceMeasure(e),2645777649:e=>new cb.IfcThermalConductivityMeasure(e),2281867870:e=>new cb.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new cb.IfcThermalResistanceMeasure(e),2016195849:e=>new cb.IfcThermalTransmittanceMeasure(e),743184107:e=>new cb.IfcThermodynamicTemperatureMeasure(e),2726807636:e=>new cb.IfcTimeMeasure(e),2591213694:e=>new cb.IfcTimeStamp(e),1278329552:e=>new cb.IfcTorqueMeasure(e),3345633955:e=>new cb.IfcVaporPermeabilityMeasure(e),3458127941:e=>new cb.IfcVolumeMeasure(e),2593997549:e=>new cb.IfcVolumetricFlowRateMeasure(e),51269191:e=>new cb.IfcWarpingConstantMeasure(e),1718600412:e=>new cb.IfcWarpingMomentMeasure(e),4065007721:e=>new cb.IfcYearNumber(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDaylightSavingHour=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHourInDay=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMinuteInHour=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSecondInMinute=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},s.COMPLETION_G1={type:3,value:"COMPLETION_G1"},s.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},s.SNOW_S={type:3,value:"SNOW_S"},s.WIND_W={type:3,value:"WIND_W"},s.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},s.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},s.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},s.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},s.FIRE={type:3,value:"FIRE"},s.IMPULSE={type:3,value:"IMPULSE"},s.IMPACT={type:3,value:"IMPACT"},s.TRANSPORT={type:3,value:"TRANSPORT"},s.ERECTION={type:3,value:"ERECTION"},s.PROPPING={type:3,value:"PROPPING"},s.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},s.SHRINKAGE={type:3,value:"SHRINKAGE"},s.CREEP={type:3,value:"CREEP"},s.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},s.BUOYANCY={type:3,value:"BUOYANCY"},s.ICE={type:3,value:"ICE"},s.CURRENT={type:3,value:"CURRENT"},s.WAVE={type:3,value:"WAVE"},s.RAIN={type:3,value:"RAIN"},s.BRAKES={type:3,value:"BRAKES"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=s;class n{}n.PERMANENT_G={type:3,value:"PERMANENT_G"},n.VARIABLE_Q={type:3,value:"VARIABLE_Q"},n.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=n;class i{}i.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},i.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},i.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},i.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},i.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=i;class a{}a.OFFICE={type:3,value:"OFFICE"},a.SITE={type:3,value:"SITE"},a.HOME={type:3,value:"HOME"},a.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},a.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=a;class r{}r.AHEAD={type:3,value:"AHEAD"},r.BEHIND={type:3,value:"BEHIND"},e.IfcAheadOrBehind=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.GRILLE={type:3,value:"GRILLE"},o.REGISTER={type:3,value:"REGISTER"},o.DIFFUSER={type:3,value:"DIFFUSER"},o.EYEBALL={type:3,value:"EYEBALL"},o.IRIS={type:3,value:"IRIS"},o.LINEARGRILLE={type:3,value:"LINEARGRILLE"},o.LINEARDIFFUSER={type:3,value:"LINEARDIFFUSER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},h.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},h.LOADING_3D={type:3,value:"LOADING_3D"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=h;class p{}p.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},p.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},p.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},p.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=p;class A{}A.ADD={type:3,value:"ADD"},A.DIVIDE={type:3,value:"DIVIDE"},A.MULTIPLY={type:3,value:"MULTIPLY"},A.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=A;class d{}d.SITE={type:3,value:"SITE"},d.FACTORY={type:3,value:"FACTORY"},d.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=d;class f{}f.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},f.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},f.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},f.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},f.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},f.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=f;class I{}I.BEAM={type:3,value:"BEAM"},I.JOIST={type:3,value:"JOIST"},I.LINTEL={type:3,value:"LINTEL"},I.T_BEAM={type:3,value:"T_BEAM"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=I;class y{}y.GREATERTHAN={type:3,value:"GREATERTHAN"},y.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},y.LESSTHAN={type:3,value:"LESSTHAN"},y.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},y.EQUALTO={type:3,value:"EQUALTO"},y.NOTEQUALTO={type:3,value:"NOTEQUALTO"},e.IfcBenchmarkEnum=y;class m{}m.WATER={type:3,value:"WATER"},m.STEAM={type:3,value:"STEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=m;class v{}v.UNION={type:3,value:"UNION"},v.INTERSECTION={type:3,value:"INTERSECTION"},v.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=v;class w{}w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=w;class g{}g.BEND={type:3,value:"BEND"},g.CROSS={type:3,value:"CROSS"},g.REDUCER={type:3,value:"REDUCER"},g.TEE={type:3,value:"TEE"},g.USERDEFINED={type:3,value:"USERDEFINED"},g.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=g;class E{}E.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},E.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},E.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},E.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=E;class T{}T.CABLESEGMENT={type:3,value:"CABLESEGMENT"},T.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=T;class b{}b.NOCHANGE={type:3,value:"NOCHANGE"},b.MODIFIED={type:3,value:"MODIFIED"},b.ADDED={type:3,value:"ADDED"},b.DELETED={type:3,value:"DELETED"},b.MODIFIEDADDED={type:3,value:"MODIFIEDADDED"},b.MODIFIEDDELETED={type:3,value:"MODIFIEDDELETED"},e.IfcChangeActionEnum=b;class D{}D.AIRCOOLED={type:3,value:"AIRCOOLED"},D.WATERCOOLED={type:3,value:"WATERCOOLED"},D.HEATRECOVERY={type:3,value:"HEATRECOVERY"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=D;class P{}P.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},P.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},P.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},P.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},P.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},P.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=P;class R{}R.COLUMN={type:3,value:"COLUMN"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=R;class C{}C.DYNAMIC={type:3,value:"DYNAMIC"},C.RECIPROCATING={type:3,value:"RECIPROCATING"},C.ROTARY={type:3,value:"ROTARY"},C.SCROLL={type:3,value:"SCROLL"},C.TROCHOIDAL={type:3,value:"TROCHOIDAL"},C.SINGLESTAGE={type:3,value:"SINGLESTAGE"},C.BOOSTER={type:3,value:"BOOSTER"},C.OPENTYPE={type:3,value:"OPENTYPE"},C.HERMETIC={type:3,value:"HERMETIC"},C.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},C.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},C.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},C.ROTARYVANE={type:3,value:"ROTARYVANE"},C.SINGLESCREW={type:3,value:"SINGLESCREW"},C.TWINSCREW={type:3,value:"TWINSCREW"},C.USERDEFINED={type:3,value:"USERDEFINED"},C.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=C;class _{}_.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},_.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},_.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},_.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},_.AIRCOOLED={type:3,value:"AIRCOOLED"},_.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=_;class B{}B.ATPATH={type:3,value:"ATPATH"},B.ATSTART={type:3,value:"ATSTART"},B.ATEND={type:3,value:"ATEND"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=B;class O{}O.HARD={type:3,value:"HARD"},O.SOFT={type:3,value:"SOFT"},O.ADVISORY={type:3,value:"ADVISORY"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=O;class S{}S.FLOATING={type:3,value:"FLOATING"},S.PROPORTIONAL={type:3,value:"PROPORTIONAL"},S.PROPORTIONALINTEGRAL={type:3,value:"PROPORTIONALINTEGRAL"},S.PROPORTIONALINTEGRALDERIVATIVE={type:3,value:"PROPORTIONALINTEGRALDERIVATIVE"},S.TIMEDTWOPOSITION={type:3,value:"TIMEDTWOPOSITION"},S.TWOPOSITION={type:3,value:"TWOPOSITION"},S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=S;class N{}N.ACTIVE={type:3,value:"ACTIVE"},N.PASSIVE={type:3,value:"PASSIVE"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=N;class x{}x.NATURALDRAFT={type:3,value:"NATURALDRAFT"},x.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},x.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=x;class L{}L.BUDGET={type:3,value:"BUDGET"},L.COSTPLAN={type:3,value:"COSTPLAN"},L.ESTIMATE={type:3,value:"ESTIMATE"},L.TENDER={type:3,value:"TENDER"},L.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},L.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},L.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=L;class M{}M.CEILING={type:3,value:"CEILING"},M.FLOORING={type:3,value:"FLOORING"},M.CLADDING={type:3,value:"CLADDING"},M.ROOFING={type:3,value:"ROOFING"},M.INSULATION={type:3,value:"INSULATION"},M.MEMBRANE={type:3,value:"MEMBRANE"},M.SLEEVING={type:3,value:"SLEEVING"},M.WRAPPING={type:3,value:"WRAPPING"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=M;class F{}F.AED={type:3,value:"AED"},F.AES={type:3,value:"AES"},F.ATS={type:3,value:"ATS"},F.AUD={type:3,value:"AUD"},F.BBD={type:3,value:"BBD"},F.BEG={type:3,value:"BEG"},F.BGL={type:3,value:"BGL"},F.BHD={type:3,value:"BHD"},F.BMD={type:3,value:"BMD"},F.BND={type:3,value:"BND"},F.BRL={type:3,value:"BRL"},F.BSD={type:3,value:"BSD"},F.BWP={type:3,value:"BWP"},F.BZD={type:3,value:"BZD"},F.CAD={type:3,value:"CAD"},F.CBD={type:3,value:"CBD"},F.CHF={type:3,value:"CHF"},F.CLP={type:3,value:"CLP"},F.CNY={type:3,value:"CNY"},F.CYS={type:3,value:"CYS"},F.CZK={type:3,value:"CZK"},F.DDP={type:3,value:"DDP"},F.DEM={type:3,value:"DEM"},F.DKK={type:3,value:"DKK"},F.EGL={type:3,value:"EGL"},F.EST={type:3,value:"EST"},F.EUR={type:3,value:"EUR"},F.FAK={type:3,value:"FAK"},F.FIM={type:3,value:"FIM"},F.FJD={type:3,value:"FJD"},F.FKP={type:3,value:"FKP"},F.FRF={type:3,value:"FRF"},F.GBP={type:3,value:"GBP"},F.GIP={type:3,value:"GIP"},F.GMD={type:3,value:"GMD"},F.GRX={type:3,value:"GRX"},F.HKD={type:3,value:"HKD"},F.HUF={type:3,value:"HUF"},F.ICK={type:3,value:"ICK"},F.IDR={type:3,value:"IDR"},F.ILS={type:3,value:"ILS"},F.INR={type:3,value:"INR"},F.IRP={type:3,value:"IRP"},F.ITL={type:3,value:"ITL"},F.JMD={type:3,value:"JMD"},F.JOD={type:3,value:"JOD"},F.JPY={type:3,value:"JPY"},F.KES={type:3,value:"KES"},F.KRW={type:3,value:"KRW"},F.KWD={type:3,value:"KWD"},F.KYD={type:3,value:"KYD"},F.LKR={type:3,value:"LKR"},F.LUF={type:3,value:"LUF"},F.MTL={type:3,value:"MTL"},F.MUR={type:3,value:"MUR"},F.MXN={type:3,value:"MXN"},F.MYR={type:3,value:"MYR"},F.NLG={type:3,value:"NLG"},F.NZD={type:3,value:"NZD"},F.OMR={type:3,value:"OMR"},F.PGK={type:3,value:"PGK"},F.PHP={type:3,value:"PHP"},F.PKR={type:3,value:"PKR"},F.PLN={type:3,value:"PLN"},F.PTN={type:3,value:"PTN"},F.QAR={type:3,value:"QAR"},F.RUR={type:3,value:"RUR"},F.SAR={type:3,value:"SAR"},F.SCR={type:3,value:"SCR"},F.SEK={type:3,value:"SEK"},F.SGD={type:3,value:"SGD"},F.SKP={type:3,value:"SKP"},F.THB={type:3,value:"THB"},F.TRL={type:3,value:"TRL"},F.TTD={type:3,value:"TTD"},F.TWD={type:3,value:"TWD"},F.USD={type:3,value:"USD"},F.VEB={type:3,value:"VEB"},F.VND={type:3,value:"VND"},F.XEU={type:3,value:"XEU"},F.ZAR={type:3,value:"ZAR"},F.ZWD={type:3,value:"ZWD"},F.NOK={type:3,value:"NOK"},e.IfcCurrencyEnum=F;class H{}H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=H;class U{}U.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},U.FIREDAMPER={type:3,value:"FIREDAMPER"},U.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},U.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},U.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},U.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},U.BLASTDAMPER={type:3,value:"BLASTDAMPER"},U.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},U.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},U.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},U.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=U;class G{}G.MEASURED={type:3,value:"MEASURED"},G.PREDICTED={type:3,value:"PREDICTED"},G.SIMULATED={type:3,value:"SIMULATED"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=G;class j{}j.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},j.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},j.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},j.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},j.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},j.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},j.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},j.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},j.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},j.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},j.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},j.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},j.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},j.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},j.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},j.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},j.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},j.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},j.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},j.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},j.TORQUEUNIT={type:3,value:"TORQUEUNIT"},j.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},j.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},j.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},j.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},j.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},j.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},j.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},j.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},j.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},j.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},j.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},j.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},j.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},j.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},j.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},j.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},j.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},j.PHUNIT={type:3,value:"PHUNIT"},j.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},j.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},j.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},j.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},j.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},j.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},j.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},j.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},j.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},j.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=j;class V{}V.ORIGIN={type:3,value:"ORIGIN"},V.TARGET={type:3,value:"TARGET"},e.IfcDimensionExtentUsage=V;class k{}k.POSITIVE={type:3,value:"POSITIVE"},k.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=k;class Q{}Q.FORMEDDUCT={type:3,value:"FORMEDDUCT"},Q.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},Q.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},Q.MANHOLE={type:3,value:"MANHOLE"},Q.METERCHAMBER={type:3,value:"METERCHAMBER"},Q.SUMP={type:3,value:"SUMP"},Q.TRENCH={type:3,value:"TRENCH"},Q.VALVECHAMBER={type:3,value:"VALVECHAMBER"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=Q;class W{}W.PUBLIC={type:3,value:"PUBLIC"},W.RESTRICTED={type:3,value:"RESTRICTED"},W.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},W.PERSONAL={type:3,value:"PERSONAL"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=W;class z{}z.DRAFT={type:3,value:"DRAFT"},z.FINALDRAFT={type:3,value:"FINALDRAFT"},z.FINAL={type:3,value:"FINAL"},z.REVISION={type:3,value:"REVISION"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=z;class K{}K.SWINGING={type:3,value:"SWINGING"},K.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},K.SLIDING={type:3,value:"SLIDING"},K.FOLDING={type:3,value:"FOLDING"},K.REVOLVING={type:3,value:"REVOLVING"},K.ROLLINGUP={type:3,value:"ROLLINGUP"},K.USERDEFINED={type:3,value:"USERDEFINED"},K.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=K;class Y{}Y.LEFT={type:3,value:"LEFT"},Y.MIDDLE={type:3,value:"MIDDLE"},Y.RIGHT={type:3,value:"RIGHT"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=Y;class X{}X.ALUMINIUM={type:3,value:"ALUMINIUM"},X.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},X.STEEL={type:3,value:"STEEL"},X.WOOD={type:3,value:"WOOD"},X.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},X.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},X.PLASTIC={type:3,value:"PLASTIC"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=X;class q{}q.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},q.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},q.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},q.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},q.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},q.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},q.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},q.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},q.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},q.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},q.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},q.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},q.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},q.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},q.REVOLVING={type:3,value:"REVOLVING"},q.ROLLINGUP={type:3,value:"ROLLINGUP"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=q;class J{}J.BEND={type:3,value:"BEND"},J.CONNECTOR={type:3,value:"CONNECTOR"},J.ENTRY={type:3,value:"ENTRY"},J.EXIT={type:3,value:"EXIT"},J.JUNCTION={type:3,value:"JUNCTION"},J.OBSTRUCTION={type:3,value:"OBSTRUCTION"},J.TRANSITION={type:3,value:"TRANSITION"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=J;class Z{}Z.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Z.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Z;class ${}$.FLATOVAL={type:3,value:"FLATOVAL"},$.RECTANGULAR={type:3,value:"RECTANGULAR"},$.ROUND={type:3,value:"ROUND"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=$;class ee{}ee.COMPUTER={type:3,value:"COMPUTER"},ee.DIRECTWATERHEATER={type:3,value:"DIRECTWATERHEATER"},ee.DISHWASHER={type:3,value:"DISHWASHER"},ee.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},ee.ELECTRICHEATER={type:3,value:"ELECTRICHEATER"},ee.FACSIMILE={type:3,value:"FACSIMILE"},ee.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},ee.FREEZER={type:3,value:"FREEZER"},ee.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},ee.HANDDRYER={type:3,value:"HANDDRYER"},ee.INDIRECTWATERHEATER={type:3,value:"INDIRECTWATERHEATER"},ee.MICROWAVE={type:3,value:"MICROWAVE"},ee.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},ee.PRINTER={type:3,value:"PRINTER"},ee.REFRIGERATOR={type:3,value:"REFRIGERATOR"},ee.RADIANTHEATER={type:3,value:"RADIANTHEATER"},ee.SCANNER={type:3,value:"SCANNER"},ee.TELEPHONE={type:3,value:"TELEPHONE"},ee.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},ee.TV={type:3,value:"TV"},ee.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},ee.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},ee.WATERHEATER={type:3,value:"WATERHEATER"},ee.WATERCOOLER={type:3,value:"WATERCOOLER"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=ee;class te{}te.ALTERNATING={type:3,value:"ALTERNATING"},te.DIRECT={type:3,value:"DIRECT"},te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricCurrentEnum=te;class se{}se.ALARMPANEL={type:3,value:"ALARMPANEL"},se.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},se.CONTROLPANEL={type:3,value:"CONTROLPANEL"},se.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},se.GASDETECTORPANEL={type:3,value:"GASDETECTORPANEL"},se.INDICATORPANEL={type:3,value:"INDICATORPANEL"},se.MIMICPANEL={type:3,value:"MIMICPANEL"},se.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},se.SWITCHBOARD={type:3,value:"SWITCHBOARD"},se.USERDEFINED={type:3,value:"USERDEFINED"},se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionPointFunctionEnum=se;class ne{}ne.BATTERY={type:3,value:"BATTERY"},ne.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ne.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ne.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ne.UPS={type:3,value:"UPS"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ne;class ie{}ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=ie;class ae{}ae.ELECTRICPOINTHEATER={type:3,value:"ELECTRICPOINTHEATER"},ae.ELECTRICCABLEHEATER={type:3,value:"ELECTRICCABLEHEATER"},ae.ELECTRICMATHEATER={type:3,value:"ELECTRICMATHEATER"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricHeaterTypeEnum=ae;class re{}re.DC={type:3,value:"DC"},re.INDUCTION={type:3,value:"INDUCTION"},re.POLYPHASE={type:3,value:"POLYPHASE"},re.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},re.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=re;class le{}le.TIMECLOCK={type:3,value:"TIMECLOCK"},le.TIMEDELAY={type:3,value:"TIMEDELAY"},le.RELAY={type:3,value:"RELAY"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=le;class oe{}oe.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},oe.ARCH={type:3,value:"ARCH"},oe.BEAM_GRID={type:3,value:"BEAM_GRID"},oe.BRACED_FRAME={type:3,value:"BRACED_FRAME"},oe.GIRDER={type:3,value:"GIRDER"},oe.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},oe.RIGID_FRAME={type:3,value:"RIGID_FRAME"},oe.SLAB_FIELD={type:3,value:"SLAB_FIELD"},oe.TRUSS={type:3,value:"TRUSS"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=oe;class ce{}ce.COMPLEX={type:3,value:"COMPLEX"},ce.ELEMENT={type:3,value:"ELEMENT"},ce.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=ce;class ue{}ue.PRIMARY={type:3,value:"PRIMARY"},ue.SECONDARY={type:3,value:"SECONDARY"},ue.TERTIARY={type:3,value:"TERTIARY"},ue.AUXILIARY={type:3,value:"AUXILIARY"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnergySequenceEnum=ue;class he{}he.COMBINEDVALUE={type:3,value:"COMBINEDVALUE"},he.DISPOSAL={type:3,value:"DISPOSAL"},he.EXTRACTION={type:3,value:"EXTRACTION"},he.INSTALLATION={type:3,value:"INSTALLATION"},he.MANUFACTURE={type:3,value:"MANUFACTURE"},he.TRANSPORTATION={type:3,value:"TRANSPORTATION"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnvironmentalImpactCategoryEnum=he;class pe{}pe.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},pe.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},pe.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},pe.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},pe.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},pe.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},pe.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},pe.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},pe.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=pe;class Ae{}Ae.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Ae.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Ae.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Ae.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Ae.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=Ae;class de{}de.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},de.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},de.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},de.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},de.TUBEAXIAL={type:3,value:"TUBEAXIAL"},de.VANEAXIAL={type:3,value:"VANEAXIAL"},de.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},de.USERDEFINED={type:3,value:"USERDEFINED"},de.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=de;class fe{}fe.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},fe.ODORFILTER={type:3,value:"ODORFILTER"},fe.OILFILTER={type:3,value:"OILFILTER"},fe.STRAINER={type:3,value:"STRAINER"},fe.WATERFILTER={type:3,value:"WATERFILTER"},fe.USERDEFINED={type:3,value:"USERDEFINED"},fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=fe;class Ie{}Ie.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Ie.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Ie.HOSEREEL={type:3,value:"HOSEREEL"},Ie.SPRINKLER={type:3,value:"SPRINKLER"},Ie.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Ie;class ye{}ye.SOURCE={type:3,value:"SOURCE"},ye.SINK={type:3,value:"SINK"},ye.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=ye;class me{}me.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},me.THERMOMETER={type:3,value:"THERMOMETER"},me.AMMETER={type:3,value:"AMMETER"},me.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},me.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},me.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},me.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},me.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=me;class ve{}ve.ELECTRICMETER={type:3,value:"ELECTRICMETER"},ve.ENERGYMETER={type:3,value:"ENERGYMETER"},ve.FLOWMETER={type:3,value:"FLOWMETER"},ve.GASMETER={type:3,value:"GASMETER"},ve.OILMETER={type:3,value:"OILMETER"},ve.WATERMETER={type:3,value:"WATERMETER"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=ve;class we{}we.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},we.PAD_FOOTING={type:3,value:"PAD_FOOTING"},we.PILE_CAP={type:3,value:"PILE_CAP"},we.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=we;class ge{}ge.GASAPPLIANCE={type:3,value:"GASAPPLIANCE"},ge.GASBOOSTER={type:3,value:"GASBOOSTER"},ge.GASBURNER={type:3,value:"GASBURNER"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGasTerminalTypeEnum=ge;class Ee{}Ee.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},Ee.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},Ee.MODEL_VIEW={type:3,value:"MODEL_VIEW"},Ee.PLAN_VIEW={type:3,value:"PLAN_VIEW"},Ee.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},Ee.SECTION_VIEW={type:3,value:"SECTION_VIEW"},Ee.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=Ee;class Te{}Te.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Te.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=Te;class be{}be.PLATE={type:3,value:"PLATE"},be.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=be;class De{}De.STEAMINJECTION={type:3,value:"STEAMINJECTION"},De.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},De.ADIABATICPAN={type:3,value:"ADIABATICPAN"},De.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},De.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},De.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},De.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},De.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},De.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},De.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},De.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},De.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},De.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=De;class Pe{}Pe.INTERNAL={type:3,value:"INTERNAL"},Pe.EXTERNAL={type:3,value:"EXTERNAL"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Pe;class Re{}Re.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},Re.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},Re.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=Re;class Ce{}Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ce;class _e{}_e.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},_e.FLUORESCENT={type:3,value:"FLUORESCENT"},_e.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},_e.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},_e.METALHALIDE={type:3,value:"METALHALIDE"},_e.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=_e;class Be{}Be.AXIS1={type:3,value:"AXIS1"},Be.AXIS2={type:3,value:"AXIS2"},Be.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=Be;class Oe{}Oe.TYPE_A={type:3,value:"TYPE_A"},Oe.TYPE_B={type:3,value:"TYPE_B"},Oe.TYPE_C={type:3,value:"TYPE_C"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=Oe;class Se{}Se.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Se.FLUORESCENT={type:3,value:"FLUORESCENT"},Se.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Se.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Se.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},Se.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},Se.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},Se.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},Se.METALHALIDE={type:3,value:"METALHALIDE"},Se.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=Se;class Ne{}Ne.POINTSOURCE={type:3,value:"POINTSOURCE"},Ne.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=Ne;class xe{}xe.LOAD_GROUP={type:3,value:"LOAD_GROUP"},xe.LOAD_CASE={type:3,value:"LOAD_CASE"},xe.LOAD_COMBINATION_GROUP={type:3,value:"LOAD_COMBINATION_GROUP"},xe.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=xe;class Le{}Le.LOGICALAND={type:3,value:"LOGICALAND"},Le.LOGICALOR={type:3,value:"LOGICALOR"},e.IfcLogicalOperatorEnum=Le;class Me{}Me.BRACE={type:3,value:"BRACE"},Me.CHORD={type:3,value:"CHORD"},Me.COLLAR={type:3,value:"COLLAR"},Me.MEMBER={type:3,value:"MEMBER"},Me.MULLION={type:3,value:"MULLION"},Me.PLATE={type:3,value:"PLATE"},Me.POST={type:3,value:"POST"},Me.PURLIN={type:3,value:"PURLIN"},Me.RAFTER={type:3,value:"RAFTER"},Me.STRINGER={type:3,value:"STRINGER"},Me.STRUT={type:3,value:"STRUT"},Me.STUD={type:3,value:"STUD"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=Me;class Fe{}Fe.BELTDRIVE={type:3,value:"BELTDRIVE"},Fe.COUPLING={type:3,value:"COUPLING"},Fe.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Fe;class He{}He.NULL={type:3,value:"NULL"},e.IfcNullStyle=He;class Ue{}Ue.PRODUCT={type:3,value:"PRODUCT"},Ue.PROCESS={type:3,value:"PROCESS"},Ue.CONTROL={type:3,value:"CONTROL"},Ue.RESOURCE={type:3,value:"RESOURCE"},Ue.ACTOR={type:3,value:"ACTOR"},Ue.GROUP={type:3,value:"GROUP"},Ue.PROJECT={type:3,value:"PROJECT"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Ue;class Ge{}Ge.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ge.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ge.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ge.REQUIREMENT={type:3,value:"REQUIREMENT"},Ge.SPECIFICATION={type:3,value:"SPECIFICATION"},Ge.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ge;class je{}je.ASSIGNEE={type:3,value:"ASSIGNEE"},je.ASSIGNOR={type:3,value:"ASSIGNOR"},je.LESSEE={type:3,value:"LESSEE"},je.LESSOR={type:3,value:"LESSOR"},je.LETTINGAGENT={type:3,value:"LETTINGAGENT"},je.OWNER={type:3,value:"OWNER"},je.TENANT={type:3,value:"TENANT"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=je;class Ve{}Ve.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},Ve.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},Ve.POWEROUTLET={type:3,value:"POWEROUTLET"},Ve.USERDEFINED={type:3,value:"USERDEFINED"},Ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=Ve;class ke{}ke.GRILL={type:3,value:"GRILL"},ke.LOUVER={type:3,value:"LOUVER"},ke.SCREEN={type:3,value:"SCREEN"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=ke;class Qe{}Qe.PHYSICAL={type:3,value:"PHYSICAL"},Qe.VIRTUAL={type:3,value:"VIRTUAL"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=Qe;class We{}We.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},We.COMPOSITE={type:3,value:"COMPOSITE"},We.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},We.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=We;class ze{}ze.COHESION={type:3,value:"COHESION"},ze.FRICTION={type:3,value:"FRICTION"},ze.SUPPORT={type:3,value:"SUPPORT"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=ze;class Ke{}Ke.BEND={type:3,value:"BEND"},Ke.CONNECTOR={type:3,value:"CONNECTOR"},Ke.ENTRY={type:3,value:"ENTRY"},Ke.EXIT={type:3,value:"EXIT"},Ke.JUNCTION={type:3,value:"JUNCTION"},Ke.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ke.TRANSITION={type:3,value:"TRANSITION"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Ke;class Ye{}Ye.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ye.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ye.GUTTER={type:3,value:"GUTTER"},Ye.SPOOL={type:3,value:"SPOOL"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Ye;class Xe{}Xe.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Xe.SHEET={type:3,value:"SHEET"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Xe;class qe{}qe.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},qe.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},qe.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},qe.CALIBRATION={type:3,value:"CALIBRATION"},qe.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},qe.SHUTDOWN={type:3,value:"SHUTDOWN"},qe.STARTUP={type:3,value:"STARTUP"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=qe;class Je{}Je.CURVE={type:3,value:"CURVE"},Je.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Je;class Ze{}Ze.CHANGE={type:3,value:"CHANGE"},Ze.MAINTENANCE={type:3,value:"MAINTENANCE"},Ze.MOVE={type:3,value:"MOVE"},Ze.PURCHASE={type:3,value:"PURCHASE"},Ze.WORK={type:3,value:"WORK"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderRecordTypeEnum=Ze;class $e{}$e.CHANGEORDER={type:3,value:"CHANGEORDER"},$e.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},$e.MOVEORDER={type:3,value:"MOVEORDER"},$e.PURCHASEORDER={type:3,value:"PURCHASEORDER"},$e.WORKORDER={type:3,value:"WORKORDER"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=$e;class et{}et.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},et.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=et;class tt{}tt.DESIGN={type:3,value:"DESIGN"},tt.DESIGNMAXIMUM={type:3,value:"DESIGNMAXIMUM"},tt.DESIGNMINIMUM={type:3,value:"DESIGNMINIMUM"},tt.SIMULATED={type:3,value:"SIMULATED"},tt.ASBUILT={type:3,value:"ASBUILT"},tt.COMMISSIONING={type:3,value:"COMMISSIONING"},tt.MEASURED={type:3,value:"MEASURED"},tt.USERDEFINED={type:3,value:"USERDEFINED"},tt.NOTKNOWN={type:3,value:"NOTKNOWN"},e.IfcPropertySourceEnum=tt;class st{}st.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},st.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},st.EARTHFAILUREDEVICE={type:3,value:"EARTHFAILUREDEVICE"},st.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},st.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},st.VARISTOR={type:3,value:"VARISTOR"},st.USERDEFINED={type:3,value:"USERDEFINED"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=st;class nt{}nt.CIRCULATOR={type:3,value:"CIRCULATOR"},nt.ENDSUCTION={type:3,value:"ENDSUCTION"},nt.SPLITCASE={type:3,value:"SPLITCASE"},nt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},nt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=nt;class it{}it.HANDRAIL={type:3,value:"HANDRAIL"},it.GUARDRAIL={type:3,value:"GUARDRAIL"},it.BALUSTRADE={type:3,value:"BALUSTRADE"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=it;class at{}at.STRAIGHT={type:3,value:"STRAIGHT"},at.SPIRAL={type:3,value:"SPIRAL"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=at;class rt{}rt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},rt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},rt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},rt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},rt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},rt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=rt;class lt{}lt.BLINN={type:3,value:"BLINN"},lt.FLAT={type:3,value:"FLAT"},lt.GLASS={type:3,value:"GLASS"},lt.MATT={type:3,value:"MATT"},lt.METAL={type:3,value:"METAL"},lt.MIRROR={type:3,value:"MIRROR"},lt.PHONG={type:3,value:"PHONG"},lt.PLASTIC={type:3,value:"PLASTIC"},lt.STRAUSS={type:3,value:"STRAUSS"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=lt;class ot{}ot.MAIN={type:3,value:"MAIN"},ot.SHEAR={type:3,value:"SHEAR"},ot.LIGATURE={type:3,value:"LIGATURE"},ot.STUD={type:3,value:"STUD"},ot.PUNCHING={type:3,value:"PUNCHING"},ot.EDGE={type:3,value:"EDGE"},ot.RING={type:3,value:"RING"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=ot;class ct{}ct.PLAIN={type:3,value:"PLAIN"},ct.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=ct;class ut{}ut.CONSUMED={type:3,value:"CONSUMED"},ut.PARTIALLYCONSUMED={type:3,value:"PARTIALLYCONSUMED"},ut.NOTCONSUMED={type:3,value:"NOTCONSUMED"},ut.OCCUPIED={type:3,value:"OCCUPIED"},ut.PARTIALLYOCCUPIED={type:3,value:"PARTIALLYOCCUPIED"},ut.NOTOCCUPIED={type:3,value:"NOTOCCUPIED"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcResourceConsumptionEnum=ut;class ht{}ht.DIRECTION_X={type:3,value:"DIRECTION_X"},ht.DIRECTION_Y={type:3,value:"DIRECTION_Y"},e.IfcRibPlateDirectionEnum=ht;class pt{}pt.SUPPLIER={type:3,value:"SUPPLIER"},pt.MANUFACTURER={type:3,value:"MANUFACTURER"},pt.CONTRACTOR={type:3,value:"CONTRACTOR"},pt.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},pt.ARCHITECT={type:3,value:"ARCHITECT"},pt.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},pt.COSTENGINEER={type:3,value:"COSTENGINEER"},pt.CLIENT={type:3,value:"CLIENT"},pt.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},pt.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},pt.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},pt.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},pt.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},pt.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},pt.CIVILENGINEER={type:3,value:"CIVILENGINEER"},pt.COMISSIONINGENGINEER={type:3,value:"COMISSIONINGENGINEER"},pt.ENGINEER={type:3,value:"ENGINEER"},pt.OWNER={type:3,value:"OWNER"},pt.CONSULTANT={type:3,value:"CONSULTANT"},pt.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},pt.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},pt.RESELLER={type:3,value:"RESELLER"},pt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=pt;class At{}At.FLAT_ROOF={type:3,value:"FLAT_ROOF"},At.SHED_ROOF={type:3,value:"SHED_ROOF"},At.GABLE_ROOF={type:3,value:"GABLE_ROOF"},At.HIP_ROOF={type:3,value:"HIP_ROOF"},At.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},At.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},At.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},At.BARREL_ROOF={type:3,value:"BARREL_ROOF"},At.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},At.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},At.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},At.DOME_ROOF={type:3,value:"DOME_ROOF"},At.FREEFORM={type:3,value:"FREEFORM"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=At;class dt{}dt.EXA={type:3,value:"EXA"},dt.PETA={type:3,value:"PETA"},dt.TERA={type:3,value:"TERA"},dt.GIGA={type:3,value:"GIGA"},dt.MEGA={type:3,value:"MEGA"},dt.KILO={type:3,value:"KILO"},dt.HECTO={type:3,value:"HECTO"},dt.DECA={type:3,value:"DECA"},dt.DECI={type:3,value:"DECI"},dt.CENTI={type:3,value:"CENTI"},dt.MILLI={type:3,value:"MILLI"},dt.MICRO={type:3,value:"MICRO"},dt.NANO={type:3,value:"NANO"},dt.PICO={type:3,value:"PICO"},dt.FEMTO={type:3,value:"FEMTO"},dt.ATTO={type:3,value:"ATTO"},e.IfcSIPrefix=dt;class ft{}ft.AMPERE={type:3,value:"AMPERE"},ft.BECQUEREL={type:3,value:"BECQUEREL"},ft.CANDELA={type:3,value:"CANDELA"},ft.COULOMB={type:3,value:"COULOMB"},ft.CUBIC_METRE={type:3,value:"CUBIC_METRE"},ft.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},ft.FARAD={type:3,value:"FARAD"},ft.GRAM={type:3,value:"GRAM"},ft.GRAY={type:3,value:"GRAY"},ft.HENRY={type:3,value:"HENRY"},ft.HERTZ={type:3,value:"HERTZ"},ft.JOULE={type:3,value:"JOULE"},ft.KELVIN={type:3,value:"KELVIN"},ft.LUMEN={type:3,value:"LUMEN"},ft.LUX={type:3,value:"LUX"},ft.METRE={type:3,value:"METRE"},ft.MOLE={type:3,value:"MOLE"},ft.NEWTON={type:3,value:"NEWTON"},ft.OHM={type:3,value:"OHM"},ft.PASCAL={type:3,value:"PASCAL"},ft.RADIAN={type:3,value:"RADIAN"},ft.SECOND={type:3,value:"SECOND"},ft.SIEMENS={type:3,value:"SIEMENS"},ft.SIEVERT={type:3,value:"SIEVERT"},ft.SQUARE_METRE={type:3,value:"SQUARE_METRE"},ft.STERADIAN={type:3,value:"STERADIAN"},ft.TESLA={type:3,value:"TESLA"},ft.VOLT={type:3,value:"VOLT"},ft.WATT={type:3,value:"WATT"},ft.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=ft;class It{}It.BATH={type:3,value:"BATH"},It.BIDET={type:3,value:"BIDET"},It.CISTERN={type:3,value:"CISTERN"},It.SHOWER={type:3,value:"SHOWER"},It.SINK={type:3,value:"SINK"},It.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},It.TOILETPAN={type:3,value:"TOILETPAN"},It.URINAL={type:3,value:"URINAL"},It.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},It.WCSEAT={type:3,value:"WCSEAT"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=It;class yt{}yt.UNIFORM={type:3,value:"UNIFORM"},yt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=yt;class mt{}mt.CO2SENSOR={type:3,value:"CO2SENSOR"},mt.FIRESENSOR={type:3,value:"FIRESENSOR"},mt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},mt.GASSENSOR={type:3,value:"GASSENSOR"},mt.HEATSENSOR={type:3,value:"HEATSENSOR"},mt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},mt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},mt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},mt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},mt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},mt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},mt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},mt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=mt;class vt{}vt.START_START={type:3,value:"START_START"},vt.START_FINISH={type:3,value:"START_FINISH"},vt.FINISH_START={type:3,value:"FINISH_START"},vt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=vt;class wt{}wt.A_QUALITYOFCOMPONENTS={type:3,value:"A_QUALITYOFCOMPONENTS"},wt.B_DESIGNLEVEL={type:3,value:"B_DESIGNLEVEL"},wt.C_WORKEXECUTIONLEVEL={type:3,value:"C_WORKEXECUTIONLEVEL"},wt.D_INDOORENVIRONMENT={type:3,value:"D_INDOORENVIRONMENT"},wt.E_OUTDOORENVIRONMENT={type:3,value:"E_OUTDOORENVIRONMENT"},wt.F_INUSECONDITIONS={type:3,value:"F_INUSECONDITIONS"},wt.G_MAINTENANCELEVEL={type:3,value:"G_MAINTENANCELEVEL"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcServiceLifeFactorTypeEnum=wt;class gt{}gt.ACTUALSERVICELIFE={type:3,value:"ACTUALSERVICELIFE"},gt.EXPECTEDSERVICELIFE={type:3,value:"EXPECTEDSERVICELIFE"},gt.OPTIMISTICREFERENCESERVICELIFE={type:3,value:"OPTIMISTICREFERENCESERVICELIFE"},gt.PESSIMISTICREFERENCESERVICELIFE={type:3,value:"PESSIMISTICREFERENCESERVICELIFE"},gt.REFERENCESERVICELIFE={type:3,value:"REFERENCESERVICELIFE"},e.IfcServiceLifeTypeEnum=gt;class Et{}Et.FLOOR={type:3,value:"FLOOR"},Et.ROOF={type:3,value:"ROOF"},Et.LANDING={type:3,value:"LANDING"},Et.BASESLAB={type:3,value:"BASESLAB"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Et;class Tt{}Tt.DBA={type:3,value:"DBA"},Tt.DBB={type:3,value:"DBB"},Tt.DBC={type:3,value:"DBC"},Tt.NC={type:3,value:"NC"},Tt.NR={type:3,value:"NR"},Tt.USERDEFINED={type:3,value:"USERDEFINED"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSoundScaleEnum=Tt;class bt{}bt.SECTIONALRADIATOR={type:3,value:"SECTIONALRADIATOR"},bt.PANELRADIATOR={type:3,value:"PANELRADIATOR"},bt.TUBULARRADIATOR={type:3,value:"TUBULARRADIATOR"},bt.CONVECTOR={type:3,value:"CONVECTOR"},bt.BASEBOARDHEATER={type:3,value:"BASEBOARDHEATER"},bt.FINNEDTUBEUNIT={type:3,value:"FINNEDTUBEUNIT"},bt.UNITHEATER={type:3,value:"UNITHEATER"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=bt;class Dt{}Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Dt;class Pt{}Pt.BIRDCAGE={type:3,value:"BIRDCAGE"},Pt.COWL={type:3,value:"COWL"},Pt.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=Pt;class Rt{}Rt.STRAIGHT={type:3,value:"STRAIGHT"},Rt.WINDER={type:3,value:"WINDER"},Rt.SPIRAL={type:3,value:"SPIRAL"},Rt.CURVED={type:3,value:"CURVED"},Rt.FREEFORM={type:3,value:"FREEFORM"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Rt;class Ct{}Ct.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},Ct.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},Ct.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},Ct.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},Ct.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},Ct.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},Ct.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},Ct.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},Ct.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},Ct.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},Ct.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},Ct.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},Ct.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},Ct.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=Ct;class _t{}_t.READWRITE={type:3,value:"READWRITE"},_t.READONLY={type:3,value:"READONLY"},_t.LOCKED={type:3,value:"LOCKED"},_t.READWRITELOCKED={type:3,value:"READWRITELOCKED"},_t.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=_t;class Bt{}Bt.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},Bt.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},Bt.CABLE={type:3,value:"CABLE"},Bt.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},Bt.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveTypeEnum=Bt;class Ot{}Ot.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Ot.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Ot.SHELL={type:3,value:"SHELL"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceTypeEnum=Ot;class St{}St.POSITIVE={type:3,value:"POSITIVE"},St.NEGATIVE={type:3,value:"NEGATIVE"},St.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=St;class Nt{}Nt.BUMP={type:3,value:"BUMP"},Nt.OPACITY={type:3,value:"OPACITY"},Nt.REFLECTION={type:3,value:"REFLECTION"},Nt.SELFILLUMINATION={type:3,value:"SELFILLUMINATION"},Nt.SHININESS={type:3,value:"SHININESS"},Nt.SPECULAR={type:3,value:"SPECULAR"},Nt.TEXTURE={type:3,value:"TEXTURE"},Nt.TRANSPARENCYMAP={type:3,value:"TRANSPARENCYMAP"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceTextureEnum=Nt;class xt{}xt.CONTACTOR={type:3,value:"CONTACTOR"},xt.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},xt.STARTER={type:3,value:"STARTER"},xt.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},xt.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=xt;class Lt{}Lt.PREFORMED={type:3,value:"PREFORMED"},Lt.SECTIONAL={type:3,value:"SECTIONAL"},Lt.EXPANSION={type:3,value:"EXPANSION"},Lt.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Lt;class Mt{}Mt.STRAND={type:3,value:"STRAND"},Mt.WIRE={type:3,value:"WIRE"},Mt.BAR={type:3,value:"BAR"},Mt.COATED={type:3,value:"COATED"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Mt;class Ft{}Ft.LEFT={type:3,value:"LEFT"},Ft.RIGHT={type:3,value:"RIGHT"},Ft.UP={type:3,value:"UP"},Ft.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Ft;class Ht{}Ht.PEOPLE={type:3,value:"PEOPLE"},Ht.LIGHTING={type:3,value:"LIGHTING"},Ht.EQUIPMENT={type:3,value:"EQUIPMENT"},Ht.VENTILATIONINDOORAIR={type:3,value:"VENTILATIONINDOORAIR"},Ht.VENTILATIONOUTSIDEAIR={type:3,value:"VENTILATIONOUTSIDEAIR"},Ht.RECIRCULATEDAIR={type:3,value:"RECIRCULATEDAIR"},Ht.EXHAUSTAIR={type:3,value:"EXHAUSTAIR"},Ht.AIREXCHANGERATE={type:3,value:"AIREXCHANGERATE"},Ht.DRYBULBTEMPERATURE={type:3,value:"DRYBULBTEMPERATURE"},Ht.RELATIVEHUMIDITY={type:3,value:"RELATIVEHUMIDITY"},Ht.INFILTRATION={type:3,value:"INFILTRATION"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadSourceEnum=Ht;class Ut{}Ut.SENSIBLE={type:3,value:"SENSIBLE"},Ut.LATENT={type:3,value:"LATENT"},Ut.RADIANT={type:3,value:"RADIANT"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadTypeEnum=Ut;class Gt{}Gt.CONTINUOUS={type:3,value:"CONTINUOUS"},Gt.DISCRETE={type:3,value:"DISCRETE"},Gt.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Gt.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Gt.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Gt.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=Gt;class jt{}jt.ANNUAL={type:3,value:"ANNUAL"},jt.MONTHLY={type:3,value:"MONTHLY"},jt.WEEKLY={type:3,value:"WEEKLY"},jt.DAILY={type:3,value:"DAILY"},jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesScheduleTypeEnum=jt;class Vt{}Vt.CURRENT={type:3,value:"CURRENT"},Vt.FREQUENCY={type:3,value:"FREQUENCY"},Vt.VOLTAGE={type:3,value:"VOLTAGE"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=Vt;class kt{}kt.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},kt.CONTINUOUS={type:3,value:"CONTINUOUS"},kt.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},kt.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=kt;class Qt{}Qt.ELEVATOR={type:3,value:"ELEVATOR"},Qt.ESCALATOR={type:3,value:"ESCALATOR"},Qt.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},Qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Qt;class Wt{}Wt.CARTESIAN={type:3,value:"CARTESIAN"},Wt.PARAMETER={type:3,value:"PARAMETER"},Wt.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Wt;class zt{}zt.FINNED={type:3,value:"FINNED"},zt.USERDEFINED={type:3,value:"USERDEFINED"},zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=zt;class Kt{}Kt.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Kt.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Kt.AREAUNIT={type:3,value:"AREAUNIT"},Kt.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Kt.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Kt.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Kt.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Kt.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Kt.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Kt.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Kt.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Kt.FORCEUNIT={type:3,value:"FORCEUNIT"},Kt.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Kt.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Kt.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Kt.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Kt.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Kt.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Kt.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Kt.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Kt.MASSUNIT={type:3,value:"MASSUNIT"},Kt.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Kt.POWERUNIT={type:3,value:"POWERUNIT"},Kt.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Kt.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Kt.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Kt.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Kt.TIMEUNIT={type:3,value:"TIMEUNIT"},Kt.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Kt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Kt;class Yt{}Yt.AIRHANDLER={type:3,value:"AIRHANDLER"},Yt.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Yt.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Yt.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=Yt;class Xt{}Xt.AIRRELEASE={type:3,value:"AIRRELEASE"},Xt.ANTIVACUUM={type:3,value:"ANTIVACUUM"},Xt.CHANGEOVER={type:3,value:"CHANGEOVER"},Xt.CHECK={type:3,value:"CHECK"},Xt.COMMISSIONING={type:3,value:"COMMISSIONING"},Xt.DIVERTING={type:3,value:"DIVERTING"},Xt.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},Xt.DOUBLECHECK={type:3,value:"DOUBLECHECK"},Xt.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},Xt.FAUCET={type:3,value:"FAUCET"},Xt.FLUSHING={type:3,value:"FLUSHING"},Xt.GASCOCK={type:3,value:"GASCOCK"},Xt.GASTAP={type:3,value:"GASTAP"},Xt.ISOLATING={type:3,value:"ISOLATING"},Xt.MIXING={type:3,value:"MIXING"},Xt.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},Xt.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},Xt.REGULATING={type:3,value:"REGULATING"},Xt.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},Xt.STEAMTRAP={type:3,value:"STEAMTRAP"},Xt.STOPCOCK={type:3,value:"STOPCOCK"},Xt.USERDEFINED={type:3,value:"USERDEFINED"},Xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=Xt;class qt{}qt.COMPRESSION={type:3,value:"COMPRESSION"},qt.SPRING={type:3,value:"SPRING"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=qt;class Jt{}Jt.STANDARD={type:3,value:"STANDARD"},Jt.POLYGONAL={type:3,value:"POLYGONAL"},Jt.SHEAR={type:3,value:"SHEAR"},Jt.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Jt.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Jt;class Zt{}Zt.FLOORTRAP={type:3,value:"FLOORTRAP"},Zt.FLOORWASTE={type:3,value:"FLOORWASTE"},Zt.GULLYSUMP={type:3,value:"GULLYSUMP"},Zt.GULLYTRAP={type:3,value:"GULLYTRAP"},Zt.GREASEINTERCEPTOR={type:3,value:"GREASEINTERCEPTOR"},Zt.OILINTERCEPTOR={type:3,value:"OILINTERCEPTOR"},Zt.PETROLINTERCEPTOR={type:3,value:"PETROLINTERCEPTOR"},Zt.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Zt.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Zt.WASTETRAP={type:3,value:"WASTETRAP"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Zt;class $t{}$t.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},$t.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},$t.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},$t.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},$t.TOPHUNG={type:3,value:"TOPHUNG"},$t.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},$t.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},$t.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},$t.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},$t.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},$t.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},$t.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},$t.OTHEROPERATION={type:3,value:"OTHEROPERATION"},$t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=$t;class es{}es.LEFT={type:3,value:"LEFT"},es.MIDDLE={type:3,value:"MIDDLE"},es.RIGHT={type:3,value:"RIGHT"},es.BOTTOM={type:3,value:"BOTTOM"},es.TOP={type:3,value:"TOP"},es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=es;class ts{}ts.ALUMINIUM={type:3,value:"ALUMINIUM"},ts.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ts.STEEL={type:3,value:"STEEL"},ts.WOOD={type:3,value:"WOOD"},ts.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ts.PLASTIC={type:3,value:"PLASTIC"},ts.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=ts;class ss{}ss.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},ss.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},ss.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},ss.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},ss.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},ss.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},ss.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},ss.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},ss.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},ss.USERDEFINED={type:3,value:"USERDEFINED"},ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=ss;class ns{}ns.ACTUAL={type:3,value:"ACTUAL"},ns.BASELINE={type:3,value:"BASELINE"},ns.PLANNED={type:3,value:"PLANNED"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkControlTypeEnum=ns;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class is extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=is;e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class as extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.type=411424972}}e.IfcAppliedValue=as;e.IfcAppliedValueRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ComponentOfTotal=t,this.Components=s,this.ArithmeticOperator=n,this.Name=i,this.Description=a,this.type=1110488051}};e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Description=t,this.ApprovalDateTime=s,this.ApprovalStatus=n,this.ApprovalLevel=i,this.ApprovalQualifier=a,this.Name=r,this.Identifier=l,this.type=130549933}};e.IfcApprovalActorRelationship=class extends Kb{constructor(e,t,s,n){super(e),this.Actor=t,this.Approval=s,this.Role=n,this.type=2080292479}};e.IfcApprovalPropertyRelationship=class extends Kb{constructor(e,t,s){super(e),this.ApprovedProperties=t,this.Approval=s,this.type=390851274}};e.IfcApprovalRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.RelatedApproval=t,this.RelatingApproval=s,this.Description=n,this.Name=i,this.type=3869604511}};class rs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=rs;e.IfcBoundaryEdgeCondition=class extends rs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearStiffnessByLengthX=s,this.LinearStiffnessByLengthY=n,this.LinearStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends rs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.LinearStiffnessByAreaX=s,this.LinearStiffnessByAreaY=n,this.LinearStiffnessByAreaZ=i,this.type=3367102660}};class ls extends rs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=n,this.LinearStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=ls;e.IfcBoundaryNodeConditionWarping=class extends ls{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=n,this.LinearStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};e.IfcCalendarDate=class extends Kb{constructor(e,t,s,n){super(e),this.DayComponent=t,this.MonthComponent=s,this.YearComponent=n,this.type=622194075}};e.IfcClassification=class extends Kb{constructor(e,t,s,n,i){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.type=747523909}};e.IfcClassificationItem=class extends Kb{constructor(e,t,s,n){super(e),this.Notation=t,this.ItemOf=s,this.Title=n,this.type=1767535486}};e.IfcClassificationItemRelationship=class extends Kb{constructor(e,t,s){super(e),this.RelatingItem=t,this.RelatedItems=s,this.type=1098599126}};e.IfcClassificationNotation=class extends Kb{constructor(e,t){super(e),this.NotationFacets=t,this.type=938368621}};e.IfcClassificationNotationFacet=class extends Kb{constructor(e,t){super(e),this.NotationValue=t,this.type=3639012971}};class os extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=os;class cs extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=cs;class us extends cs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=us;e.IfcConnectionPortGeometry=class extends cs{constructor(e,t,s,n){super(e),this.LocationAtRelatingElement=t,this.LocationAtRelatedElement=s,this.ProfileOfPort=n,this.type=4257277454}};e.IfcConnectionSurfaceGeometry=class extends cs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};class hs extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=hs;e.IfcConstraintAggregationRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedConstraints=i,this.LogicalAggregator=a,this.type=1658513725}};e.IfcConstraintClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.ClassifiedConstraint=t,this.RelatedClassifications=s,this.type=613356794}};e.IfcConstraintRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedConstraints=i,this.type=347226245}};e.IfcCoordinatedUniversalTimeOffset=class extends Kb{constructor(e,t,s,n){super(e),this.HourOffset=t,this.MinuteOffset=s,this.Sense=n,this.type=1065062679}};e.IfcCostValue=class extends as{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.CostType=l,this.Condition=o,this.type=602808272}};e.IfcCurrencyRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.RelatingMonetaryUnit=t,this.RelatedMonetaryUnit=s,this.ExchangeRate=n,this.RateDateTime=i,this.RateSource=a,this.type=539742890}};e.IfcCurveStyleFont=class extends Kb{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends Kb{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};e.IfcDateAndTime=class extends Kb{constructor(e,t,s){super(e),this.DateComponent=t,this.TimeComponent=s,this.type=1072939445}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};e.IfcDocumentElectronicFormat=class extends Kb{constructor(e,t,s,n){super(e),this.FileExtension=t,this.MimeContentType=s,this.MimeSubtype=n,this.type=1376555844}};e.IfcDocumentInformation=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.DocumentId=t,this.Name=s,this.Description=n,this.DocumentReferences=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends Kb{constructor(e,t,s,n){super(e),this.RelatingDocument=t,this.RelatedDocuments=s,this.RelationshipType=n,this.type=770865208}};class ps extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=3796139169}}e.IfcDraughtingCalloutRelationship=ps;e.IfcEnvironmentalImpactValue=class extends as{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.ImpactType=l,this.Category=o,this.UserDefinedCategory=c,this.type=1648886627}};class As extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=As;e.IfcExternallyDefinedHatchStyle=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedSymbol=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3207319532}};e.IfcExternallyDefinedTextFont=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.LibraryReference=a,this.type=2655187982}};e.IfcLibraryReference=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcLocalTime=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.HourComponent=t,this.MinuteComponent=s,this.SecondComponent=n,this.Zone=i,this.DaylightSavingOffset=a,this.type=30780891}};e.IfcMaterial=class extends Kb{constructor(e,t){super(e),this.Name=t,this.type=1838606355}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};e.IfcMaterialLayer=class extends Kb{constructor(e,t,s,n){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.type=248100487}};e.IfcMaterialLayerSet=class extends Kb{constructor(e,t,s){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.type=3303938423}};e.IfcMaterialLayerSetUsage=class extends Kb{constructor(e,t,s,n,i){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.type=1303795690}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ds extends Kb{constructor(e,t){super(e),this.Material=t,this.type=3265635763}}e.IfcMaterialProperties=ds;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};class fs extends ds{constructor(e,t,s,n,i,a,r){super(e,t),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.type=4256014907}}e.IfcMechanicalMaterialProperties=fs;e.IfcMechanicalSteelMaterialProperties=class extends fs{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.YieldStress=l,this.UltimateStress=o,this.UltimateStrain=c,this.HardeningModule=u,this.ProportionalStress=h,this.PlasticStrain=p,this.Relaxations=A,this.type=677618848}};e.IfcMetric=class extends hs{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Is extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Is;class ys extends Kb{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=ys;e.IfcObjective=class extends hs{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.ResultValues=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOpticalMaterialProperties=class extends ds{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t),this.Material=t,this.VisibleTransmittance=s,this.SolarTransmittance=n,this.ThermalIrTransmittance=i,this.ThermalIrEmissivityBack=a,this.ThermalIrEmissivityFront=r,this.VisibleReflectanceBack=l,this.VisibleReflectanceFront=o,this.SolarReflectanceFront=c,this.SolarReflectanceBack=u,this.type=1227763645}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Id=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOrganizationRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Id=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class ms extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=ms;class vs extends ms{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=vs;e.IfcPostalAddress=class extends is{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class ws extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=ws;class gs extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=990879717}}e.IfcPreDefinedSymbol=gs;e.IfcPreDefinedTerminatorSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=3213052703}};class Es extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=Es;class Ts extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=Ts;e.IfcPresentationLayerWithStyle=class extends Ts{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class bs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=bs;e.IfcPresentationStyleAssignment=class extends Kb{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class Ds extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=Ds;e.IfcProductsOfCombustionProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.N20Content=n,this.COContent=i,this.CO2Content=a,this.type=2267347899}};class Ps extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=Ps;class Rs extends Kb{constructor(e,t,s){super(e),this.ProfileName=t,this.ProfileDefinition=s,this.type=2802850158}}e.IfcProfileProperties=Rs;class Cs extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=Cs;e.IfcPropertyConstraintRelationship=class extends Kb{constructor(e,t,s,n,i){super(e),this.RelatingConstraint=t,this.RelatedProperties=s,this.Name=n,this.Description=i,this.type=3896028662}};e.IfcPropertyDependencyRelationship=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.DependingProperty=t,this.DependantProperty=s,this.Name=n,this.Description=i,this.Expression=a,this.type=148025276}};e.IfcPropertyEnumeration=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.type=2044713172}};e.IfcQuantityCount=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.type=2093928680}};e.IfcQuantityLength=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.type=931644368}};e.IfcQuantityTime=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.type=3252649465}};e.IfcQuantityVolume=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.type=2405470396}};e.IfcQuantityWeight=class extends vs{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.type=825690147}};e.IfcReferencesValueDocument=class extends Kb{constructor(e,t,s,n,i){super(e),this.ReferencedDocument=t,this.ReferencingValues=s,this.Name=n,this.Description=i,this.type=2692823254}};e.IfcReinforcementBarProperties=class extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};e.IfcRelaxation=class extends Kb{constructor(e,t,s){super(e),this.RelaxationValue=t,this.InitialStress=s,this.type=1222501353}};class _s extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=_s;class Bs extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=Bs;class Os extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=Os;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};e.IfcRibPlateProfileProperties=class extends Rs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.Thickness=n,this.RibHeight=i,this.RibWidth=a,this.RibSpacing=r,this.Direction=l,this.type=3679540991}};class Ss extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=Ss;e.IfcSIUnit=class extends Is{constructor(e,t,s,n){super(e,new zb(0),t),this.UnitType=t,this.Prefix=s,this.Name=n,this.type=448429030}};e.IfcSectionProperties=class extends Kb{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends Kb{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Ns extends _s{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Ns;e.IfcShapeRepresentation=class extends Ns{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class xs extends Cs{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=xs;class Ls extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Ls;class Ms extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Ms;class Fs extends Ms{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Fs;e.IfcStructuralLoadTemperature=class extends Fs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaT_Constant=s,this.DeltaT_Y=n,this.DeltaT_Z=i,this.type=3408363356}};class Hs extends _s{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=Hs;class Us extends Os{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}}e.IfcStyledItem=Us;e.IfcStyledRepresentation=class extends Hs{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceStyle=class extends bs{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends Kb{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends Kb{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Gs extends Kb{constructor(e,t){super(e),this.SurfaceColour=t,this.type=846575682}}e.IfcSurfaceStyleShading=Gs;e.IfcSurfaceStyleWithTextures=class extends Kb{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class js extends Kb{constructor(e,t,s,n,i){super(e),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.type=626085974}}e.IfcSurfaceTexture=js;e.IfcSymbolStyle=class extends bs{constructor(e,t,s){super(e,t),this.Name=t,this.StyleOfSymbol=s,this.type=1290481447}};e.IfcTable=class extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Rows=s,this.type=985171141}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};e.IfcTelecomAddress=class extends is{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.type=912023232}};e.IfcTextStyle=class extends bs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.type=1447204868}};e.IfcTextStyleFontModel=class extends Es{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTextStyleForDefinedFont=class extends Kb{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};e.IfcTextStyleWithBoxCharacteristics=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.BoxHeight=t,this.BoxWidth=s,this.BoxSlantAngle=n,this.BoxRotateAngle=i,this.CharacterSpacing=a,this.type=1484833681}};class Vs extends Kb{constructor(e){super(e),this.type=280115917}}e.IfcTextureCoordinate=Vs;e.IfcTextureCoordinateGenerator=class extends Vs{constructor(e,t,s){super(e),this.Mode=t,this.Parameter=s,this.type=1742049831}};e.IfcTextureMap=class extends Vs{constructor(e,t){super(e),this.TextureMaps=t,this.type=2552916305}};e.IfcTextureVertex=class extends Kb{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcThermalMaterialProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.BoilingPoint=n,this.FreezingPoint=i,this.ThermalConductivity=a,this.type=3317419933}};class ks extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=ks;e.IfcTimeSeriesReferenceRelationship=class extends Kb{constructor(e,t,s){super(e),this.ReferencedTimeSeries=t,this.TimeSeriesReferences=s,this.type=1718945513}};e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Qs extends Os{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Qs;e.IfcTopologyRepresentation=class extends Ns{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Ws extends Qs{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Ws;e.IfcVertexBasedTextureMap=class extends Kb{constructor(e,t,s){super(e),this.TextureVertices=t,this.TexturePoints=s,this.type=3304826586}};e.IfcVertexPoint=class extends Ws{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWaterProperties=class extends ds{constructor(e,t,s,n,i,a,r,l,o){super(e,t),this.Material=t,this.IsPotable=s,this.Hardness=n,this.AlkalinityConcentration=i,this.AcidityConcentration=a,this.ImpuritiesContent=r,this.PHLevel=l,this.DissolvedSolidsContent=o,this.type=1065908215}};class zs extends Us{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=2442683028}}e.IfcAnnotationOccurrence=zs;e.IfcAnnotationSurfaceOccurrence=class extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=962685235}};class Ks extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=3612888222}}e.IfcAnnotationSymbolOccurrence=Ks;e.IfcAnnotationTextOccurrence=class extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=2297822566}};class Ys extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ys;class Xs extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Xs;e.IfcArbitraryProfileDefWithVoids=class extends Ys{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends js{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.RasterFormat=a,this.RasterCode=r,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Xs{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassificationReference=class extends As{constructor(e,t,s,n,i){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.ReferencedSource=i,this.type=647927063}};e.IfcColourRgb=class extends os{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends Cs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};e.IfcCompositeProfileDef=class extends Ps{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class qs extends Qs{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=qs;e.IfcConnectionCurveGeometry=class extends cs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends us{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends Is{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};e.IfcConversionBasedUnit=class extends Is{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}};e.IfcCurveStyle=class extends bs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.type=3800577675}};e.IfcDerivedProfileDef=class extends Ps{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}};e.IfcDimensionCalloutRelationship=class extends ps{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=2273265877}};e.IfcDimensionPair=class extends ps{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=n,this.RelatedDraughtingCallout=i,this.type=1694125774}};e.IfcDocumentReference=class extends As{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.ItemReference=s,this.Name=n,this.type=3732053477}};e.IfcDraughtingPreDefinedTextFont=class extends Es{constructor(e,t){super(e,t),this.Name=t,this.type=4170525392}};class Js extends Qs{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Js;e.IfcEdgeCurve=class extends Js{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcExtendedMaterialProperties=class extends ds{constructor(e,t,s,n,i){super(e,t),this.Material=t,this.ExtendedProperties=s,this.Description=n,this.Name=i,this.type=1860660968}};class Zs extends Qs{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Zs;class $s extends Qs{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=$s;e.IfcFaceOuterBound=class extends $s{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};e.IfcFaceSurface=class extends Zs{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}};e.IfcFailureConnectionCondition=class extends Ls{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends bs{constructor(e,t,s){super(e,t),this.Name=t,this.FillStyles=s,this.type=738692330}};e.IfcFuelProperties=class extends ds{constructor(e,t,s,n,i,a){super(e,t),this.Material=t,this.CombustionTemperature=s,this.CarbonContent=n,this.LowerHeatingValue=i,this.HigherHeatingValue=a,this.type=3857492461}};e.IfcGeneralMaterialProperties=class extends ds{constructor(e,t,s,n,i){super(e,t),this.Material=t,this.MolecularWeight=s,this.Porosity=n,this.MassDensity=i,this.type=803998398}};class en extends Rs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.type=1446786286}}e.IfcGeneralProfileProperties=en;class tn extends Bs{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=tn;class sn extends Os{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=sn;e.IfcGeometricRepresentationSubContext=class extends tn{constructor(e,s,n,i,a,r,l){super(e,s,n,new t(0),null,new zb(0),null),this.ContextIdentifier=s,this.ContextType=n,this.ParentContext=i,this.TargetScale=a,this.TargetView=r,this.UserDefinedTargetView=l,this.type=4142052618}};class nn extends sn{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=nn;e.IfcGridPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class an extends sn{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=an;e.IfcHygroscopicMaterialProperties=class extends ds{constructor(e,t,s,n,i,a,r){super(e,t),this.Material=t,this.UpperVaporResistanceFactor=s,this.LowerVaporResistanceFactor=n,this.IsothermalMoistureCapacity=i,this.VaporPermeability=a,this.MoistureDiffusivity=r,this.type=2445078500}};e.IfcImageTexture=class extends js{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.UrlReference=a,this.type=3905492369}};e.IfcIrregularTimeSeries=class extends ks{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};class rn extends sn{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=rn;e.IfcLightSourceAmbient=class extends rn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends rn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends rn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class ln extends rn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=ln;e.IfcLightSourceSpot=class extends ln{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLocalPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class on extends Qs{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=on;e.IfcMappedItem=class extends Os{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterialDefinitionRepresentation=class extends Ds{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMechanicalConcreteMaterialProperties=class extends fs{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=n,this.ShearModulus=i,this.PoissonRatio=a,this.ThermalExpansionCoefficient=r,this.CompressiveStrength=l,this.MaxAggregateSize=o,this.AdmixturesDescription=c,this.Workability=u,this.ProtectivePoreRatio=h,this.WaterImpermeability=p,this.type=1430189142}};class cn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=cn;class un extends sn{constructor(e,t){super(e),this.RepeatFactor=t,this.type=2833995503}}e.IfcOneDirectionRepeatFactor=un;e.IfcOpenShell=class extends qs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrientedEdge=class extends Js{constructor(e,t,s){super(e,new zb(0),new zb(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class hn extends Ps{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=hn;e.IfcPath=class extends Qs{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends ms{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends js{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.RepeatS=t,this.RepeatT=s,this.TextureType=n,this.TextureTransform=i,this.Width=a,this.Height=r,this.ColourComponents=l,this.Pixel=o,this.type=597895409}};class pn extends sn{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=pn;class An extends sn{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=An;class dn extends sn{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=dn;e.IfcPointOnCurve=class extends dn{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends dn{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends on{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends an{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class fn extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=fn;class In extends ws{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=In;e.IfcPreDefinedDimensionSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=433424934}};e.IfcPreDefinedPointMarkerSymbol=class extends gs{constructor(e,t){super(e,t),this.Name=t,this.type=179317114}};e.IfcProductDefinitionShape=class extends Ds{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcPropertyBoundedValue=class extends xs{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.type=871118103}};class yn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=yn;e.IfcPropertyEnumeratedValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};class mn extends yn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=mn;e.IfcPropertySingleValue=class extends xs{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends xs{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.type=110355661}};class vn extends hn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=vn;e.IfcRegularTimeSeries=class extends ks{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementDefinitionProperties=class extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class wn extends Ss{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=wn;e.IfcRoundedRectangleProfileDef=class extends vn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionedSpine=class extends sn{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};e.IfcServiceLifeFactor=class extends mn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PredefinedType=a,this.UpperValue=r,this.MostUsedValue=l,this.LowerValue=o,this.type=2411513650}};e.IfcShellBasedSurfaceModel=class extends sn{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};e.IfcSlippageConnectionCondition=class extends Ls{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class gn extends sn{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=gn;e.IfcSoundProperties=class extends mn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.IsAttenuating=a,this.SoundScale=r,this.SoundValues=l,this.type=2485662743}};e.IfcSoundValue=class extends mn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.SoundLevelTimeSeries=a,this.Frequency=r,this.SoundLevelSingleValue=l,this.type=1202362311}};e.IfcSpaceThermalLoadProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableValueRatio=a,this.ThermalLoadSource=r,this.PropertySource=l,this.SourceDescription=o,this.MaximumValue=c,this.MinimumValue=u,this.ThermalLoadTimeSeriesValues=h,this.UserDefinedThermalLoadSource=p,this.UserDefinedPropertySource=A,this.ThermalLoadType=d,this.type=390701378}};e.IfcStructuralLoadLinearForce=class extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Fs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class En extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=En;e.IfcStructuralLoadSingleDisplacementDistortion=class extends En{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class Tn extends Fs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Tn;e.IfcStructuralLoadSingleForceWarping=class extends Tn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};class bn extends en{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T){super(e,t,s,n,i,a,r,l),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.TorsionalConstantX=o,this.MomentOfInertiaYZ=c,this.MomentOfInertiaY=u,this.MomentOfInertiaZ=h,this.WarpingConstant=p,this.ShearCentreZ=A,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=I,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=m,this.MaximumSectionModulusZ=v,this.MinimumSectionModulusZ=w,this.TorsionalSectionModulus=g,this.CentreOfGravityInX=E,this.CentreOfGravityInY=T,this.type=3843319758}}e.IfcStructuralProfileProperties=bn;e.IfcStructuralSteelProfileProperties=class extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T,b,D,P,R){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=n,this.Perimeter=i,this.MinimumPlateThickness=a,this.MaximumPlateThickness=r,this.CrossSectionArea=l,this.TorsionalConstantX=o,this.MomentOfInertiaYZ=c,this.MomentOfInertiaY=u,this.MomentOfInertiaZ=h,this.WarpingConstant=p,this.ShearCentreZ=A,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=I,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=m,this.MaximumSectionModulusZ=v,this.MinimumSectionModulusZ=w,this.TorsionalSectionModulus=g,this.CentreOfGravityInX=E,this.CentreOfGravityInY=T,this.ShearAreaZ=b,this.ShearAreaY=D,this.PlasticShapeFactorY=P,this.PlasticShapeFactorZ=R,this.type=3653947884}};e.IfcSubedge=class extends Js{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Dn extends sn{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Dn;e.IfcSurfaceStyleRendering=class extends Gs{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class Pn extends gn{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=Pn;e.IfcSweptDiskSolid=class extends gn{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}};class Rn extends Dn{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Rn;e.IfcTShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.CentreOfGravityInY=A,this.type=3071757647}};class Cn extends Ks{constructor(e,t,s,n,i){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.AnnotatedCurve=i,this.type=3028897424}}e.IfcTerminatorSymbol=Cn;class _n extends sn{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=_n;e.IfcTextLiteralWithExtent=class extends _n{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTrapeziumProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};e.IfcTwoDirectionRepeatFactor=class extends un{constructor(e,t,s){super(e,t),this.RepeatFactor=t,this.SecondRepeatFactor=s,this.type=1345879162}};class Bn extends cn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=Bn;class On extends Bn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=On;e.IfcUShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.CentreOfGravityInX=h,this.type=427810014}};e.IfcVector=class extends sn{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends on{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowLiningProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.type=336235671}};e.IfcWindowPanelProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};e.IfcWindowStyle=class extends On{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ConstructionType=c,this.OperationType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=1299126871}};e.IfcZShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};class Sn extends zs{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=3288037868}}e.IfcAnnotationCurveOccurrence=Sn;e.IfcAnnotationFillArea=class extends sn{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAnnotationFillAreaOccurrence=class extends zs{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.FillStyleTarget=i,this.GlobalOrLocal=a,this.type=2265737646}};e.IfcAnnotationSurface=class extends sn{constructor(e,t,s){super(e),this.Item=t,this.TextureCoordinates=s,this.type=1302238472}};e.IfcAxis1Placement=class extends pn{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends pn{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends pn{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};class Nn extends sn{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Nn;class xn extends Dn{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=xn;e.IfcBoundingBox=class extends sn{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends an{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.CentreOfGravityInX=c,this.type=2898889636}};e.IfcCartesianPoint=class extends dn{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Ln extends sn{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Ln;class Mn extends Ln{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Mn;e.IfcCartesianTransformationOperator2DnonUniform=class extends Mn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Fn extends Ln{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Fn;e.IfcCartesianTransformationOperator3DnonUniform=class extends Fn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class Hn extends hn{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=Hn;e.IfcClosedShell=class extends qs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcCompositeCurveSegment=class extends sn{constructor(e,t,s,n){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}};e.IfcCraneRailAShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallHeight=i,this.BaseWidth2=a,this.Radius=r,this.HeadWidth=l,this.HeadDepth2=o,this.HeadDepth3=c,this.WebThickness=u,this.BaseWidth4=h,this.BaseDepth1=p,this.BaseDepth2=A,this.BaseDepth3=d,this.CentreOfGravityInY=f,this.type=4133800736}};e.IfcCraneRailFShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallHeight=i,this.HeadWidth=a,this.Radius=r,this.HeadDepth2=l,this.HeadDepth3=o,this.WebThickness=c,this.BaseDepth1=u,this.BaseDepth2=h,this.CentreOfGravityInY=p,this.type=194851669}};class Un extends sn{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Un;e.IfcCsgSolid=class extends gn{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Gn extends sn{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Gn;e.IfcCurveBoundedPlane=class extends xn{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcDefinedSymbol=class extends sn{constructor(e,t,s){super(e),this.Definition=t,this.Target=s,this.type=693772133}};e.IfcDimensionCurve=class extends Sn{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=606661476}};e.IfcDimensionCurveTerminator=class extends Cn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Item=t,this.Styles=s,this.Name=n,this.AnnotatedCurve=i,this.Role=a,this.type=4054601972}};e.IfcDirection=class extends sn{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorLiningProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.type=2963535650}};e.IfcDoorPanelProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorStyle=class extends On{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.OperationType=c,this.ConstructionType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=526551008}};class jn extends sn{constructor(e,t){super(e),this.Contents=t,this.type=3073041342}}e.IfcDraughtingCallout=jn;e.IfcDraughtingPreDefinedColour=class extends fn{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends In{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};e.IfcEdgeLoop=class extends on{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Vn extends On{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Vn;class kn extends Dn{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=kn;e.IfcEllipseProfileDef=class extends hn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};class Qn extends mn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.EnergySequence=a,this.UserDefinedEnergySequence=r,this.type=80994333}}e.IfcEnergyProperties=Qn;e.IfcExtrudedAreaSolid=class extends Pn{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}};e.IfcFaceBasedSurfaceModel=class extends sn{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends sn{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTileSymbolWithStyle=class extends sn{constructor(e,t){super(e),this.Symbol=t,this.type=4203026998}};e.IfcFillAreaStyleTiles=class extends sn{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};e.IfcFluidFlowProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PropertySource=a,this.FlowConditionTimeSeries=r,this.VelocityTimeSeries=l,this.FlowrateTimeSeries=o,this.Fluid=c,this.PressureTimeSeries=u,this.UserDefinedPropertySource=h,this.TemperatureSingleValue=p,this.WetBulbTemperatureSingleValue=A,this.WetBulbTemperatureTimeSeries=d,this.TemperatureTimeSeries=f,this.FlowrateSingleValue=I,this.FlowConditionSingleValue=y,this.VelocitySingleValue=m,this.PressureSingleValue=v,this.type=3455213021}};class Wn extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Wn;e.IfcFurnitureType=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.type=1268542332}};e.IfcGeometricCurveSet=class extends nn{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};class zn extends hn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.type=1484403080}}e.IfcIShapeProfileDef=zn;e.IfcLShapeProfileDef=class extends hn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.CentreOfGravityInX=u,this.CentreOfGravityInY=h,this.type=572779678}};e.IfcLine=class extends Gn{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Kn extends gn{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Kn;class Yn extends cn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=Yn;e.IfcOffsetCurve2D=class extends Gn{constructor(e,t,s,n){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Gn{constructor(e,t,s,n,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcPermeableCoveringProperties=class extends mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPlanarBox=class extends An{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends kn{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Xn extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2945172077}}e.IfcProcess=Xn;class qn extends Yn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=qn;e.IfcProject=class extends Yn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectionCurve=class extends Sn{constructor(e,t,s,n){super(e,t,s,n),this.Item=t,this.Styles=s,this.Name=n,this.type=4194566429}};e.IfcPropertySet=class extends mn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcProxy=class extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.ProxyType=o,this.Tag=c,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends vn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends Un{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends xn{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};class Jn extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=Jn;class Zn extends Jn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}}e.IfcRelAssignsToActor=Zn;class $n extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}}e.IfcRelAssignsToControl=$n;e.IfcRelAssignsToGroup=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}};e.IfcRelAssignsToProcess=class extends Jn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToProjectOrder=class extends $n{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=3372526763}};e.IfcRelAssignsToResource=class extends Jn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class ei extends wn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=ei;e.IfcRelAssociatesAppliedValue=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingAppliedValue=r,this.type=1327628568}};e.IfcRelAssociatesApproval=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};e.IfcRelAssociatesProfileProperties=class extends ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingProfileProperties=r,this.ProfileSectionLocation=l,this.ProfileOrientation=o,this.type=2851387026}};class ti extends wn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=ti;class si extends ti{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=si;e.IfcRelConnectsPathElements=class extends si{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends ti{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};e.IfcRelConnectsStructuralElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralMember=r,this.type=3912681535}};class ni extends ti{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=ni;e.IfcRelConnectsWithEccentricity=class extends ni{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends si{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedSpace=a,this.RelatedCoverings=r,this.type=2802773753}};class ii extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=2551354335}}e.IfcRelDecomposes=ii;class ai extends wn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=693640335}}e.IfcRelDefines=ai;class ri extends ai{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}}e.IfcRelDefinesByProperties=ri;e.IfcRelDefinesByType=class extends ai{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInteractionRequirements=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DailyInteraction=a,this.ImportanceRating=r,this.LocationOfInteraction=l,this.RelatedSpaceProgram=o,this.RelatingSpaceProgram=c,this.type=4189434867}};e.IfcRelNests=class extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelOccupiesSpaces=class extends Zn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=2051452291}};e.IfcRelOverridesProperties=class extends ri{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.OverridingProperties=l,this.type=202636808}};e.IfcRelProjectsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSchedulesCostItems=class extends $n{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=1058617721}};e.IfcRelSequence=class extends ti{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.type=4122056220}};e.IfcRelServicesBuildings=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};e.IfcRelSpaceBoundary=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}};e.IfcRelVoidsElement=class extends ti{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};class li extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2914609552}}e.IfcResource=li;e.IfcRevolvedAreaSolid=class extends Pn{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}};e.IfcRightCircularCone=class extends Un{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Un{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};class oi extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=oi;class ci extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=ci;e.IfcSphere=class extends Un{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};class ui extends qn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=ui;class hi extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=hi;class pi extends hi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=pi;class Ai extends ui{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=Ai;class di extends pi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=di;e.IfcStructuralSurfaceMemberVarying=class extends di{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.SubsequentThickness=u,this.VaryingThicknessLocation=h,this.type=2218152070}};e.IfcStructuredDimensionCallout=class extends jn{constructor(e,t){super(e,t),this.Contents=t,this.type=4070609034}};e.IfcSurfaceCurveSweptAreaSolid=class extends Pn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Rn{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Rn{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1580310250}};class fi extends Xn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.type=3473067441}}e.IfcTask=fi;e.IfcTransportElementType=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};class Ii extends Yn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=Ii;e.IfcAnnotation=class extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1674181508}};e.IfcAsymmetricIShapeProfileDef=class extends zn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.CentreOfGravityInY=p,this.type=3207858831}};e.IfcBlock=class extends Un{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Nn{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class yi extends Gn{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=yi;e.IfcBuilding=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};class mi extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1950629157}}e.IfcBuildingElementType=mi;e.IfcBuildingStorey=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};e.IfcCircleHollowProfileDef=class extends Hn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcColumnType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};class vi extends yi{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=vi;class wi extends Gn{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=wi;class gi extends li{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=gi;class Ei extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3293443760}}e.IfcControl=Ei;e.IfcCostItem=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3895139033}};e.IfcCostSchedule=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.SubmittedBy=r,this.PreparedBy=l,this.SubmittedOn=o,this.Status=c,this.TargetUsers=u,this.UpdateDate=h,this.ID=p,this.PredefinedType=A,this.type=1419761937}};e.IfcCoveringType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=3295246426}};e.IfcCurtainWallType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};class Ti extends jn{constructor(e,t){super(e,t),this.Contents=t,this.type=681481545}}e.IfcDimensionCurveDirectedCallout=Ti;class bi extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=bi;class Di extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Di;e.IfcElectricalBaseProperties=class extends Qn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.EnergySequence=a,this.UserDefinedEnergySequence=r,this.ElectricCurrentType=l,this.InputVoltage=o,this.InputFrequency=c,this.FullLoadCurrent=u,this.MinimumCircuitCurrent=h,this.MaximumPowerInput=p,this.RatedPowerInput=A,this.InputPhase=d,this.type=360485395}};class Pi extends qn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Pi;e.IfcElementAssembly=class extends Pi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};class Ri extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=Ri;class Ci extends Vn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Ci;e.IfcEllipse=class extends wi{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class _i extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=_i;e.IfcEquipmentElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1962604670}};e.IfcEquipmentStandard=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3272907226}};e.IfcEvaporativeCoolerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcFacetedBrep=class extends Kn{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}};e.IfcFacetedBrepWithVoids=class extends Kn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Bi extends Ri{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=647756555}}e.IfcFastener=Bi;class Oi extends Ci{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2489546625}}e.IfcFastenerType=Oi;class Si extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=Si;class Ni extends Si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Ni;class xi extends Si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=xi;class Li extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Li;class Mi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=Mi;e.IfcFlowMeterType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Fi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Fi;class Hi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Hi;class Ui extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=Ui;class Gi extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=Gi;class ji extends Di{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=ji;e.IfcFurnishingElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}};e.IfcFurnitureStandard=class extends Ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=814719939}};e.IfcGasTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=200128114}};e.IfcGrid=class extends qn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.type=3009204131}};class Vi extends Yn{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=Vi;e.IfcHeatExchangerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcInventory=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.InventoryType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcLaborResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.SkillSet=u,this.type=3827777499}};e.IfcLampType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};e.IfcLinearDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=2506943328}};e.IfcMechanicalFastener=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2108223431}};e.IfcMemberType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMotorConnectionType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcMove=class extends fi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.MoveFrom=h,this.MoveTo=p,this.PunchList=A,this.type=1916936684}};e.IfcOccupant=class extends Ii{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};e.IfcOpeningElement=class extends xi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3588315303}};e.IfcOrderAction=class extends fi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TaskId=r,this.Status=l,this.WorkMethod=o,this.IsMilestone=c,this.Priority=u,this.ActionID=h,this.type=3425660407}};e.IfcOutletType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPerformanceHistory=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LifeCyclePhase=r,this.type=2382730787}};e.IfcPermit=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PermitID=r,this.type=3327091369}};e.IfcPipeFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolyline=class extends yi{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class ki extends qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=ki;e.IfcProcedure=class extends Xn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ProcedureID=r,this.ProcedureType=l,this.UserDefinedProcedureType=o,this.type=2744685151}};e.IfcProjectOrder=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ID=r,this.PredefinedType=l,this.Status=o,this.type=2904328755}};e.IfcProjectOrderRecord=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Records=r,this.PredefinedType=l,this.type=3642467123}};e.IfcProjectionElement=class extends Ni{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRadiusDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=3248260540}};e.IfcRailingType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRampFlightType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRelAggregates=class extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRelAssignsTasks=class extends $n{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.TimeForTask=o,this.type=2863920197}};e.IfcSanitaryTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcScheduleTimeControl=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g,E,T){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ActualStart=r,this.EarlyStart=l,this.LateStart=o,this.ScheduleStart=c,this.ActualFinish=u,this.EarlyFinish=h,this.LateFinish=p,this.ScheduleFinish=A,this.ScheduleDuration=d,this.ActualDuration=f,this.RemainingTime=I,this.FreeFloat=y,this.TotalFloat=m,this.IsCritical=v,this.StatusTime=w,this.StartFloat=g,this.FinishFloat=E,this.Completion=T,this.type=3517283431}};e.IfcServiceLife=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ServiceLifeType=r,this.ServiceLifeDuration=l,this.type=4105383287}};e.IfcSite=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSpace=class extends oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.InteriorOrExteriorSpace=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceProgram=class extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.SpaceProgramIdentifier=r,this.MaxRequiredArea=l,this.MinRequiredArea=o,this.RequestedLocation=c,this.StandardRequiredArea=u,this.type=652456506}};e.IfcSpaceType=class extends ci{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3812236995}};e.IfcStackTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};class Qi extends ui{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.type=682877961}}e.IfcStructuralAction=Qi;class Wi extends hi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=Wi;e.IfcStructuralCurveConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=4243806635}};class zi extends pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=214636428}}e.IfcStructuralCurveMember=zi;e.IfcStructuralCurveMemberVarying=class extends zi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=2445595289}};class Ki extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.type=1807405624}}e.IfcStructuralLinearAction=Ki;e.IfcStructuralLinearActionVarying=class extends Ki{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.VaryingAppliedLoadLocation=A,this.SubsequentAppliedLoads=d,this.type=1721250024}};e.IfcStructuralLoadGroup=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}};class Yi extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.type=1621171031}}e.IfcStructuralPlanarAction=Yi;e.IfcStructuralPlanarActionVarying=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.ProjectedOrTrue=p,this.VaryingAppliedLoadLocation=A,this.SubsequentAppliedLoads=d,this.type=3987759626}};e.IfcStructuralPointAction=class extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.CausedBy=h,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends Vi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};e.IfcStructuralSurfaceConnection=class extends Wi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.SubContractor=u,this.JobDescription=h,this.type=148013059}};e.IfcSwitchingDeviceType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class Xi extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=Xi;e.IfcTankType=class extends Ui{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTimeSeriesSchedule=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ApplicableDates=r,this.TimeSeriesScheduleType=l,this.TimeSeries=o,this.type=1637806684}};e.IfcTransformerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OperationType=c,this.CapacityByWeight=u,this.CapacityByNumber=h,this.type=1620046519}};e.IfcTrimmedCurve=class extends yi{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVirtualElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2769231204}};e.IfcWallType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};class qi extends Ei{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=1028945134}}e.IfcWorkControl=qi;e.IfcWorkPlan=class extends qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=4218914973}};e.IfcWorkSchedule=class extends qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identifier=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=3342526732}};e.IfcZone=class extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=1033361043}};e.Ifc2DCompositeCurve=class extends vi{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1213861670}};e.IfcActionRequest=class extends Ei{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.RequestID=r,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAngularDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=2470393545}};e.IfcAsset=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.AssetID=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};class Ji extends yi{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=Ji;e.IfcBeamType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};class Zi extends Ji{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1916977116}}e.IfcBezierCurve=Zi;e.IfcBoilerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class $i extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3299480353}}e.IfcBuildingElement=$i;class ea extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=52481810}}e.IfcBuildingElementComponent=ea;e.IfcBuildingElementPart=class extends ea{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2979338954}};e.IfcBuildingElementProxy=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.CompositionType=c,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcCableCarrierFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcChillerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcCircle=class extends wi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCoilType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};e.IfcColumn=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=843113511}};e.IfcCompressorType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcCondition=class extends Vi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2188551683}};e.IfcConditionCriterion=class extends Ei{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Criterion=r,this.CriterionDateTime=l,this.type=1163958913}};e.IfcConstructionEquipmentResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.Suppliers=u,this.UsageRatio=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ResourceIdentifier=r,this.ResourceGroup=l,this.ResourceConsumption=o,this.BaseQuantity=c,this.type=488727124}};e.IfcCooledBeamType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCovering=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3495092785}};e.IfcDamperType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};e.IfcDiameterDimension=class extends Ti{constructor(e,t){super(e,t),this.Contents=t,this.type=4147604152}};e.IfcDiscreteAccessory=class extends Ri{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1335981549}};class ta extends Ci{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2635815018}}e.IfcDiscreteAccessoryType=ta;e.IfcDistributionChamberElementType=class extends Di{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class sa extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=sa;class na extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=na;class ia extends na{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=ia;e.IfcDistributionPort=class extends ki{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.type=3041715199}};e.IfcDoor=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.type=395920057}};e.IfcDuctFittingType=class extends Mi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Hi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};class aa extends xi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.type=855621170}}e.IfcEdgeFeature=aa;e.IfcElectricApplianceType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricFlowStorageDeviceType=class extends Ui{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricGeneratorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricHeaterType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1365060375}};e.IfcElectricMotorType=class extends _i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Li{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};e.IfcElectricalCircuit=class extends Xi{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=1634875225}};e.IfcElectricalElement=class extends Pi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=857184966}};e.IfcEnergyConversionDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}};e.IfcFanType=class extends Fi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends Gi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class ra extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=ra;e.IfcFlowFitting=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}};e.IfcFlowInstrumentType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMovingDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}};e.IfcFlowSegment=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}};e.IfcFlowStorageDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}};e.IfcFlowTerminal=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}};e.IfcFlowTreatmentDevice=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}};e.IfcFooting=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};e.IfcMember=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1073191201}};e.IfcPile=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPlate=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3171933400}};e.IfcRailing=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=3024970846}};e.IfcRampFlight=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3283111854}};e.IfcRationalBezierCurve=class extends Zi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.WeightsData=r,this.type=3055160366}};class la extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=la;e.IfcReinforcingMesh=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.type=2320036040}};e.IfcRoof=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=2016517767}};e.IfcRoundedEdgeFeature=class extends aa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.Radius=u,this.type=1376911519}};e.IfcSensorType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcSlab=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}};e.IfcStair=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ShapeType=c,this.type=331165859}};e.IfcStairFlight=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRiser=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Xi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.type=2515109513}};e.IfcTendon=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=2347447852}};e.IfcVibrationIsolatorType=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};class oa extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2391406946}}e.IfcWall=oa;e.IfcWallStandardCase=class extends oa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3512223829}};e.IfcWindow=class extends $i{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.type=3304561284}};e.IfcActuatorType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAlarmType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcBeam=class extends $i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=753842376}};e.IfcChamferEdgeFeature=class extends aa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.FeatureLength=c,this.Width=u,this.Height=h,this.type=2454782716}};e.IfcControllerType=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcDistributionChamberElement=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1052013943}};e.IfcDistributionControlElement=class extends na{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.ControlElementId=c,this.type=1062813311}};e.IfcElectricDistributionPoint=class extends ra{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.DistributionPointFunction=c,this.UserDefinedFunction=u,this.type=3700593921}};e.IfcReinforcingBar=class extends la{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.BarRole=A,this.BarSurface=d,this.type=979691226}}}(cb||(cb={})),eD[2]="IFC4",Yb[2]={3630933823:(e,t)=>new ub.IfcActorRole(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null),618182010:(e,t)=>new ub.IfcAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),639542469:(e,t)=>new ub.IfcApplication(e,new zb(t[0].value),new ub.IfcLabel(t[1].value),new ub.IfcLabel(t[2].value),new ub.IfcIdentifier(t[3].value)),411424972:(e,t)=>new ub.IfcAppliedValue(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),130549933:(e,t)=>new ub.IfcApproval(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),4037036970:(e,t)=>new ub.IfcBoundaryCondition(e,t[0]?new ub.IfcLabel(t[0].value):null),1560379544:(e,t)=>new ub.IfcBoundaryEdgeCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null),3367102660:(e,t)=>new ub.IfcBoundaryFaceCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null),1387855156:(e,t)=>new ub.IfcBoundaryNodeCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null),2069777674:(e,t)=>new ub.IfcBoundaryNodeConditionWarping(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?tD(2,t[1]):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?tD(2,t[5]):null,t[6]?tD(2,t[6]):null,t[7]?tD(2,t[7]):null),2859738748:(e,t)=>new ub.IfcConnectionGeometry(e),2614616156:(e,t)=>new ub.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2732653382:(e,t)=>new ub.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),775493141:(e,t)=>new ub.IfcConnectionVolumeGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new ub.IfcConstraint(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null),1785450214:(e,t)=>new ub.IfcCoordinateOperation(e,new zb(t[0].value),new zb(t[1].value)),1466758467:(e,t)=>new ub.IfcCoordinateReferenceSystem(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new ub.IfcIdentifier(t[3].value):null),602808272:(e,t)=>new ub.IfcCostValue(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),1765591967:(e,t)=>new ub.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new ub.IfcLabel(t[2].value):null),1045800335:(e,t)=>new ub.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new ub.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),4294318154:(e,t)=>new ub.IfcExternalInformation(e),3200245327:(e,t)=>new ub.IfcExternalReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),2242383968:(e,t)=>new ub.IfcExternallyDefinedHatchStyle(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),1040185647:(e,t)=>new ub.IfcExternallyDefinedSurfaceStyle(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),3548104201:(e,t)=>new ub.IfcExternallyDefinedTextFont(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),852622518:(e,t)=>new ub.IfcGridAxis(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),new ub.IfcBoolean(t[2].value)),3020489413:(e,t)=>new ub.IfcIrregularTimeSeriesValue(e,new ub.IfcDateTime(t[0].value),t[1].map((e=>tD(2,e)))),2655187982:(e,t)=>new ub.IfcLibraryInformation(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcURIReference(t[4].value):null,t[5]?new ub.IfcText(t[5].value):null),3452421091:(e,t)=>new ub.IfcLibraryReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLanguageId(t[4].value):null,t[5]?new zb(t[5].value):null),4162380809:(e,t)=>new ub.IfcLightDistributionData(e,new ub.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new ub.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new ub.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new ub.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),3057273783:(e,t)=>new ub.IfcMapConversion(e,new zb(t[0].value),new zb(t[1].value),new ub.IfcLengthMeasure(t[2].value),new ub.IfcLengthMeasure(t[3].value),new ub.IfcLengthMeasure(t[4].value),t[5]?new ub.IfcReal(t[5].value):null,t[6]?new ub.IfcReal(t[6].value):null,t[7]?new ub.IfcReal(t[7].value):null),1847130766:(e,t)=>new ub.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),760658860:(e,t)=>new ub.IfcMaterialDefinition(e),248100487:(e,t)=>new ub.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new ub.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new ub.IfcLogical(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null),3303938423:(e,t)=>new ub.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null),1847252529:(e,t)=>new ub.IfcMaterialLayerWithOffsets(e,t[0]?new zb(t[0].value):null,new ub.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new ub.IfcLogical(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null,t[7],new ub.IfcLengthMeasure(t[8].value)),2199411900:(e,t)=>new ub.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),2235152071:(e,t)=>new ub.IfcMaterialProfile(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),164193824:(e,t)=>new ub.IfcMaterialProfileSet(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new zb(t[3].value):null),552965576:(e,t)=>new ub.IfcMaterialProfileWithOffsets(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,new ub.IfcLengthMeasure(t[6].value)),1507914824:(e,t)=>new ub.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new ub.IfcMeasureWithUnit(e,tD(2,t[0]),new zb(t[1].value)),3368373690:(e,t)=>new ub.IfcMetric(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),2706619895:(e,t)=>new ub.IfcMonetaryUnit(e,new ub.IfcLabel(t[0].value)),1918398963:(e,t)=>new ub.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new ub.IfcObjectPlacement(e),2251480897:(e,t)=>new ub.IfcObjective(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2],t[3]?new ub.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8],t[9],t[10]?new ub.IfcLabel(t[10].value):null),4251960020:(e,t)=>new ub.IfcOrganization(e,t[0]?new ub.IfcIdentifier(t[0].value):null,new ub.IfcLabel(t[1].value),t[2]?new ub.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1207048766:(e,t)=>new ub.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new ub.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new ub.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new ub.IfcPerson(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new ub.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new ub.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new ub.IfcPhysicalQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null),2226359599:(e,t)=>new ub.IfcPhysicalSimpleQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new ub.IfcPostalAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null),677532197:(e,t)=>new ub.IfcPresentationItem(e),2022622350:(e,t)=>new ub.IfcPresentationLayerAssignment(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new ub.IfcPresentationLayerWithStyle(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcIdentifier(t[3].value):null,new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new ub.IfcPresentationStyle(e,t[0]?new ub.IfcLabel(t[0].value):null),2417041796:(e,t)=>new ub.IfcPresentationStyleAssignment(e,t[0].map((e=>new zb(e.value)))),2095639259:(e,t)=>new ub.IfcProductRepresentation(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),3958567839:(e,t)=>new ub.IfcProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null),3843373140:(e,t)=>new ub.IfcProjectedCRS(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new ub.IfcIdentifier(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null),986844984:(e,t)=>new ub.IfcPropertyAbstraction(e),3710013099:(e,t)=>new ub.IfcPropertyEnumeration(e,new ub.IfcLabel(t[0].value),t[1].map((e=>tD(2,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new ub.IfcQuantityArea(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcAreaMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),2093928680:(e,t)=>new ub.IfcQuantityCount(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcCountMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),931644368:(e,t)=>new ub.IfcQuantityLength(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcLengthMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),3252649465:(e,t)=>new ub.IfcQuantityTime(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcTimeMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),2405470396:(e,t)=>new ub.IfcQuantityVolume(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcVolumeMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),825690147:(e,t)=>new ub.IfcQuantityWeight(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcMassMeasure(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),3915482550:(e,t)=>new ub.IfcRecurrencePattern(e,t[0],t[1]?t[1].map((e=>new ub.IfcDayInMonthNumber(e.value))):null,t[2]?t[2].map((e=>new ub.IfcDayInWeekNumber(e.value))):null,t[3]?t[3].map((e=>new ub.IfcMonthInYearNumber(e.value))):null,t[4]?new ub.IfcInteger(t[4].value):null,t[5]?new ub.IfcInteger(t[5].value):null,t[6]?new ub.IfcInteger(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null),2433181523:(e,t)=>new ub.IfcReference(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcInteger(e.value))):null,t[4]?new zb(t[4].value):null),1076942058:(e,t)=>new ub.IfcRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new ub.IfcRepresentationContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null),3008791417:(e,t)=>new ub.IfcRepresentationItem(e),1660063152:(e,t)=>new ub.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),2439245199:(e,t)=>new ub.IfcResourceLevelRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null),2341007311:(e,t)=>new ub.IfcRoot(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),448429030:(e,t)=>new ub.IfcSIUnit(e,t[0],t[1],t[2]),1054537805:(e,t)=>new ub.IfcSchedulingTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null),867548509:(e,t)=>new ub.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,new ub.IfcLogical(t[3].value),t[4]?new zb(t[4].value):null),3982875396:(e,t)=>new ub.IfcShapeModel(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new ub.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2273995522:(e,t)=>new ub.IfcStructuralConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null),2162789131:(e,t)=>new ub.IfcStructuralLoad(e,t[0]?new ub.IfcLabel(t[0].value):null),3478079324:(e,t)=>new ub.IfcStructuralLoadConfiguration(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?t[2].map((e=>new ub.IfcLengthMeasure(e.value))):null),609421318:(e,t)=>new ub.IfcStructuralLoadOrResult(e,t[0]?new ub.IfcLabel(t[0].value):null),2525727697:(e,t)=>new ub.IfcStructuralLoadStatic(e,t[0]?new ub.IfcLabel(t[0].value):null),3408363356:(e,t)=>new ub.IfcStructuralLoadTemperature(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new ub.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new ub.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new ub.IfcStyleModel(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new ub.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new ub.IfcLabel(t[2].value):null),3049322572:(e,t)=>new ub.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2934153892:(e,t)=>new ub.IfcSurfaceReinforcementArea(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new ub.IfcLengthMeasure(e.value))):null,t[2]?t[2].map((e=>new ub.IfcLengthMeasure(e.value))):null,t[3]?new ub.IfcRatioMeasure(t[3].value):null),1300840506:(e,t)=>new ub.IfcSurfaceStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new ub.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new ub.IfcSurfaceStyleRefraction(e,t[0]?new ub.IfcReal(t[0].value):null,t[1]?new ub.IfcReal(t[1].value):null),846575682:(e,t)=>new ub.IfcSurfaceStyleShading(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null),1351298697:(e,t)=>new ub.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new ub.IfcSurfaceTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null),985171141:(e,t)=>new ub.IfcTable(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new zb(e.value))):null,t[2]?t[2].map((e=>new zb(e.value))):null),2043862942:(e,t)=>new ub.IfcTableColumn(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null),531007025:(e,t)=>new ub.IfcTableRow(e,t[0]?t[0].map((e=>tD(2,e))):null,t[1]?new ub.IfcBoolean(t[1].value):null),1549132990:(e,t)=>new ub.IfcTaskTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3],t[4]?new ub.IfcDuration(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcDateTime(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcDuration(t[12].value):null,t[13]?new ub.IfcBoolean(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcDateTime(t[16].value):null,t[17]?new ub.IfcDateTime(t[17].value):null,t[18]?new ub.IfcDuration(t[18].value):null,t[19]?new ub.IfcPositiveRatioMeasure(t[19].value):null),2771591690:(e,t)=>new ub.IfcTaskTimeRecurring(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3],t[4]?new ub.IfcDuration(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcDateTime(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcDuration(t[12].value):null,t[13]?new ub.IfcBoolean(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcDateTime(t[16].value):null,t[17]?new ub.IfcDateTime(t[17].value):null,t[18]?new ub.IfcDuration(t[18].value):null,t[19]?new ub.IfcPositiveRatioMeasure(t[19].value):null,new zb(t[20].value)),912023232:(e,t)=>new ub.IfcTelecomAddress(e,t[0],t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new ub.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new ub.IfcLabel(e.value))):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new ub.IfcLabel(e.value))):null,t[7]?new ub.IfcURIReference(t[7].value):null,t[8]?t[8].map((e=>new ub.IfcURIReference(e.value))):null),1447204868:(e,t)=>new ub.IfcTextStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcBoolean(t[4].value):null),2636378356:(e,t)=>new ub.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new ub.IfcTextStyleTextModel(e,t[0]?tD(2,t[0]):null,t[1]?new ub.IfcTextAlignment(t[1].value):null,t[2]?new ub.IfcTextDecoration(t[2].value):null,t[3]?tD(2,t[3]):null,t[4]?tD(2,t[4]):null,t[5]?new ub.IfcTextTransformation(t[5].value):null,t[6]?tD(2,t[6]):null),280115917:(e,t)=>new ub.IfcTextureCoordinate(e,t[0].map((e=>new zb(e.value)))),1742049831:(e,t)=>new ub.IfcTextureCoordinateGenerator(e,t[0].map((e=>new zb(e.value))),new ub.IfcLabel(t[1].value),t[2]?t[2].map((e=>new ub.IfcReal(e.value))):null),2552916305:(e,t)=>new ub.IfcTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new zb(t[2].value)),1210645708:(e,t)=>new ub.IfcTextureVertex(e,t[0].map((e=>new ub.IfcParameterValue(e.value)))),3611470254:(e,t)=>new ub.IfcTextureVertexList(e,t[0].map((e=>new ub.IfcParameterValue(e.value)))),1199560280:(e,t)=>new ub.IfcTimePeriod(e,new ub.IfcTime(t[0].value),new ub.IfcTime(t[1].value)),3101149627:(e,t)=>new ub.IfcTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),581633288:(e,t)=>new ub.IfcTimeSeriesValue(e,t[0].map((e=>tD(2,e)))),1377556343:(e,t)=>new ub.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new ub.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new ub.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new ub.IfcVertex(e),1907098498:(e,t)=>new ub.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new ub.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new ub.IfcLengthMeasure(e.value)))),1236880293:(e,t)=>new ub.IfcWorkTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcDate(t[4].value):null,t[5]?new ub.IfcDate(t[5].value):null),3869604511:(e,t)=>new ub.IfcApprovalRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),3798115385:(e,t)=>new ub.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new ub.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new ub.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new ub.IfcBlobTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcIdentifier(t[5].value),new ub.IfcBinary(t[6].value)),3150382593:(e,t)=>new ub.IfcCenterLineProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),747523909:(e,t)=>new ub.IfcClassification(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new ub.IfcDate(t[2].value):null,new ub.IfcLabel(t[3].value),t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcURIReference(t[5].value):null,t[6]?t[6].map((e=>new ub.IfcIdentifier(e.value))):null),647927063:(e,t)=>new ub.IfcClassificationReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null),3285139300:(e,t)=>new ub.IfcColourRgbList(e,t[0].map((e=>new ub.IfcNormalisedRatioMeasure(e.value)))),3264961684:(e,t)=>new ub.IfcColourSpecification(e,t[0]?new ub.IfcLabel(t[0].value):null),1485152156:(e,t)=>new ub.IfcCompositeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new ub.IfcLabel(t[3].value):null),370225590:(e,t)=>new ub.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new ub.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new ub.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new ub.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value)),2889183280:(e,t)=>new ub.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value),new zb(t[3].value)),2713554722:(e,t)=>new ub.IfcConversionBasedUnitWithOffset(e,new zb(t[0].value),t[1],new ub.IfcLabel(t[2].value),new zb(t[3].value),new ub.IfcReal(t[4].value)),539742890:(e,t)=>new ub.IfcCurrencyRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),new ub.IfcPositiveRatioMeasure(t[4].value),t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new zb(t[6].value):null),3800577675:(e,t)=>new ub.IfcCurveStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?new zb(t[3].value):null,t[4]?new ub.IfcBoolean(t[4].value):null),1105321065:(e,t)=>new ub.IfcCurveStyleFont(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new ub.IfcCurveStyleFontAndScaling(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),new ub.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new ub.IfcCurveStyleFontPattern(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3632507154:(e,t)=>new ub.IfcDerivedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null),1154170062:(e,t)=>new ub.IfcDocumentInformation(e,new ub.IfcIdentifier(t[0].value),new ub.IfcLabel(t[1].value),t[2]?new ub.IfcText(t[2].value):null,t[3]?new ub.IfcURIReference(t[3].value):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new ub.IfcText(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDateTime(t[11].value):null,t[12]?new ub.IfcIdentifier(t[12].value):null,t[13]?new ub.IfcDate(t[13].value):null,t[14]?new ub.IfcDate(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new ub.IfcDocumentInformationRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new ub.IfcLabel(t[4].value):null),3732053477:(e,t)=>new ub.IfcDocumentReference(e,t[0]?new ub.IfcURIReference(t[0].value):null,t[1]?new ub.IfcIdentifier(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null),3900360178:(e,t)=>new ub.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new ub.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new ub.IfcBoolean(t[3].value)),211053100:(e,t)=>new ub.IfcEventTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcDateTime(t[3].value):null,t[4]?new ub.IfcDateTime(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null),297599258:(e,t)=>new ub.IfcExtendedProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),1437805879:(e,t)=>new ub.IfcExternalReferenceRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),2556980723:(e,t)=>new ub.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new ub.IfcFaceBound(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),803316827:(e,t)=>new ub.IfcFaceOuterBound(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),3008276851:(e,t)=>new ub.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new ub.IfcBoolean(t[2].value)),4219587988:(e,t)=>new ub.IfcFailureConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcForceMeasure(t[4].value):null,t[5]?new ub.IfcForceMeasure(t[5].value):null,t[6]?new ub.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new ub.IfcFillAreaStyle(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new ub.IfcBoolean(t[2].value):null),3448662350:(e,t)=>new ub.IfcGeometricRepresentationContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,new ub.IfcDimensionCount(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new ub.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new ub.IfcGeometricRepresentationSubContext(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcPositiveRatioMeasure(t[3].value):null,t[4],t[5]?new ub.IfcLabel(t[5].value):null),3590301190:(e,t)=>new ub.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new ub.IfcGridPlacement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),812098782:(e,t)=>new ub.IfcHalfSpaceSolid(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),3905492369:(e,t)=>new ub.IfcImageTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcURIReference(t[5].value)),3570813810:(e,t)=>new ub.IfcIndexedColourMap(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null,new zb(t[2].value),t[3].map((e=>new ub.IfcPositiveInteger(e.value)))),1437953363:(e,t)=>new ub.IfcIndexedTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value)),2133299955:(e,t)=>new ub.IfcIndexedTriangleTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3]?t[3].map((e=>new ub.IfcPositiveInteger(e.value))):null),3741457305:(e,t)=>new ub.IfcIrregularTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1585845231:(e,t)=>new ub.IfcLagTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,tD(2,t[3]),t[4]),1402838566:(e,t)=>new ub.IfcLightSource(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new ub.IfcLightSourceAmbient(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new ub.IfcLightSourceDirectional(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new ub.IfcLightSourceGoniometric(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new ub.IfcThermodynamicTemperatureMeasure(t[6].value),new ub.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new ub.IfcLightSourcePositional(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcReal(t[6].value),new ub.IfcReal(t[7].value),new ub.IfcReal(t[8].value)),3422422726:(e,t)=>new ub.IfcLightSourceSpot(e,t[0]?new ub.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new ub.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcReal(t[6].value),new ub.IfcReal(t[7].value),new ub.IfcReal(t[8].value),new zb(t[9].value),t[10]?new ub.IfcReal(t[10].value):null,new ub.IfcPositivePlaneAngleMeasure(t[11].value),new ub.IfcPositivePlaneAngleMeasure(t[12].value)),2624227202:(e,t)=>new ub.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new ub.IfcLoop(e),2347385850:(e,t)=>new ub.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),1838606355:(e,t)=>new ub.IfcMaterial(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null),3708119e3:(e,t)=>new ub.IfcMaterialConstituent(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcNormalisedRatioMeasure(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),2852063980:(e,t)=>new ub.IfcMaterialConstituentSet(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>new zb(e.value))):null),2022407955:(e,t)=>new ub.IfcMaterialDefinitionRepresentation(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1303795690:(e,t)=>new ub.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new ub.IfcLengthMeasure(t[3].value),t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null),3079605661:(e,t)=>new ub.IfcMaterialProfileSetUsage(e,new zb(t[0].value),t[1]?new ub.IfcCardinalPointReference(t[1].value):null,t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null),3404854881:(e,t)=>new ub.IfcMaterialProfileSetUsageTapering(e,new zb(t[0].value),t[1]?new ub.IfcCardinalPointReference(t[1].value):null,t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,new zb(t[3].value),t[4]?new ub.IfcCardinalPointReference(t[4].value):null),3265635763:(e,t)=>new ub.IfcMaterialProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),853536259:(e,t)=>new ub.IfcMaterialRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new ub.IfcLabel(t[4].value):null),2998442950:(e,t)=>new ub.IfcMirroredProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcLabel(t[3].value):null),219451334:(e,t)=>new ub.IfcObjectDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2665983363:(e,t)=>new ub.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1411181986:(e,t)=>new ub.IfcOrganizationRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1029017970:(e,t)=>new ub.IfcOrientedEdge(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value)),2529465313:(e,t)=>new ub.IfcParameterizedProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null),2519244187:(e,t)=>new ub.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new ub.IfcPhysicalComplexQuantity(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new ub.IfcLabel(t[3].value),t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),597895409:(e,t)=>new ub.IfcPixelTexture(e,new ub.IfcBoolean(t[0].value),new ub.IfcBoolean(t[1].value),t[2]?new ub.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new ub.IfcIdentifier(e.value))):null,new ub.IfcInteger(t[5].value),new ub.IfcInteger(t[6].value),new ub.IfcInteger(t[7].value),t[8].map((e=>new ub.IfcBinary(e.value)))),2004835150:(e,t)=>new ub.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new ub.IfcPlanarExtent(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new ub.IfcPoint(e),4022376103:(e,t)=>new ub.IfcPointOnCurve(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new ub.IfcPointOnSurface(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value),new ub.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new ub.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new ub.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value),new zb(t[2].value),new zb(t[3].value)),3727388367:(e,t)=>new ub.IfcPreDefinedItem(e,new ub.IfcLabel(t[0].value)),3778827333:(e,t)=>new ub.IfcPreDefinedProperties(e),1775413392:(e,t)=>new ub.IfcPreDefinedTextFont(e,new ub.IfcLabel(t[0].value)),673634403:(e,t)=>new ub.IfcProductDefinitionShape(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2802850158:(e,t)=>new ub.IfcProfileProperties(e,t[0]?new ub.IfcIdentifier(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),2598011224:(e,t)=>new ub.IfcProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null),1680319473:(e,t)=>new ub.IfcPropertyDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),148025276:(e,t)=>new ub.IfcPropertyDependencyRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new ub.IfcText(t[4].value):null),3357820518:(e,t)=>new ub.IfcPropertySetDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1482703590:(e,t)=>new ub.IfcPropertyTemplateDefinition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2090586900:(e,t)=>new ub.IfcQuantitySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),3615266464:(e,t)=>new ub.IfcRectangleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new ub.IfcRegularTimeSeries(e,new ub.IfcLabel(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcDateTime(t[2].value),new ub.IfcDateTime(t[3].value),t[4],t[5],t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new ub.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),1580146022:(e,t)=>new ub.IfcReinforcementBarProperties(e,new ub.IfcAreaMeasure(t[0].value),new ub.IfcLabel(t[1].value),t[2],t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcCountMeasure(t[5].value):null),478536968:(e,t)=>new ub.IfcRelationship(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),2943643501:(e,t)=>new ub.IfcResourceApprovalRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1608871552:(e,t)=>new ub.IfcResourceConstraintRelationship(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1042787934:(e,t)=>new ub.IfcResourceTime(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1],t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcDuration(t[3].value):null,t[4]?new ub.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new ub.IfcDateTime(t[5].value):null,t[6]?new ub.IfcDateTime(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcDuration(t[8].value):null,t[9]?new ub.IfcBoolean(t[9].value):null,t[10]?new ub.IfcDateTime(t[10].value):null,t[11]?new ub.IfcDuration(t[11].value):null,t[12]?new ub.IfcPositiveRatioMeasure(t[12].value):null,t[13]?new ub.IfcDateTime(t[13].value):null,t[14]?new ub.IfcDateTime(t[14].value):null,t[15]?new ub.IfcDuration(t[15].value):null,t[16]?new ub.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new ub.IfcPositiveRatioMeasure(t[17].value):null),2778083089:(e,t)=>new ub.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value)),2042790032:(e,t)=>new ub.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new ub.IfcSectionReinforcementProperties(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value),t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1509187699:(e,t)=>new ub.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),4124623270:(e,t)=>new ub.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),3692461612:(e,t)=>new ub.IfcSimpleProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null),2609359061:(e,t)=>new ub.IfcSlippageConnectionCondition(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new ub.IfcSolidModel(e),1595516126:(e,t)=>new ub.IfcStructuralLoadLinearForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLinearForceMeasure(t[1].value):null,t[2]?new ub.IfcLinearForceMeasure(t[2].value):null,t[3]?new ub.IfcLinearForceMeasure(t[3].value):null,t[4]?new ub.IfcLinearMomentMeasure(t[4].value):null,t[5]?new ub.IfcLinearMomentMeasure(t[5].value):null,t[6]?new ub.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new ub.IfcStructuralLoadPlanarForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcPlanarForceMeasure(t[1].value):null,t[2]?new ub.IfcPlanarForceMeasure(t[2].value):null,t[3]?new ub.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new ub.IfcStructuralLoadSingleDisplacement(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new ub.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new ub.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new ub.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcLengthMeasure(t[1].value):null,t[2]?new ub.IfcLengthMeasure(t[2].value):null,t[3]?new ub.IfcLengthMeasure(t[3].value):null,t[4]?new ub.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new ub.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new ub.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new ub.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new ub.IfcStructuralLoadSingleForce(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcTorqueMeasure(t[4].value):null,t[5]?new ub.IfcTorqueMeasure(t[5].value):null,t[6]?new ub.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new ub.IfcStructuralLoadSingleForceWarping(e,t[0]?new ub.IfcLabel(t[0].value):null,t[1]?new ub.IfcForceMeasure(t[1].value):null,t[2]?new ub.IfcForceMeasure(t[2].value):null,t[3]?new ub.IfcForceMeasure(t[3].value):null,t[4]?new ub.IfcTorqueMeasure(t[4].value):null,t[5]?new ub.IfcTorqueMeasure(t[5].value):null,t[6]?new ub.IfcTorqueMeasure(t[6].value):null,t[7]?new ub.IfcWarpingMomentMeasure(t[7].value):null),2233826070:(e,t)=>new ub.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new ub.IfcSurface(e),1878645084:(e,t)=>new ub.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new ub.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(2,t[7]):null,t[8]),2247615214:(e,t)=>new ub.IfcSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1260650574:(e,t)=>new ub.IfcSweptDiskSolid(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null),1096409881:(e,t)=>new ub.IfcSweptDiskSolidPolygonal(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),t[2]?new ub.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,t[5]?new ub.IfcPositiveLengthMeasure(t[5].value):null),230924584:(e,t)=>new ub.IfcSweptSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3071757647:(e,t)=>new ub.IfcTShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcNonNegativeLengthMeasure(t[9].value):null,t[10]?new ub.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new ub.IfcPlaneAngleMeasure(t[11].value):null),901063453:(e,t)=>new ub.IfcTessellatedItem(e),4282788508:(e,t)=>new ub.IfcTextLiteral(e,new ub.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new ub.IfcTextLiteralWithExtent(e,new ub.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new ub.IfcBoxAlignment(t[4].value)),1983826977:(e,t)=>new ub.IfcTextStyleFontModel(e,new ub.IfcLabel(t[0].value),t[1].map((e=>new ub.IfcTextFontName(e.value))),t[2]?new ub.IfcFontStyle(t[2].value):null,t[3]?new ub.IfcFontVariant(t[3].value):null,t[4]?new ub.IfcFontWeight(t[4].value):null,tD(2,t[5])),2715220739:(e,t)=>new ub.IfcTrapeziumProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcLengthMeasure(t[6].value)),1628702193:(e,t)=>new ub.IfcTypeObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),3736923433:(e,t)=>new ub.IfcTypeProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2347495698:(e,t)=>new ub.IfcTypeProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null),3698973494:(e,t)=>new ub.IfcTypeResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),427810014:(e,t)=>new ub.IfcUShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcPlaneAngleMeasure(t[9].value):null),1417489154:(e,t)=>new ub.IfcVector(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new ub.IfcVertexLoop(e,new zb(t[0].value)),1299126871:(e,t)=>new ub.IfcWindowStyle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],new ub.IfcBoolean(t[10].value),new ub.IfcBoolean(t[11].value)),2543172580:(e,t)=>new ub.IfcZShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null),3406155212:(e,t)=>new ub.IfcAdvancedFace(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new ub.IfcBoolean(t[2].value)),669184980:(e,t)=>new ub.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),3207858831:(e,t)=>new ub.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,new ub.IfcPositiveLengthMeasure(t[8].value),t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcNonNegativeLengthMeasure(t[10].value):null,t[11]?new ub.IfcNonNegativeLengthMeasure(t[11].value):null,t[12]?new ub.IfcPlaneAngleMeasure(t[12].value):null,t[13]?new ub.IfcNonNegativeLengthMeasure(t[13].value):null,t[14]?new ub.IfcPlaneAngleMeasure(t[14].value):null),4261334040:(e,t)=>new ub.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new ub.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new ub.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new ub.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new ub.IfcBoundedSurface(e),2581212453:(e,t)=>new ub.IfcBoundingBox(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new ub.IfcBoxedHalfSpace(e,new zb(t[0].value),new ub.IfcBoolean(t[1].value),new zb(t[2].value)),2898889636:(e,t)=>new ub.IfcCShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null),1123145078:(e,t)=>new ub.IfcCartesianPoint(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),574549367:(e,t)=>new ub.IfcCartesianPointList(e),1675464909:(e,t)=>new ub.IfcCartesianPointList2D(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),2059837836:(e,t)=>new ub.IfcCartesianPointList3D(e,t[0].map((e=>new ub.IfcLengthMeasure(e.value)))),59481748:(e,t)=>new ub.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null),3749851601:(e,t)=>new ub.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null),3486308946:(e,t)=>new ub.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new ub.IfcReal(t[4].value):null),3331915920:(e,t)=>new ub.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new ub.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new ub.IfcReal(t[5].value):null,t[6]?new ub.IfcReal(t[6].value):null),1383045692:(e,t)=>new ub.IfcCircleProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new ub.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),776857604:(e,t)=>new ub.IfcColourRgb(e,t[0]?new ub.IfcLabel(t[0].value):null,new ub.IfcNormalisedRatioMeasure(t[1].value),new ub.IfcNormalisedRatioMeasure(t[2].value),new ub.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new ub.IfcComplexProperty(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,new ub.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),2485617015:(e,t)=>new ub.IfcCompositeCurveSegment(e,t[0],new ub.IfcBoolean(t[1].value),new zb(t[2].value)),2574617495:(e,t)=>new ub.IfcConstructionResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null),3419103109:(e,t)=>new ub.IfcContext(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),1815067380:(e,t)=>new ub.IfcCrewResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2506170314:(e,t)=>new ub.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new ub.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new ub.IfcCurve(e),2827736869:(e,t)=>new ub.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2629017746:(e,t)=>new ub.IfcCurveBoundedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new ub.IfcBoolean(t[2].value)),32440307:(e,t)=>new ub.IfcDirection(e,t[0].map((e=>new ub.IfcReal(e.value)))),526551008:(e,t)=>new ub.IfcDoorStyle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],new ub.IfcBoolean(t[10].value),new ub.IfcBoolean(t[11].value)),1472233963:(e,t)=>new ub.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new ub.IfcElementQuantity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new ub.IfcElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2777663545:(e,t)=>new ub.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new ub.IfcEllipseProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),4024345920:(e,t)=>new ub.IfcEventType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcLabel(t[11].value):null),477187591:(e,t)=>new ub.IfcExtrudedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),2804161546:(e,t)=>new ub.IfcExtrudedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value),new zb(t[4].value)),2047409740:(e,t)=>new ub.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new ub.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new ub.IfcPlaneAngleMeasure(t[4].value)),315944413:(e,t)=>new ub.IfcFillAreaStyleTiles(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new ub.IfcPositiveRatioMeasure(t[2].value)),2652556860:(e,t)=>new ub.IfcFixedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,new zb(t[5].value)),4238390223:(e,t)=>new ub.IfcFurnishingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1268542332:(e,t)=>new ub.IfcFurnitureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]),4095422895:(e,t)=>new ub.IfcGeographicElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new ub.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new ub.IfcIShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),new ub.IfcPositiveLengthMeasure(t[6].value),t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcPlaneAngleMeasure(t[9].value):null),178912537:(e,t)=>new ub.IfcIndexedPolygonalFace(e,t[0].map((e=>new ub.IfcPositiveInteger(e.value)))),2294589976:(e,t)=>new ub.IfcIndexedPolygonalFaceWithVoids(e,t[0].map((e=>new ub.IfcPositiveInteger(e.value))),t[1].map((e=>new ub.IfcPositiveInteger(e.value)))),572779678:(e,t)=>new ub.IfcLShapeProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,new ub.IfcPositiveLengthMeasure(t[5].value),t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcPlaneAngleMeasure(t[8].value):null),428585644:(e,t)=>new ub.IfcLaborResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1281925730:(e,t)=>new ub.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new ub.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new ub.IfcObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),3388369263:(e,t)=>new ub.IfcOffsetCurve2D(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value),new ub.IfcLogical(t[2].value)),3505215534:(e,t)=>new ub.IfcOffsetCurve3D(e,new zb(t[0].value),new ub.IfcLengthMeasure(t[1].value),new ub.IfcLogical(t[2].value),new zb(t[3].value)),1682466193:(e,t)=>new ub.IfcPcurve(e,new zb(t[0].value),new zb(t[1].value)),603570806:(e,t)=>new ub.IfcPlanarBox(e,new ub.IfcLengthMeasure(t[0].value),new ub.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new ub.IfcPlane(e,new zb(t[0].value)),759155922:(e,t)=>new ub.IfcPreDefinedColour(e,new ub.IfcLabel(t[0].value)),2559016684:(e,t)=>new ub.IfcPreDefinedCurveFont(e,new ub.IfcLabel(t[0].value)),3967405729:(e,t)=>new ub.IfcPreDefinedPropertySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),569719735:(e,t)=>new ub.IfcProcedureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2945172077:(e,t)=>new ub.IfcProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null),4208778838:(e,t)=>new ub.IfcProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new ub.IfcProject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),653396225:(e,t)=>new ub.IfcProjectLibrary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),871118103:(e,t)=>new ub.IfcPropertyBoundedValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?tD(2,t[3]):null,t[4]?new zb(t[4].value):null,t[5]?tD(2,t[5]):null),4166981789:(e,t)=>new ub.IfcPropertyEnumeratedValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new ub.IfcPropertyListValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?new zb(t[3].value):null),941946838:(e,t)=>new ub.IfcPropertyReferenceValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?new ub.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null),1451395588:(e,t)=>new ub.IfcPropertySet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),492091185:(e,t)=>new ub.IfcPropertySetTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5]?new ub.IfcIdentifier(t[5].value):null,t[6].map((e=>new zb(e.value)))),3650150729:(e,t)=>new ub.IfcPropertySingleValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?tD(2,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new ub.IfcPropertyTableValue(e,new ub.IfcIdentifier(t[0].value),t[1]?new ub.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(2,e))):null,t[3]?t[3].map((e=>tD(2,e))):null,t[4]?new ub.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3521284610:(e,t)=>new ub.IfcPropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),3219374653:(e,t)=>new ub.IfcProxy(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null),2770003689:(e,t)=>new ub.IfcRectangleHollowProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value),new ub.IfcPositiveLengthMeasure(t[5].value),t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null),2798486643:(e,t)=>new ub.IfcRectangularPyramid(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new ub.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new ub.IfcParameterValue(t[1].value),new ub.IfcParameterValue(t[2].value),new ub.IfcParameterValue(t[3].value),new ub.IfcParameterValue(t[4].value),new ub.IfcBoolean(t[5].value),new ub.IfcBoolean(t[6].value)),3765753017:(e,t)=>new ub.IfcReinforcementDefinitionProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),3939117080:(e,t)=>new ub.IfcRelAssigns(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new ub.IfcRelAssignsToActor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new ub.IfcRelAssignsToControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new ub.IfcRelAssignsToGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1027710054:(e,t)=>new ub.IfcRelAssignsToGroupByFactor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),new ub.IfcRatioMeasure(t[7].value)),4278684876:(e,t)=>new ub.IfcRelAssignsToProcess(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new ub.IfcRelAssignsToProduct(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new ub.IfcRelAssignsToResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new ub.IfcRelAssociates(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4095574036:(e,t)=>new ub.IfcRelAssociatesApproval(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new ub.IfcRelAssociatesClassification(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new ub.IfcRelAssociatesConstraint(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]?new ub.IfcLabel(t[5].value):null,new zb(t[6].value)),982818633:(e,t)=>new ub.IfcRelAssociatesDocument(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new ub.IfcRelAssociatesLibrary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new ub.IfcRelAssociatesMaterial(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),826625072:(e,t)=>new ub.IfcRelConnects(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1204542856:(e,t)=>new ub.IfcRelConnectsElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new ub.IfcRelConnectsPathElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9],t[10]),4201705270:(e,t)=>new ub.IfcRelConnectsPortToElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new ub.IfcRelConnectsPorts(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new ub.IfcRelConnectsStructuralActivity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new ub.IfcRelConnectsStructuralMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new ub.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new ub.IfcRelConnectsWithEccentricity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new ub.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new ub.IfcRelConnectsWithRealizingElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new ub.IfcLabel(t[8].value):null),3242617779:(e,t)=>new ub.IfcRelContainedInSpatialStructure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new ub.IfcRelCoversBldgElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new ub.IfcRelCoversSpaces(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2565941209:(e,t)=>new ub.IfcRelDeclares(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new ub.IfcRelDecomposes(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),693640335:(e,t)=>new ub.IfcRelDefines(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null),1462361463:(e,t)=>new ub.IfcRelDefinesByObject(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4186316022:(e,t)=>new ub.IfcRelDefinesByProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),307848117:(e,t)=>new ub.IfcRelDefinesByTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new ub.IfcRelDefinesByType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new ub.IfcRelFillsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new ub.IfcRelFlowControlElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),427948657:(e,t)=>new ub.IfcRelInterferesElements(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8].value),3268803585:(e,t)=>new ub.IfcRelNests(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),750771296:(e,t)=>new ub.IfcRelProjectsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new ub.IfcRelReferencedInSpatialStructure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4122056220:(e,t)=>new ub.IfcRelSequence(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcLabel(t[8].value):null),366585022:(e,t)=>new ub.IfcRelServicesBuildings(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new ub.IfcRelSpaceBoundary(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]),3523091289:(e,t)=>new ub.IfcRelSpaceBoundary1stLevel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null),1521410863:(e,t)=>new ub.IfcRelSpaceBoundary2ndLevel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),1401173127:(e,t)=>new ub.IfcRelVoidsElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),816062949:(e,t)=>new ub.IfcReparametrisedCompositeCurveSegment(e,t[0],new ub.IfcBoolean(t[1].value),new zb(t[2].value),new ub.IfcParameterValue(t[3].value)),2914609552:(e,t)=>new ub.IfcResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null),1856042241:(e,t)=>new ub.IfcRevolvedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPlaneAngleMeasure(t[3].value)),3243963512:(e,t)=>new ub.IfcRevolvedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcPlaneAngleMeasure(t[3].value),new zb(t[4].value)),4158566097:(e,t)=>new ub.IfcRightCircularCone(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new ub.IfcRightCircularCylinder(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),3663146110:(e,t)=>new ub.IfcSimplePropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5]?new ub.IfcLabel(t[5].value):null,t[6]?new ub.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new ub.IfcLabel(t[10].value):null,t[11]),1412071761:(e,t)=>new ub.IfcSpatialElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null),710998568:(e,t)=>new ub.IfcSpatialElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2706606064:(e,t)=>new ub.IfcSpatialStructureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new ub.IfcSpatialStructureElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),463610769:(e,t)=>new ub.IfcSpatialZone(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),2481509218:(e,t)=>new ub.IfcSpatialZoneType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),451544542:(e,t)=>new ub.IfcSphere(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),4015995234:(e,t)=>new ub.IfcSphericalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3544373492:(e,t)=>new ub.IfcStructuralActivity(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new ub.IfcStructuralItem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new ub.IfcStructuralMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new ub.IfcStructuralReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new ub.IfcStructuralSurfaceMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new ub.IfcStructuralSurfaceMemberVarying(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null),603775116:(e,t)=>new ub.IfcStructuralSurfaceReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),4095615324:(e,t)=>new ub.IfcSubContractResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),699246055:(e,t)=>new ub.IfcSurfaceCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2028607225:(e,t)=>new ub.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new ub.IfcParameterValue(t[3].value):null,t[4]?new ub.IfcParameterValue(t[4].value):null,new zb(t[5].value)),2809605785:(e,t)=>new ub.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new ub.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new ub.IfcSurfaceOfRevolution(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),1580310250:(e,t)=>new ub.IfcSystemFurnitureElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3473067441:(e,t)=>new ub.IfcTask(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,new ub.IfcBoolean(t[9].value),t[10]?new ub.IfcInteger(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]),3206491090:(e,t)=>new ub.IfcTaskType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),2387106220:(e,t)=>new ub.IfcTessellatedFaceSet(e,new zb(t[0].value)),1935646853:(e,t)=>new ub.IfcToroidalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),2097647324:(e,t)=>new ub.IfcTransportElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2916149573:(e,t)=>new ub.IfcTriangulatedFaceSet(e,new zb(t[0].value),t[1]?t[1].map((e=>new ub.IfcParameterValue(e.value))):null,t[2]?new ub.IfcBoolean(t[2].value):null,t[3].map((e=>new ub.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new ub.IfcPositiveInteger(e.value))):null),336235671:(e,t)=>new ub.IfcWindowLiningProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new ub.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new ub.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new ub.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new ub.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new ub.IfcLengthMeasure(t[13].value):null,t[14]?new ub.IfcLengthMeasure(t[14].value):null,t[15]?new ub.IfcLengthMeasure(t[15].value):null),512836454:(e,t)=>new ub.IfcWindowPanelProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5],t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),2296667514:(e,t)=>new ub.IfcActor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,new zb(t[5].value)),1635779807:(e,t)=>new ub.IfcAdvancedBrep(e,new zb(t[0].value)),2603310189:(e,t)=>new ub.IfcAdvancedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1674181508:(e,t)=>new ub.IfcAnnotation(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2887950389:(e,t)=>new ub.IfcBSplineSurface(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value)),167062518:(e,t)=>new ub.IfcBSplineSurfaceWithKnots(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9].map((e=>new ub.IfcParameterValue(e.value))),t[10].map((e=>new ub.IfcParameterValue(e.value))),t[11]),1334484129:(e,t)=>new ub.IfcBlock(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value),new ub.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new ub.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new ub.IfcBoundedCurve(e),4031249490:(e,t)=>new ub.IfcBuilding(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcLengthMeasure(t[9].value):null,t[10]?new ub.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),1950629157:(e,t)=>new ub.IfcBuildingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3124254112:(e,t)=>new ub.IfcBuildingStorey(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcLengthMeasure(t[9].value):null),2197970202:(e,t)=>new ub.IfcChimneyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2937912522:(e,t)=>new ub.IfcCircleHollowProfileDef(e,t[0],t[1]?new ub.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new ub.IfcPositiveLengthMeasure(t[3].value),new ub.IfcPositiveLengthMeasure(t[4].value)),3893394355:(e,t)=>new ub.IfcCivilElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),300633059:(e,t)=>new ub.IfcColumnType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3875453745:(e,t)=>new ub.IfcComplexPropertyTemplate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?t[6].map((e=>new zb(e.value))):null),3732776249:(e,t)=>new ub.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),15328376:(e,t)=>new ub.IfcCompositeCurveOnSurface(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),2510884976:(e,t)=>new ub.IfcConic(e,new zb(t[0].value)),2185764099:(e,t)=>new ub.IfcConstructionEquipmentResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),4105962743:(e,t)=>new ub.IfcConstructionMaterialResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1525564444:(e,t)=>new ub.IfcConstructionProductResourceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new ub.IfcIdentifier(t[6].value):null,t[7]?new ub.IfcText(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2559216714:(e,t)=>new ub.IfcConstructionResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),3293443760:(e,t)=>new ub.IfcControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null),3895139033:(e,t)=>new ub.IfcCostItem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),1419761937:(e,t)=>new ub.IfcCostSchedule(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcDateTime(t[8].value):null,t[9]?new ub.IfcDateTime(t[9].value):null),1916426348:(e,t)=>new ub.IfcCoveringType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new ub.IfcCrewResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1457835157:(e,t)=>new ub.IfcCurtainWallType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1213902940:(e,t)=>new ub.IfcCylindricalSurface(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),3256556792:(e,t)=>new ub.IfcDistributionElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3849074793:(e,t)=>new ub.IfcDistributionFlowElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2963535650:(e,t)=>new ub.IfcDoorLiningProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new ub.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new ub.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new ub.IfcLengthMeasure(t[9].value):null,t[10]?new ub.IfcLengthMeasure(t[10].value):null,t[11]?new ub.IfcLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?new ub.IfcLengthMeasure(t[15].value):null,t[16]?new ub.IfcLengthMeasure(t[16].value):null),1714330368:(e,t)=>new ub.IfcDoorPanelProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new ub.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),2323601079:(e,t)=>new ub.IfcDoorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcBoolean(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null),445594917:(e,t)=>new ub.IfcDraughtingPreDefinedColour(e,new ub.IfcLabel(t[0].value)),4006246654:(e,t)=>new ub.IfcDraughtingPreDefinedCurveFont(e,new ub.IfcLabel(t[0].value)),1758889154:(e,t)=>new ub.IfcElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new ub.IfcElementAssembly(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8],t[9]),2397081782:(e,t)=>new ub.IfcElementAssemblyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1623761950:(e,t)=>new ub.IfcElementComponent(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new ub.IfcElementComponentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1704287377:(e,t)=>new ub.IfcEllipse(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value),new ub.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new ub.IfcEnergyConversionDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),132023988:(e,t)=>new ub.IfcEngineType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3174744832:(e,t)=>new ub.IfcEvaporativeCoolerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new ub.IfcEvaporatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4148101412:(e,t)=>new ub.IfcEvent(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7],t[8],t[9]?new ub.IfcLabel(t[9].value):null,t[10]?new zb(t[10].value):null),2853485674:(e,t)=>new ub.IfcExternalSpatialStructureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null),807026263:(e,t)=>new ub.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new ub.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),647756555:(e,t)=>new ub.IfcFastener(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2489546625:(e,t)=>new ub.IfcFastenerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2827207264:(e,t)=>new ub.IfcFeatureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new ub.IfcFeatureElementAddition(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new ub.IfcFeatureElementSubtraction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new ub.IfcFlowControllerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3198132628:(e,t)=>new ub.IfcFlowFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3815607619:(e,t)=>new ub.IfcFlowMeterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new ub.IfcFlowMovingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1834744321:(e,t)=>new ub.IfcFlowSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1339347760:(e,t)=>new ub.IfcFlowStorageDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2297155007:(e,t)=>new ub.IfcFlowTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),3009222698:(e,t)=>new ub.IfcFlowTreatmentDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1893162501:(e,t)=>new ub.IfcFootingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),263784265:(e,t)=>new ub.IfcFurnishingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),1509553395:(e,t)=>new ub.IfcFurniture(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3493046030:(e,t)=>new ub.IfcGeographicElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3009204131:(e,t)=>new ub.IfcGrid(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null,t[10]),2706460486:(e,t)=>new ub.IfcGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),1251058090:(e,t)=>new ub.IfcHeatExchangerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new ub.IfcHumidifierType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2571569899:(e,t)=>new ub.IfcIndexedPolyCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>tD(2,e))):null,t[2]?new ub.IfcBoolean(t[2].value):null),3946677679:(e,t)=>new ub.IfcInterceptorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3113134337:(e,t)=>new ub.IfcIntersectionCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2391368822:(e,t)=>new ub.IfcInventory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcDate(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new ub.IfcJunctionBoxType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3827777499:(e,t)=>new ub.IfcLaborResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1051575348:(e,t)=>new ub.IfcLampType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new ub.IfcLightFixtureType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),377706215:(e,t)=>new ub.IfcMechanicalFastener(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]),2108223431:(e,t)=>new ub.IfcMechanicalFastenerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null),1114901282:(e,t)=>new ub.IfcMedicalDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3181161470:(e,t)=>new ub.IfcMemberType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new ub.IfcMotorConnectionType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4143007308:(e,t)=>new ub.IfcOccupant(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new ub.IfcOpeningElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3079942009:(e,t)=>new ub.IfcOpeningStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2837617999:(e,t)=>new ub.IfcOutletType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new ub.IfcPerformanceHistory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcLabel(t[6].value),t[7]),3566463478:(e,t)=>new ub.IfcPermeableCoveringProperties(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4],t[5],t[6]?new ub.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new ub.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),3327091369:(e,t)=>new ub.IfcPermit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),1158309216:(e,t)=>new ub.IfcPileType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),804291784:(e,t)=>new ub.IfcPipeFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new ub.IfcPipeSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new ub.IfcPlateType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2839578677:(e,t)=>new ub.IfcPolygonalFaceSet(e,new zb(t[0].value),t[1]?new ub.IfcBoolean(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?t[3].map((e=>new ub.IfcPositiveInteger(e.value))):null),3724593414:(e,t)=>new ub.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new ub.IfcPort(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new ub.IfcProcedure(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]),2904328755:(e,t)=>new ub.IfcProjectOrder(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),3651124850:(e,t)=>new ub.IfcProjectionElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1842657554:(e,t)=>new ub.IfcProtectiveDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new ub.IfcPumpType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2893384427:(e,t)=>new ub.IfcRailingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2324767716:(e,t)=>new ub.IfcRampFlightType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1469900589:(e,t)=>new ub.IfcRampType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),683857671:(e,t)=>new ub.IfcRationalBSplineSurfaceWithKnots(e,new ub.IfcInteger(t[0].value),new ub.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new ub.IfcLogical(t[4].value),new ub.IfcLogical(t[5].value),new ub.IfcLogical(t[6].value),t[7].map((e=>new ub.IfcInteger(e.value))),t[8].map((e=>new ub.IfcInteger(e.value))),t[9].map((e=>new ub.IfcParameterValue(e.value))),t[10].map((e=>new ub.IfcParameterValue(e.value))),t[11],t[12].map((e=>new ub.IfcReal(e.value)))),3027567501:(e,t)=>new ub.IfcReinforcingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),964333572:(e,t)=>new ub.IfcReinforcingElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),2320036040:(e,t)=>new ub.IfcReinforcingMesh(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcAreaMeasure(t[13].value):null,t[14]?new ub.IfcAreaMeasure(t[14].value):null,t[15]?new ub.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null,t[17]),2310774935:(e,t)=>new ub.IfcReinforcingMeshType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new ub.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new ub.IfcAreaMeasure(t[14].value):null,t[15]?new ub.IfcAreaMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null,t[17]?new ub.IfcPositiveLengthMeasure(t[17].value):null,t[18]?new ub.IfcLabel(t[18].value):null,t[19]?t[19].map((e=>tD(2,e))):null),160246688:(e,t)=>new ub.IfcRelAggregates(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2781568857:(e,t)=>new ub.IfcRoofType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1768891740:(e,t)=>new ub.IfcSanitaryTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2157484638:(e,t)=>new ub.IfcSeamCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),4074543187:(e,t)=>new ub.IfcShadingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4097777520:(e,t)=>new ub.IfcSite(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9]?new ub.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new ub.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new ub.IfcLengthMeasure(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new ub.IfcSlabType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1072016465:(e,t)=>new ub.IfcSolarDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new ub.IfcSpace(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new ub.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new ub.IfcSpaceHeaterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3812236995:(e,t)=>new ub.IfcSpaceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcLabel(t[10].value):null),3112655638:(e,t)=>new ub.IfcStackTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new ub.IfcStairFlightType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),338393293:(e,t)=>new ub.IfcStairType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new ub.IfcStructuralAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null),1179482911:(e,t)=>new ub.IfcStructuralConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1004757350:(e,t)=>new ub.IfcStructuralCurveAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),4243806635:(e,t)=>new ub.IfcStructuralCurveConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value)),214636428:(e,t)=>new ub.IfcStructuralCurveMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2445595289:(e,t)=>new ub.IfcStructuralCurveMemberVarying(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2757150158:(e,t)=>new ub.IfcStructuralCurveReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),1807405624:(e,t)=>new ub.IfcStructuralLinearAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1252848954:(e,t)=>new ub.IfcStructuralLoadGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new ub.IfcRatioMeasure(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null),2082059205:(e,t)=>new ub.IfcStructuralPointAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null),734778138:(e,t)=>new ub.IfcStructuralPointConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),1235345126:(e,t)=>new ub.IfcStructuralPointReaction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new ub.IfcStructuralResultGroup(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,new ub.IfcBoolean(t[7].value)),3657597509:(e,t)=>new ub.IfcStructuralSurfaceAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1975003073:(e,t)=>new ub.IfcStructuralSurfaceConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new ub.IfcSubContractResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),3101698114:(e,t)=>new ub.IfcSurfaceFeature(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2315554128:(e,t)=>new ub.IfcSwitchingDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new ub.IfcSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null),413509423:(e,t)=>new ub.IfcSystemFurnitureElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),5716631:(e,t)=>new ub.IfcTankType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3824725483:(e,t)=>new ub.IfcTendon(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcForceMeasure(t[12].value):null,t[13]?new ub.IfcPressureMeasure(t[13].value):null,t[14]?new ub.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new ub.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new ub.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new ub.IfcTendonAnchor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3081323446:(e,t)=>new ub.IfcTendonAnchorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2415094496:(e,t)=>new ub.IfcTendonType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null),1692211062:(e,t)=>new ub.IfcTransformerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1620046519:(e,t)=>new ub.IfcTransportElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3593883385:(e,t)=>new ub.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),new ub.IfcBoolean(t[3].value),t[4]),1600972822:(e,t)=>new ub.IfcTubeBundleType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new ub.IfcUnitaryEquipmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new ub.IfcValveType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2391383451:(e,t)=>new ub.IfcVibrationIsolator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3313531582:(e,t)=>new ub.IfcVibrationIsolatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new ub.IfcVirtualElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),926996030:(e,t)=>new ub.IfcVoidingFeature(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1898987631:(e,t)=>new ub.IfcWallType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new ub.IfcWasteTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4009809668:(e,t)=>new ub.IfcWindowType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new ub.IfcBoolean(t[11].value):null,t[12]?new ub.IfcLabel(t[12].value):null),4088093105:(e,t)=>new ub.IfcWorkCalendar(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]),1028945134:(e,t)=>new ub.IfcWorkControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null),4218914973:(e,t)=>new ub.IfcWorkPlan(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null,t[13]),3342526732:(e,t)=>new ub.IfcWorkSchedule(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,new ub.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcDuration(t[9].value):null,t[10]?new ub.IfcDuration(t[10].value):null,new ub.IfcDateTime(t[11].value),t[12]?new ub.IfcDateTime(t[12].value):null,t[13]),1033361043:(e,t)=>new ub.IfcZone(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null),3821786052:(e,t)=>new ub.IfcActionRequest(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6],t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcText(t[8].value):null),1411407467:(e,t)=>new ub.IfcAirTerminalBoxType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new ub.IfcAirTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new ub.IfcAirToAirHeatRecoveryType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3460190687:(e,t)=>new ub.IfcAsset(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new ub.IfcDate(t[12].value):null,t[13]?new zb(t[13].value):null),1532957894:(e,t)=>new ub.IfcAudioVisualApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1967976161:(e,t)=>new ub.IfcBSplineCurve(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value)),2461110595:(e,t)=>new ub.IfcBSplineCurveWithKnots(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value),t[5].map((e=>new ub.IfcInteger(e.value))),t[6].map((e=>new ub.IfcParameterValue(e.value))),t[7]),819618141:(e,t)=>new ub.IfcBeamType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),231477066:(e,t)=>new ub.IfcBoilerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1136057603:(e,t)=>new ub.IfcBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),3299480353:(e,t)=>new ub.IfcBuildingElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2979338954:(e,t)=>new ub.IfcBuildingElementPart(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),39481116:(e,t)=>new ub.IfcBuildingElementPartType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1095909175:(e,t)=>new ub.IfcBuildingElementProxy(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1909888760:(e,t)=>new ub.IfcBuildingElementProxyType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1177604601:(e,t)=>new ub.IfcBuildingSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new ub.IfcLabel(t[6].value):null),2188180465:(e,t)=>new ub.IfcBurnerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new ub.IfcCableCarrierFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new ub.IfcCableCarrierSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2674252688:(e,t)=>new ub.IfcCableFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new ub.IfcCableSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new ub.IfcChillerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3296154744:(e,t)=>new ub.IfcChimney(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2611217952:(e,t)=>new ub.IfcCircle(e,new zb(t[0].value),new ub.IfcPositiveLengthMeasure(t[1].value)),1677625105:(e,t)=>new ub.IfcCivilElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2301859152:(e,t)=>new ub.IfcCoilType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new ub.IfcColumn(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),905975707:(e,t)=>new ub.IfcColumnStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),400855858:(e,t)=>new ub.IfcCommunicationsApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3850581409:(e,t)=>new ub.IfcCompressorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new ub.IfcCondenserType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3898045240:(e,t)=>new ub.IfcConstructionEquipmentResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1060000209:(e,t)=>new ub.IfcConstructionMaterialResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),488727124:(e,t)=>new ub.IfcConstructionProductResource(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcIdentifier(t[5].value):null,t[6]?new ub.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),335055490:(e,t)=>new ub.IfcCooledBeamType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new ub.IfcCoolingTowerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1973544240:(e,t)=>new ub.IfcCovering(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new ub.IfcCurtainWall(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3961806047:(e,t)=>new ub.IfcDamperType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1335981549:(e,t)=>new ub.IfcDiscreteAccessory(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2635815018:(e,t)=>new ub.IfcDiscreteAccessoryType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1599208980:(e,t)=>new ub.IfcDistributionChamberElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new ub.IfcDistributionControlElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null),1945004755:(e,t)=>new ub.IfcDistributionElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new ub.IfcDistributionFlowElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new ub.IfcDistributionPort(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8],t[9]),3205830791:(e,t)=>new ub.IfcDistributionSystem(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]),395920057:(e,t)=>new ub.IfcDoor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),3242481149:(e,t)=>new ub.IfcDoorStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),869906466:(e,t)=>new ub.IfcDuctFittingType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new ub.IfcDuctSegmentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new ub.IfcDuctSilencerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),663422040:(e,t)=>new ub.IfcElectricApplianceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2417008758:(e,t)=>new ub.IfcElectricDistributionBoardType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new ub.IfcElectricFlowStorageDeviceType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new ub.IfcElectricGeneratorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new ub.IfcElectricMotorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new ub.IfcElectricTimeControlType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1658829314:(e,t)=>new ub.IfcEnergyConversionDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2814081492:(e,t)=>new ub.IfcEngine(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3747195512:(e,t)=>new ub.IfcEvaporativeCooler(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),484807127:(e,t)=>new ub.IfcEvaporator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1209101575:(e,t)=>new ub.IfcExternalSpatialElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]),346874300:(e,t)=>new ub.IfcFanType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new ub.IfcFilterType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new ub.IfcFireSuppressionTerminalType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new ub.IfcFlowController(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new ub.IfcFlowFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new ub.IfcFlowInstrumentType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),2188021234:(e,t)=>new ub.IfcFlowMeter(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3132237377:(e,t)=>new ub.IfcFlowMovingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new ub.IfcFlowSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new ub.IfcFlowStorageDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new ub.IfcFlowTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new ub.IfcFlowTreatmentDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new ub.IfcFooting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3319311131:(e,t)=>new ub.IfcHeatExchanger(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2068733104:(e,t)=>new ub.IfcHumidifier(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4175244083:(e,t)=>new ub.IfcInterceptor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2176052936:(e,t)=>new ub.IfcJunctionBox(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),76236018:(e,t)=>new ub.IfcLamp(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),629592764:(e,t)=>new ub.IfcLightFixture(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1437502449:(e,t)=>new ub.IfcMedicalDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new ub.IfcMember(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1911478936:(e,t)=>new ub.IfcMemberStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2474470126:(e,t)=>new ub.IfcMotorConnection(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),144952367:(e,t)=>new ub.IfcOuterBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new ub.IfcLogical(t[1].value)),3694346114:(e,t)=>new ub.IfcOutlet(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1687234759:(e,t)=>new ub.IfcPile(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8],t[9]),310824031:(e,t)=>new ub.IfcPipeFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3612865200:(e,t)=>new ub.IfcPipeSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3171933400:(e,t)=>new ub.IfcPlate(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1156407060:(e,t)=>new ub.IfcPlateStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),738039164:(e,t)=>new ub.IfcProtectiveDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),655969474:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnitType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),90941305:(e,t)=>new ub.IfcPump(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2262370178:(e,t)=>new ub.IfcRailing(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new ub.IfcRamp(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new ub.IfcRampFlight(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1232101972:(e,t)=>new ub.IfcRationalBSplineCurveWithKnots(e,new ub.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new ub.IfcLogical(t[3].value),new ub.IfcLogical(t[4].value),t[5].map((e=>new ub.IfcInteger(e.value))),t[6].map((e=>new ub.IfcParameterValue(e.value))),t[7],t[8].map((e=>new ub.IfcReal(e.value)))),979691226:(e,t)=>new ub.IfcReinforcingBar(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new ub.IfcAreaMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13]),2572171363:(e,t)=>new ub.IfcReinforcingBarType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9],t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcAreaMeasure(t[11].value):null,t[12]?new ub.IfcPositiveLengthMeasure(t[12].value):null,t[13],t[14]?new ub.IfcLabel(t[14].value):null,t[15]?t[15].map((e=>tD(2,e))):null),2016517767:(e,t)=>new ub.IfcRoof(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3053780830:(e,t)=>new ub.IfcSanitaryTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1783015770:(e,t)=>new ub.IfcSensorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1329646415:(e,t)=>new ub.IfcShadingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1529196076:(e,t)=>new ub.IfcSlab(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3127900445:(e,t)=>new ub.IfcSlabElementedCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3027962421:(e,t)=>new ub.IfcSlabStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3420628829:(e,t)=>new ub.IfcSolarDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1999602285:(e,t)=>new ub.IfcSpaceHeater(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1404847402:(e,t)=>new ub.IfcStackTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new ub.IfcStair(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new ub.IfcStairFlight(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcInteger(t[8].value):null,t[9]?new ub.IfcInteger(t[9].value):null,t[10]?new ub.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new ub.IfcPositiveLengthMeasure(t[11].value):null,t[12]),2515109513:(e,t)=>new ub.IfcStructuralAnalysisModel(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),385403989:(e,t)=>new ub.IfcStructuralLoadCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new ub.IfcRatioMeasure(t[8].value):null,t[9]?new ub.IfcLabel(t[9].value):null,t[10]?t[10].map((e=>new ub.IfcRatioMeasure(e.value))):null),1621171031:(e,t)=>new ub.IfcStructuralPlanarAction(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new ub.IfcBoolean(t[9].value):null,t[10],t[11]),1162798199:(e,t)=>new ub.IfcSwitchingDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),812556717:(e,t)=>new ub.IfcTank(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3825984169:(e,t)=>new ub.IfcTransformer(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3026737570:(e,t)=>new ub.IfcTubeBundle(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3179687236:(e,t)=>new ub.IfcUnitaryControlElementType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4292641817:(e,t)=>new ub.IfcUnitaryEquipment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4207607924:(e,t)=>new ub.IfcValve(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2391406946:(e,t)=>new ub.IfcWall(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4156078855:(e,t)=>new ub.IfcWallElementedCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3512223829:(e,t)=>new ub.IfcWallStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4237592921:(e,t)=>new ub.IfcWasteTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3304561284:(e,t)=>new ub.IfcWindow(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),486154966:(e,t)=>new ub.IfcWindowStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]?new ub.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new ub.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new ub.IfcLabel(t[12].value):null),2874132201:(e,t)=>new ub.IfcActuatorType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),1634111441:(e,t)=>new ub.IfcAirTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),177149247:(e,t)=>new ub.IfcAirTerminalBox(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2056796094:(e,t)=>new ub.IfcAirToAirHeatRecovery(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3001207471:(e,t)=>new ub.IfcAlarmType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),277319702:(e,t)=>new ub.IfcAudioVisualAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),753842376:(e,t)=>new ub.IfcBeam(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2906023776:(e,t)=>new ub.IfcBeamStandardCase(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),32344328:(e,t)=>new ub.IfcBoiler(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2938176219:(e,t)=>new ub.IfcBurner(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),635142910:(e,t)=>new ub.IfcCableCarrierFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3758799889:(e,t)=>new ub.IfcCableCarrierSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1051757585:(e,t)=>new ub.IfcCableFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4217484030:(e,t)=>new ub.IfcCableSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3902619387:(e,t)=>new ub.IfcChiller(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),639361253:(e,t)=>new ub.IfcCoil(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3221913625:(e,t)=>new ub.IfcCommunicationsAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3571504051:(e,t)=>new ub.IfcCompressor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2272882330:(e,t)=>new ub.IfcCondenser(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),578613899:(e,t)=>new ub.IfcControllerType(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new ub.IfcLabel(t[7].value):null,t[8]?new ub.IfcLabel(t[8].value):null,t[9]),4136498852:(e,t)=>new ub.IfcCooledBeam(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3640358203:(e,t)=>new ub.IfcCoolingTower(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4074379575:(e,t)=>new ub.IfcDamper(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1052013943:(e,t)=>new ub.IfcDistributionChamberElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),562808652:(e,t)=>new ub.IfcDistributionCircuit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new ub.IfcLabel(t[5].value):null,t[6]),1062813311:(e,t)=>new ub.IfcDistributionControlElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null),342316401:(e,t)=>new ub.IfcDuctFitting(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3518393246:(e,t)=>new ub.IfcDuctSegment(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1360408905:(e,t)=>new ub.IfcDuctSilencer(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1904799276:(e,t)=>new ub.IfcElectricAppliance(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),862014818:(e,t)=>new ub.IfcElectricDistributionBoard(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3310460725:(e,t)=>new ub.IfcElectricFlowStorageDevice(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),264262732:(e,t)=>new ub.IfcElectricGenerator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),402227799:(e,t)=>new ub.IfcElectricMotor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1003880860:(e,t)=>new ub.IfcElectricTimeControl(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3415622556:(e,t)=>new ub.IfcFan(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),819412036:(e,t)=>new ub.IfcFilter(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),1426591983:(e,t)=>new ub.IfcFireSuppressionTerminal(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),182646315:(e,t)=>new ub.IfcFlowInstrument(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),2295281155:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnit(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4086658281:(e,t)=>new ub.IfcSensor(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),630975310:(e,t)=>new ub.IfcUnitaryControlElement(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),4288193352:(e,t)=>new ub.IfcActuator(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),3087945054:(e,t)=>new ub.IfcAlarm(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8]),25142252:(e,t)=>new ub.IfcController(e,new ub.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new ub.IfcLabel(t[2].value):null,t[3]?new ub.IfcText(t[3].value):null,t[4]?new ub.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new ub.IfcIdentifier(t[7].value):null,t[8])},qb[2]={618182010:[912023232,3355820592],411424972:[602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],2859738748:[1981873012,775493141,2732653382,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],1785450214:[3057273783],1466758467:[3843373140],4294318154:[1154170062,747523909,2655187982],3200245327:[3732053477,647927063,3452421091,3548104201,1040185647,2242383968],760658860:[2852063980,3708119e3,1838606355,164193824,552965576,2235152071,3303938423,1847252529,248100487],248100487:[1847252529],2235152071:[552965576],1507914824:[3404854881,3079605661,1303795690],1918398963:[2713554722,2889183280,3050246964,448429030],3701648758:[2624227202,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,931644368,2093928680,2044713172],677532197:[4006246654,2559016684,445594917,759155922,1983826977,1775413392,3727388367,3570813810,3510044353,2367409068,1105321065,776857604,3264961684,3285139300,3611470254,1210645708,2133299955,1437953363,2552916305,1742049831,280115917,1640371178,2636378356,597895409,3905492369,616511568,626085974,1351298697,1878645084,846575682,1607154358,3303107099],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,2998442950,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],986844984:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612,2598011224,4165799628,2042790032,1580146022,3778827333,2802850158,3265635763,297599258,3710013099],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,816062949,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,2916149573,2387106220,2294589976,178912537,901063453,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,3958052878],2439245199:[1608871552,2943643501,148025276,1411181986,853536259,1437805879,770865208,539742890,3869604511],2341007311:[781010003,307848117,4186316022,1462361463,693640335,160246688,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080,478536968,3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518,1680319473,Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433,1628702193,219451334],1054537805:[1042787934,1585845231,211053100,1236880293,2771591690,1549132990],3982875396:[1735638870,4240577450],2273995522:[2609359061,4219587988],2162789131:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697,609421318,3478079324],609421318:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],846575682:[1878645084],626085974:[597895409,3905492369,616511568],1549132990:[2771591690],280115917:[2133299955,1437953363,2552916305,1742049831],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],3798115385:[2705031697],1310608509:[3150382593],3264961684:[776857604],370225590:[2205249479,2665983363],2889183280:[2713554722],3632507154:[2998442950],3900360178:[2233826070,1029017970,476780140],297599258:[2802850158,3265635763],2556980723:[3406155212,3008276851],1809719519:[803316827],3008276851:[3406155212],3448662350:[4142052618],2453401579:[315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,816062949,2485617015,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,2916149573,2387106220,2294589976,178912537,901063453,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214,723233188,4124623270,1509187699,1123145078,1423911732,4022376103,2067069095,603570806,1663979128,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1437953363:[2133299955],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],3079605661:[3404854881],219451334:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433,1628702193],2529465313:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103],3727388367:[4006246654,2559016684,445594917,759155922,1983826977,1775413392],3778827333:[4165799628,2042790032,1580146022],1775413392:[1983826977],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1680319473:[3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518],3357820518:[1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900],1482703590:[3875453745,3663146110,3521284610,492091185],2090586900:[1883228015],3615266464:[2770003689,2778083089],478536968:[781010003,307848117,4186316022,1462361463,693640335,160246688,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],723233188:[3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,2028607225,3243963512,1856042241,2652556860,2804161546,477187591,2247615214],2473145415:[1973038258],1597423693:[1190533807],2513912981:[1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[2028607225,3243963512,1856042241,2652556860,2804161546,477187591],1260650574:[1096409881],230924584:[4124788165,2809605785],901063453:[2839578677,2916149573,2387106220,2294589976,178912537],4282788508:[3124975700],1628702193:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871,2347495698,3206491090,569719735,4024345920,3736923433],3736923433:[3206491090,569719735,4024345920],2347495698:[2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223,339256511,526551008,1299126871],3698973494:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495],2736907675:[3649129432],4182860854:[683857671,167062518,2887950389,3454111270,2629017746,2827736869],574549367:[2059837836,1675464909],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2485617015:[816062949],2574617495:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380],3419103109:[653396225,103090709],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,1682466193,3505215534,3388369263,Wb],339256511:[2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202,1950629157,2097647324,4095422895,1580310250,1268542332,4238390223],2777663545:[1213902940,1935646853,4015995234,220341763],477187591:[2804161546],4238390223:[1580310250,1268542332],178912537:[2294589976],1425443689:[3737207727,807026263,2603310189,1635779807],3888040117:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653,4208778838,2744685151,4148101412,Qb,2945172077],759155922:[445594917],2559016684:[4006246654],3967405729:[3566463478,1714330368,2963535650,512836454,336235671,3765753017],2945172077:[2744685151,4148101412,Qb],4208778838:[3041715199,Vb,kb,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064,1412071761,3219374653],3521284610:[3875453745,3663146110],3939117080:[205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259],1307041759:[1027710054],1865459582:[2655215786,3840914261,982818633,2728634034,919958153,4095574036],826625072:[1521410863,3523091289,3451746338,366585022,4122056220,1245217292,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,1401173127,750771296,3268803585],693640335:[781010003,307848117,4186316022,1462361463],3451746338:[1521410863,3523091289],3523091289:[1521410863],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],1856042241:[3243963512],1412071761:[1209101575,2853485674,463610769,Gb,jb,3124254112,4031249490,2706606064],710998568:[2481509218,3812236995,3893378262],2706606064:[Gb,jb,3124254112,4031249490],3893378262:[3812236995],3544373492:[1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126,2757150158,603775116],3979015343:[2218152070],699246055:[2157484638,3113134337],2387106220:[2839578677,2916149573],2296667514:[4143007308],1635779807:[2603310189],2887950389:[683857671,167062518],167062518:[683857671],1260505505:[1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,144952367,1136057603,15328376,3732776249],1950629157:[1909888760,819618141,4009809668,1898987631,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,4017108033,1158309216,3181161470,1893162501,2323601079,1457835157,1916426348,300633059,2197970202],3732776249:[144952367,1136057603,15328376],15328376:[144952367,1136057603],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033],3256556792:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793],3849074793:[1599208980,1810631287,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300],1758889154:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175,3299480353,2769231204,1620046519,3493046030,413509423,1509553395,263784265,3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555,1623761950,4123344466],1623761950:[1335981549,2979338954,2391383451,979691226,2347447852,Ob,2320036040,3027567501,377706215,647756555],2590856083:[2635815018,39481116,3313531582,2572171363,2415094496,3081323446,2310774935,964333572,2108223431,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988],2853485674:[1209101575],807026263:[3737207727],2827207264:[3101698114,926996030,3079942009,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[926996030,3079942009,3588315303],3907093117:[712377611,2417008758,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,2674252688,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1768891740,2837617999,1114901282,1161773419,1051575348],3009222698:[1810631287,2030761528,3946677679],263784265:[413509423,1509553395],2706460486:[Hb,2515109513,562808652,3205830791,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822],3588315303:[3079942009],3740093272:[3041715199],3027567501:[979691226,2347447852,Ob,2320036040],964333572:[2572171363,2415094496,3081323446,2310774935],682877961:[1621171031,3657597509,2082059205,1807405624,1004757350],1179482911:[1975003073,734778138,4243806635],1004757350:[1807405624],214636428:[2445595289],1252848954:[385403989],3657597509:[1621171031],2254336722:[2515109513,562808652,3205830791,1177604601,Ub],1028945134:[3342526732,4218914973],1967976161:[1232101972,2461110595],2461110595:[1232101972],1136057603:[144952367],3299480353:[2906023776,_b,486154966,3304561284,3512223829,4156078855,Bb,4252922144,331165859,3027962421,3127900445,Sb,1329646415,Nb,3283111854,xb,2262370178,1156407060,Lb,Mb,1911478936,1073191201,900683007,3242481149,Fb,3495092785,1973544240,905975707,843113511,3296154744,1095909175],843113511:[905975707],2063403501:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832],1945004755:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961],3040386961:[1052013943,819412036,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314],3205830791:[562808652],395920057:[3242481149],1658829314:[402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492],2058353004:[1003880860,862014818,4074379575,177149247,Rb,1162798199,738039164,2188021234],4278956645:[342316401,1051757585,635142910,310824031,2176052936],3132237377:[Db,3571504051,90941305],987401354:[3518393246,4217484030,3758799889,3612865200],707683696:[3310460725,Cb],2223149337:[1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,3053780830,3694346114,1437502449,629592764,76236018],3508470533:[819412036,1360408905,4175244083],1073191201:[1911478936],3171933400:[1156407060],1529196076:[3027962421,3127900445],2391406946:[3512223829,4156078855],3304561284:[486154966],753842376:[2906023776],1062813311:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315]},Xb[2]={3630933823:[["HasExternalReference",1437805879,3,!0]],618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["HasExternalReference",1437805879,3,!0]],130549933:[["HasExternalReferences",1437805879,3,!0],["ApprovedObjects",4095574036,5,!0],["ApprovedResources",2943643501,3,!0],["IsRelatedWith",3869604511,3,!0],["Relates",3869604511,2,!0]],1959218052:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],1466758467:[["HasCoordinateOperation",1785450214,0,!0]],602808272:[["HasExternalReference",1437805879,3,!0]],3200245327:[["ExternalReferenceForResources",1437805879,2,!0]],2242383968:[["ExternalReferenceForResources",1437805879,2,!0]],1040185647:[["ExternalReferenceForResources",1437805879,2,!0]],3548104201:[["ExternalReferenceForResources",1437805879,2,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],2655187982:[["LibraryInfoForObjects",3840914261,5,!0],["HasLibraryReferences",3452421091,5,!0]],3452421091:[["ExternalReferenceForResources",1437805879,2,!0],["LibraryRefForObjects",3840914261,5,!0]],760658860:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],248100487:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],3303938423:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1847252529:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],2235152071:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],164193824:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],552965576:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],1507914824:[["AssociatedTo",2655215786,5,!0]],3368373690:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],2251480897:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2226359599:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3958567839:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3843373140:[["HasCoordinateOperation",1785450214,0,!0]],986844984:[["HasExternalReferences",1437805879,3,!0]],3710013099:[["HasExternalReferences",1437805879,3,!0]],2044713172:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2093928680:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],931644368:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3252649465:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2405470396:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],825690147:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["HasShapeAspects",867548509,4,!0],["MapUsage",2347385850,0,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],626085974:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3101149627:[["HasExternalReference",1437805879,3,!0]],1377556343:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798115385:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1310608509:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2705031697:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],616511568:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3150382593:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],747523909:[["ClassificationForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],647927063:[["ExternalReferenceForResources",1437805879,2,!0],["ClassificationRefForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],1485152156:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],370225590:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3050246964:[["HasExternalReference",1437805879,3,!0]],2889183280:[["HasExternalReference",1437805879,3,!0]],2713554722:[["HasExternalReference",1437805879,3,!0]],3632507154:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1154170062:[["DocumentInfoForObjects",982818633,5,!0],["HasDocumentReferences",3732053477,4,!0],["IsPointedTo",770865208,3,!0],["IsPointer",770865208,2,!0]],3732053477:[["ExternalReferenceForResources",1437805879,2,!0],["DocumentRefForObjects",982818633,5,!0]],3900360178:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],297599258:[["HasExternalReferences",1437805879,3,!0]],2556980723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],1809719519:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],2453401579:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],3590301190:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],812098782:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3905492369:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3741457305:[["HasExternalReference",1437805879,3,!0]],1402838566:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",2624227202,0,!0]],1008929658:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1838606355:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["HasRepresentation",2022407955,3,!0],["IsRelatedWith",853536259,3,!0],["RelatesTo",853536259,2,!0]],3708119e3:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialConstituentSet",2852063980,2,!1]],2852063980:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1303795690:[["AssociatedTo",2655215786,5,!0]],3079605661:[["AssociatedTo",2655215786,5,!0]],3404854881:[["AssociatedTo",2655215786,5,!0]],3265635763:[["HasExternalReferences",1437805879,3,!0]],2998442950:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],219451334:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0]],2665983363:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2529465313:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2519244187:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],597895409:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],2004835150:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3778827333:[["HasExternalReferences",1437805879,3,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],2802850158:[["HasExternalReferences",1437805879,3,!0]],2598011224:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1680319473:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],3357820518:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1482703590:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],2090586900:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3615266464:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3413951693:[["HasExternalReference",1437805879,3,!0]],1580146022:[["HasExternalReferences",1437805879,3,!0]],2778083089:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2042790032:[["HasExternalReferences",1437805879,3,!0]],4165799628:[["HasExternalReferences",1437805879,3,!0]],1509187699:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124623270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3692461612:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],723233188:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2233826070:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1096409881:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3071757647:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],901063453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2715220739:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0]],3736923433:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3698973494:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],427810014:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1417489154:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1299126871:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2543172580:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3406155212:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],669184980:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3207858831:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4261334040:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2898889636:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1123145078:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],574549367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1675464909:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2059837836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1383045692:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2205249479:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2485617015:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2574617495:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],3419103109:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],1815067380:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2506170314:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2629017746:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],32440307:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],526551008:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1472233963:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2777663545:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2835456948:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4024345920:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],477187591:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2804161546:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2652556860:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4095422895:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],987898635:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1484403080:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],178912537:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0]],2294589976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0]],572779678:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],428585644:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1281925730:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0]],3388369263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1682466193:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],603570806:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3967405729:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],569719735:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0]],103090709:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],653396225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],871118103:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],4166981789:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2752243245:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],941946838:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1451395588:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],492091185:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["Defines",307848117,5,!0]],3650150729:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],110355661:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],3521284610:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3219374653:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0]],2770003689:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2798486643:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3765753017:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3523091289:[["InnerBoundaries",3523091289,9,!0]],1521410863:[["InnerBoundaries",3523091289,9,!0],["Corresponds",1521410863,10,!0]],816062949:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3243963512:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3663146110:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],1412071761:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],710998568:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],463610769:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2481509218:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],451544542:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4015995234:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],3136571912:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],603775116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],4095615324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],699246055:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2028607225:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],3206491090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2387106220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],1935646853:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2916149573:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],336235671:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],512836454:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],1635779807:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2603310189:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2887950389:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],167062518:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1334484129:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],1950629157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2197970202:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2937912522:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3893394355:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],300633059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3875453745:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3732776249:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],15328376:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2185764099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],4105962743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1525564444:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1213902940:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2963535650:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1714330368:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2323601079:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2397081782:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1704287377:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],132023988:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4148101412:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2853485674:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],807026263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],647756555:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1893162501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],263784265:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1509553395:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3493046030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedInStructure",3242617779,4,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],1251058090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2571569899:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3946677679:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3113134337:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],4288270099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],377706215:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1114901282:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],977012517:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],3079942009:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3566463478:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1158309216:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2839578677:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3724593414:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1469900589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],683857671:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],964333572:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2310774935:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2781568857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2157484638:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4074543187:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1072016465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],338393293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],682877961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1179482911:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1004757350:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2757150158:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1252848954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],2082059205:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],734778138:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ResultGroupFor",2515109513,8,!0]],3657597509:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3101698114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2315554128:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],413509423:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3081323446:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2415094496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3593883385:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],728799441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2391383451:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],926996030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["VoidsElements",1401173127,5,!1]],1898987631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4009809668:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4088093105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0]],1532957894:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1967976161:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2461110595:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],231477066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1136057603:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3299480353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],39481116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1177604601:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],2188180465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],395041908:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2674252688:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3296154744:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2611217952:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1677625105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],843113511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],905975707:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],400855858:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["CoversSpaces",2802773753,5,!0],["CoversElements",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],3205830791:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3242481149:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],663422040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2417008758:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],712377611:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2814081492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3747195512:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],484807127:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1209101575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["BoundedBy",3451746338,4,!0]],346874300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2188021234:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3319311131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2068733104:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4175244083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2176052936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],76236018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],629592764:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1437502449:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1911478936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2474470126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],144952367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3694346114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],310824031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3612865200:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1156407060:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],738039164:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],655969474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],90941305:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1232101972:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],979691226:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2572171363:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3053780830:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1783015770:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1329646415:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3127900445:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3027962421:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3420628829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1999602285:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1404847402:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],331165859:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],385403989:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["AssignedToStructuralItem",2127690289,5,!0]],1162798199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],812556717:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3825984169:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3026737570:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3179687236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4292641817:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4207607924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4156078855:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],4237592921:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],486154966:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1634111441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],177149247:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2056796094:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],277319702:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],2906023776:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0]],32344328:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2938176219:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],635142910:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3758799889:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1051757585:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4217484030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3902619387:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],639361253:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3221913625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3571504051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2272882330:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],578613899:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4136498852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3640358203:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4074379575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],562808652:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ServicesBuildings",366585022,4,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],342316401:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3518393246:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1360408905:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1904799276:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],862014818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3310460725:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],264262732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],402227799:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1003880860:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3415622556:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],819412036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1426591983:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],182646315:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],2295281155:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4086658281:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],630975310:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4288193352:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],3087945054:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],25142252:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["ReferencedInStructures",1245217292,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]]},Jb[2]={3630933823:(e,t)=>new ub.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new ub.IfcAddress(e,t[0],t[1],t[2]),639542469:(e,t)=>new ub.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new ub.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),130549933:(e,t)=>new ub.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4037036970:(e,t)=>new ub.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new ub.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new ub.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new ub.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new ub.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2859738748:(e,t)=>new ub.IfcConnectionGeometry(e),2614616156:(e,t)=>new ub.IfcConnectionPointGeometry(e,t[0],t[1]),2732653382:(e,t)=>new ub.IfcConnectionSurfaceGeometry(e,t[0],t[1]),775493141:(e,t)=>new ub.IfcConnectionVolumeGeometry(e,t[0],t[1]),1959218052:(e,t)=>new ub.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1785450214:(e,t)=>new ub.IfcCoordinateOperation(e,t[0],t[1]),1466758467:(e,t)=>new ub.IfcCoordinateReferenceSystem(e,t[0],t[1],t[2],t[3]),602808272:(e,t)=>new ub.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1765591967:(e,t)=>new ub.IfcDerivedUnit(e,t[0],t[1],t[2]),1045800335:(e,t)=>new ub.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new ub.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4294318154:(e,t)=>new ub.IfcExternalInformation(e),3200245327:(e,t)=>new ub.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new ub.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new ub.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3548104201:(e,t)=>new ub.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new ub.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new ub.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new ub.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4],t[5]),3452421091:(e,t)=>new ub.IfcLibraryReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),4162380809:(e,t)=>new ub.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new ub.IfcLightIntensityDistribution(e,t[0],t[1]),3057273783:(e,t)=>new ub.IfcMapConversion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1847130766:(e,t)=>new ub.IfcMaterialClassificationRelationship(e,t[0],t[1]),760658860:(e,t)=>new ub.IfcMaterialDefinition(e),248100487:(e,t)=>new ub.IfcMaterialLayer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3303938423:(e,t)=>new ub.IfcMaterialLayerSet(e,t[0],t[1],t[2]),1847252529:(e,t)=>new ub.IfcMaterialLayerWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2199411900:(e,t)=>new ub.IfcMaterialList(e,t[0]),2235152071:(e,t)=>new ub.IfcMaterialProfile(e,t[0],t[1],t[2],t[3],t[4],t[5]),164193824:(e,t)=>new ub.IfcMaterialProfileSet(e,t[0],t[1],t[2],t[3]),552965576:(e,t)=>new ub.IfcMaterialProfileWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1507914824:(e,t)=>new ub.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new ub.IfcMeasureWithUnit(e,t[0],t[1]),3368373690:(e,t)=>new ub.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706619895:(e,t)=>new ub.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new ub.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new ub.IfcObjectPlacement(e),2251480897:(e,t)=>new ub.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4251960020:(e,t)=>new ub.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1207048766:(e,t)=>new ub.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new ub.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new ub.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new ub.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new ub.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new ub.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),677532197:(e,t)=>new ub.IfcPresentationItem(e),2022622350:(e,t)=>new ub.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new ub.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new ub.IfcPresentationStyle(e,t[0]),2417041796:(e,t)=>new ub.IfcPresentationStyleAssignment(e,t[0]),2095639259:(e,t)=>new ub.IfcProductRepresentation(e,t[0],t[1],t[2]),3958567839:(e,t)=>new ub.IfcProfileDef(e,t[0],t[1]),3843373140:(e,t)=>new ub.IfcProjectedCRS(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),986844984:(e,t)=>new ub.IfcPropertyAbstraction(e),3710013099:(e,t)=>new ub.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new ub.IfcQuantityArea(e,t[0],t[1],t[2],t[3],t[4]),2093928680:(e,t)=>new ub.IfcQuantityCount(e,t[0],t[1],t[2],t[3],t[4]),931644368:(e,t)=>new ub.IfcQuantityLength(e,t[0],t[1],t[2],t[3],t[4]),3252649465:(e,t)=>new ub.IfcQuantityTime(e,t[0],t[1],t[2],t[3],t[4]),2405470396:(e,t)=>new ub.IfcQuantityVolume(e,t[0],t[1],t[2],t[3],t[4]),825690147:(e,t)=>new ub.IfcQuantityWeight(e,t[0],t[1],t[2],t[3],t[4]),3915482550:(e,t)=>new ub.IfcRecurrencePattern(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2433181523:(e,t)=>new ub.IfcReference(e,t[0],t[1],t[2],t[3],t[4]),1076942058:(e,t)=>new ub.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new ub.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new ub.IfcRepresentationItem(e),1660063152:(e,t)=>new ub.IfcRepresentationMap(e,t[0],t[1]),2439245199:(e,t)=>new ub.IfcResourceLevelRelationship(e,t[0],t[1]),2341007311:(e,t)=>new ub.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new ub.IfcSIUnit(e,t[0],t[1],t[2]),1054537805:(e,t)=>new ub.IfcSchedulingTime(e,t[0],t[1],t[2]),867548509:(e,t)=>new ub.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new ub.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new ub.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),2273995522:(e,t)=>new ub.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new ub.IfcStructuralLoad(e,t[0]),3478079324:(e,t)=>new ub.IfcStructuralLoadConfiguration(e,t[0],t[1],t[2]),609421318:(e,t)=>new ub.IfcStructuralLoadOrResult(e,t[0]),2525727697:(e,t)=>new ub.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new ub.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new ub.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new ub.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new ub.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),2934153892:(e,t)=>new ub.IfcSurfaceReinforcementArea(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new ub.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new ub.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new ub.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new ub.IfcSurfaceStyleShading(e,t[0],t[1]),1351298697:(e,t)=>new ub.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new ub.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3],t[4]),985171141:(e,t)=>new ub.IfcTable(e,t[0],t[1],t[2]),2043862942:(e,t)=>new ub.IfcTableColumn(e,t[0],t[1],t[2],t[3],t[4]),531007025:(e,t)=>new ub.IfcTableRow(e,t[0],t[1]),1549132990:(e,t)=>new ub.IfcTaskTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),2771591690:(e,t)=>new ub.IfcTaskTimeRecurring(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20]),912023232:(e,t)=>new ub.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1447204868:(e,t)=>new ub.IfcTextStyle(e,t[0],t[1],t[2],t[3],t[4]),2636378356:(e,t)=>new ub.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new ub.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),280115917:(e,t)=>new ub.IfcTextureCoordinate(e,t[0]),1742049831:(e,t)=>new ub.IfcTextureCoordinateGenerator(e,t[0],t[1],t[2]),2552916305:(e,t)=>new ub.IfcTextureMap(e,t[0],t[1],t[2]),1210645708:(e,t)=>new ub.IfcTextureVertex(e,t[0]),3611470254:(e,t)=>new ub.IfcTextureVertexList(e,t[0]),1199560280:(e,t)=>new ub.IfcTimePeriod(e,t[0],t[1]),3101149627:(e,t)=>new ub.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),581633288:(e,t)=>new ub.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new ub.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new ub.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new ub.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new ub.IfcVertex(e),1907098498:(e,t)=>new ub.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new ub.IfcVirtualGridIntersection(e,t[0],t[1]),1236880293:(e,t)=>new ub.IfcWorkTime(e,t[0],t[1],t[2],t[3],t[4],t[5]),3869604511:(e,t)=>new ub.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),3798115385:(e,t)=>new ub.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new ub.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new ub.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new ub.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3150382593:(e,t)=>new ub.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),747523909:(e,t)=>new ub.IfcClassification(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),647927063:(e,t)=>new ub.IfcClassificationReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),3285139300:(e,t)=>new ub.IfcColourRgbList(e,t[0]),3264961684:(e,t)=>new ub.IfcColourSpecification(e,t[0]),1485152156:(e,t)=>new ub.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new ub.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new ub.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new ub.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new ub.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new ub.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),2713554722:(e,t)=>new ub.IfcConversionBasedUnitWithOffset(e,t[0],t[1],t[2],t[3],t[4]),539742890:(e,t)=>new ub.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3800577675:(e,t)=>new ub.IfcCurveStyle(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new ub.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new ub.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new ub.IfcCurveStyleFontPattern(e,t[0],t[1]),3632507154:(e,t)=>new ub.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),1154170062:(e,t)=>new ub.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new ub.IfcDocumentInformationRelationship(e,t[0],t[1],t[2],t[3],t[4]),3732053477:(e,t)=>new ub.IfcDocumentReference(e,t[0],t[1],t[2],t[3],t[4]),3900360178:(e,t)=>new ub.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new ub.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),211053100:(e,t)=>new ub.IfcEventTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),297599258:(e,t)=>new ub.IfcExtendedProperties(e,t[0],t[1],t[2]),1437805879:(e,t)=>new ub.IfcExternalReferenceRelationship(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new ub.IfcFace(e,t[0]),1809719519:(e,t)=>new ub.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new ub.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new ub.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new ub.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new ub.IfcFillAreaStyle(e,t[0],t[1],t[2]),3448662350:(e,t)=>new ub.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new ub.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new ub.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),3590301190:(e,t)=>new ub.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new ub.IfcGridPlacement(e,t[0],t[1]),812098782:(e,t)=>new ub.IfcHalfSpaceSolid(e,t[0],t[1]),3905492369:(e,t)=>new ub.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3570813810:(e,t)=>new ub.IfcIndexedColourMap(e,t[0],t[1],t[2],t[3]),1437953363:(e,t)=>new ub.IfcIndexedTextureMap(e,t[0],t[1],t[2]),2133299955:(e,t)=>new ub.IfcIndexedTriangleTextureMap(e,t[0],t[1],t[2],t[3]),3741457305:(e,t)=>new ub.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1585845231:(e,t)=>new ub.IfcLagTime(e,t[0],t[1],t[2],t[3],t[4]),1402838566:(e,t)=>new ub.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new ub.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new ub.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new ub.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new ub.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new ub.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2624227202:(e,t)=>new ub.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new ub.IfcLoop(e),2347385850:(e,t)=>new ub.IfcMappedItem(e,t[0],t[1]),1838606355:(e,t)=>new ub.IfcMaterial(e,t[0],t[1],t[2]),3708119e3:(e,t)=>new ub.IfcMaterialConstituent(e,t[0],t[1],t[2],t[3],t[4]),2852063980:(e,t)=>new ub.IfcMaterialConstituentSet(e,t[0],t[1],t[2]),2022407955:(e,t)=>new ub.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1303795690:(e,t)=>new ub.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3],t[4]),3079605661:(e,t)=>new ub.IfcMaterialProfileSetUsage(e,t[0],t[1],t[2]),3404854881:(e,t)=>new ub.IfcMaterialProfileSetUsageTapering(e,t[0],t[1],t[2],t[3],t[4]),3265635763:(e,t)=>new ub.IfcMaterialProperties(e,t[0],t[1],t[2],t[3]),853536259:(e,t)=>new ub.IfcMaterialRelationship(e,t[0],t[1],t[2],t[3],t[4]),2998442950:(e,t)=>new ub.IfcMirroredProfileDef(e,t[0],t[1],t[2],t[3]),219451334:(e,t)=>new ub.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),2665983363:(e,t)=>new ub.IfcOpenShell(e,t[0]),1411181986:(e,t)=>new ub.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1029017970:(e,t)=>new ub.IfcOrientedEdge(e,t[0],t[1]),2529465313:(e,t)=>new ub.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new ub.IfcPath(e,t[0]),3021840470:(e,t)=>new ub.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new ub.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2004835150:(e,t)=>new ub.IfcPlacement(e,t[0]),1663979128:(e,t)=>new ub.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new ub.IfcPoint(e),4022376103:(e,t)=>new ub.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new ub.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new ub.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new ub.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),3727388367:(e,t)=>new ub.IfcPreDefinedItem(e,t[0]),3778827333:(e,t)=>new ub.IfcPreDefinedProperties(e),1775413392:(e,t)=>new ub.IfcPreDefinedTextFont(e,t[0]),673634403:(e,t)=>new ub.IfcProductDefinitionShape(e,t[0],t[1],t[2]),2802850158:(e,t)=>new ub.IfcProfileProperties(e,t[0],t[1],t[2],t[3]),2598011224:(e,t)=>new ub.IfcProperty(e,t[0],t[1]),1680319473:(e,t)=>new ub.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new ub.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3357820518:(e,t)=>new ub.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),1482703590:(e,t)=>new ub.IfcPropertyTemplateDefinition(e,t[0],t[1],t[2],t[3]),2090586900:(e,t)=>new ub.IfcQuantitySet(e,t[0],t[1],t[2],t[3]),3615266464:(e,t)=>new ub.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new ub.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1580146022:(e,t)=>new ub.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new ub.IfcRelationship(e,t[0],t[1],t[2],t[3]),2943643501:(e,t)=>new ub.IfcResourceApprovalRelationship(e,t[0],t[1],t[2],t[3]),1608871552:(e,t)=>new ub.IfcResourceConstraintRelationship(e,t[0],t[1],t[2],t[3]),1042787934:(e,t)=>new ub.IfcResourceTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2778083089:(e,t)=>new ub.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),2042790032:(e,t)=>new ub.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new ub.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new ub.IfcSectionedSpine(e,t[0],t[1],t[2]),4124623270:(e,t)=>new ub.IfcShellBasedSurfaceModel(e,t[0]),3692461612:(e,t)=>new ub.IfcSimpleProperty(e,t[0],t[1]),2609359061:(e,t)=>new ub.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new ub.IfcSolidModel(e),1595516126:(e,t)=>new ub.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new ub.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new ub.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new ub.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new ub.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new ub.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2233826070:(e,t)=>new ub.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new ub.IfcSurface(e),1878645084:(e,t)=>new ub.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new ub.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new ub.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),1096409881:(e,t)=>new ub.IfcSweptDiskSolidPolygonal(e,t[0],t[1],t[2],t[3],t[4],t[5]),230924584:(e,t)=>new ub.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new ub.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),901063453:(e,t)=>new ub.IfcTessellatedItem(e),4282788508:(e,t)=>new ub.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new ub.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),1983826977:(e,t)=>new ub.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2715220739:(e,t)=>new ub.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1628702193:(e,t)=>new ub.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),3736923433:(e,t)=>new ub.IfcTypeProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2347495698:(e,t)=>new ub.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3698973494:(e,t)=>new ub.IfcTypeResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),427810014:(e,t)=>new ub.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1417489154:(e,t)=>new ub.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new ub.IfcVertexLoop(e,t[0]),1299126871:(e,t)=>new ub.IfcWindowStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2543172580:(e,t)=>new ub.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3406155212:(e,t)=>new ub.IfcAdvancedFace(e,t[0],t[1],t[2]),669184980:(e,t)=>new ub.IfcAnnotationFillArea(e,t[0],t[1]),3207858831:(e,t)=>new ub.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4261334040:(e,t)=>new ub.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new ub.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new ub.IfcAxis2Placement3D(e,t[0],t[1],t[2]),2736907675:(e,t)=>new ub.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new ub.IfcBoundedSurface(e),2581212453:(e,t)=>new ub.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new ub.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new ub.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1123145078:(e,t)=>new ub.IfcCartesianPoint(e,t[0]),574549367:(e,t)=>new ub.IfcCartesianPointList(e),1675464909:(e,t)=>new ub.IfcCartesianPointList2D(e,t[0]),2059837836:(e,t)=>new ub.IfcCartesianPointList3D(e,t[0]),59481748:(e,t)=>new ub.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new ub.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new ub.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new ub.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new ub.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new ub.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new ub.IfcClosedShell(e,t[0]),776857604:(e,t)=>new ub.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new ub.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),2485617015:(e,t)=>new ub.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),2574617495:(e,t)=>new ub.IfcConstructionResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3419103109:(e,t)=>new ub.IfcContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1815067380:(e,t)=>new ub.IfcCrewResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new ub.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new ub.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new ub.IfcCurve(e),2827736869:(e,t)=>new ub.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),2629017746:(e,t)=>new ub.IfcCurveBoundedSurface(e,t[0],t[1],t[2]),32440307:(e,t)=>new ub.IfcDirection(e,t[0]),526551008:(e,t)=>new ub.IfcDoorStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1472233963:(e,t)=>new ub.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new ub.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new ub.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new ub.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new ub.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),4024345920:(e,t)=>new ub.IfcEventType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),477187591:(e,t)=>new ub.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2804161546:(e,t)=>new ub.IfcExtrudedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),2047409740:(e,t)=>new ub.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new ub.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),315944413:(e,t)=>new ub.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),2652556860:(e,t)=>new ub.IfcFixedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),4238390223:(e,t)=>new ub.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new ub.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4095422895:(e,t)=>new ub.IfcGeographicElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new ub.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new ub.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),178912537:(e,t)=>new ub.IfcIndexedPolygonalFace(e,t[0]),2294589976:(e,t)=>new ub.IfcIndexedPolygonalFaceWithVoids(e,t[0],t[1]),572779678:(e,t)=>new ub.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),428585644:(e,t)=>new ub.IfcLaborResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1281925730:(e,t)=>new ub.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new ub.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new ub.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),3388369263:(e,t)=>new ub.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new ub.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),1682466193:(e,t)=>new ub.IfcPcurve(e,t[0],t[1]),603570806:(e,t)=>new ub.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new ub.IfcPlane(e,t[0]),759155922:(e,t)=>new ub.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new ub.IfcPreDefinedCurveFont(e,t[0]),3967405729:(e,t)=>new ub.IfcPreDefinedPropertySet(e,t[0],t[1],t[2],t[3]),569719735:(e,t)=>new ub.IfcProcedureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2945172077:(e,t)=>new ub.IfcProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4208778838:(e,t)=>new ub.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new ub.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),653396225:(e,t)=>new ub.IfcProjectLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),871118103:(e,t)=>new ub.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4166981789:(e,t)=>new ub.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new ub.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new ub.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),1451395588:(e,t)=>new ub.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),492091185:(e,t)=>new ub.IfcPropertySetTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3650150729:(e,t)=>new ub.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new ub.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3521284610:(e,t)=>new ub.IfcPropertyTemplate(e,t[0],t[1],t[2],t[3]),3219374653:(e,t)=>new ub.IfcProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2770003689:(e,t)=>new ub.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new ub.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new ub.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3765753017:(e,t)=>new ub.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3939117080:(e,t)=>new ub.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new ub.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new ub.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new ub.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1027710054:(e,t)=>new ub.IfcRelAssignsToGroupByFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278684876:(e,t)=>new ub.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new ub.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new ub.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new ub.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),4095574036:(e,t)=>new ub.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new ub.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new ub.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new ub.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new ub.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new ub.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),826625072:(e,t)=>new ub.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new ub.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new ub.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new ub.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new ub.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new ub.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new ub.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new ub.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new ub.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new ub.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new ub.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new ub.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2565941209:(e,t)=>new ub.IfcRelDeclares(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new ub.IfcRelDecomposes(e,t[0],t[1],t[2],t[3]),693640335:(e,t)=>new ub.IfcRelDefines(e,t[0],t[1],t[2],t[3]),1462361463:(e,t)=>new ub.IfcRelDefinesByObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),4186316022:(e,t)=>new ub.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),307848117:(e,t)=>new ub.IfcRelDefinesByTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new ub.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new ub.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new ub.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),427948657:(e,t)=>new ub.IfcRelInterferesElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3268803585:(e,t)=>new ub.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),750771296:(e,t)=>new ub.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new ub.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),4122056220:(e,t)=>new ub.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),366585022:(e,t)=>new ub.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new ub.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3523091289:(e,t)=>new ub.IfcRelSpaceBoundary1stLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1521410863:(e,t)=>new ub.IfcRelSpaceBoundary2ndLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1401173127:(e,t)=>new ub.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),816062949:(e,t)=>new ub.IfcReparametrisedCompositeCurveSegment(e,t[0],t[1],t[2],t[3]),2914609552:(e,t)=>new ub.IfcResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1856042241:(e,t)=>new ub.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),3243963512:(e,t)=>new ub.IfcRevolvedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),4158566097:(e,t)=>new ub.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new ub.IfcRightCircularCylinder(e,t[0],t[1],t[2]),3663146110:(e,t)=>new ub.IfcSimplePropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1412071761:(e,t)=>new ub.IfcSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),710998568:(e,t)=>new ub.IfcSpatialElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2706606064:(e,t)=>new ub.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new ub.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),463610769:(e,t)=>new ub.IfcSpatialZone(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2481509218:(e,t)=>new ub.IfcSpatialZoneType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),451544542:(e,t)=>new ub.IfcSphere(e,t[0],t[1]),4015995234:(e,t)=>new ub.IfcSphericalSurface(e,t[0],t[1]),3544373492:(e,t)=>new ub.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new ub.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new ub.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new ub.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new ub.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new ub.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603775116:(e,t)=>new ub.IfcStructuralSurfaceReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4095615324:(e,t)=>new ub.IfcSubContractResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),699246055:(e,t)=>new ub.IfcSurfaceCurve(e,t[0],t[1],t[2]),2028607225:(e,t)=>new ub.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new ub.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new ub.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new ub.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3473067441:(e,t)=>new ub.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3206491090:(e,t)=>new ub.IfcTaskType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2387106220:(e,t)=>new ub.IfcTessellatedFaceSet(e,t[0]),1935646853:(e,t)=>new ub.IfcToroidalSurface(e,t[0],t[1],t[2]),2097647324:(e,t)=>new ub.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2916149573:(e,t)=>new ub.IfcTriangulatedFaceSet(e,t[0],t[1],t[2],t[3],t[4]),336235671:(e,t)=>new ub.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),512836454:(e,t)=>new ub.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2296667514:(e,t)=>new ub.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1635779807:(e,t)=>new ub.IfcAdvancedBrep(e,t[0]),2603310189:(e,t)=>new ub.IfcAdvancedBrepWithVoids(e,t[0],t[1]),1674181508:(e,t)=>new ub.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2887950389:(e,t)=>new ub.IfcBSplineSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),167062518:(e,t)=>new ub.IfcBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new ub.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new ub.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new ub.IfcBoundedCurve(e),4031249490:(e,t)=>new ub.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1950629157:(e,t)=>new ub.IfcBuildingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3124254112:(e,t)=>new ub.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2197970202:(e,t)=>new ub.IfcChimneyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new ub.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3893394355:(e,t)=>new ub.IfcCivilElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),300633059:(e,t)=>new ub.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3875453745:(e,t)=>new ub.IfcComplexPropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3732776249:(e,t)=>new ub.IfcCompositeCurve(e,t[0],t[1]),15328376:(e,t)=>new ub.IfcCompositeCurveOnSurface(e,t[0],t[1]),2510884976:(e,t)=>new ub.IfcConic(e,t[0]),2185764099:(e,t)=>new ub.IfcConstructionEquipmentResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4105962743:(e,t)=>new ub.IfcConstructionMaterialResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1525564444:(e,t)=>new ub.IfcConstructionProductResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2559216714:(e,t)=>new ub.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293443760:(e,t)=>new ub.IfcControl(e,t[0],t[1],t[2],t[3],t[4],t[5]),3895139033:(e,t)=>new ub.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1419761937:(e,t)=>new ub.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916426348:(e,t)=>new ub.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new ub.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1457835157:(e,t)=>new ub.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1213902940:(e,t)=>new ub.IfcCylindricalSurface(e,t[0],t[1]),3256556792:(e,t)=>new ub.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new ub.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2963535650:(e,t)=>new ub.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),1714330368:(e,t)=>new ub.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2323601079:(e,t)=>new ub.IfcDoorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),445594917:(e,t)=>new ub.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new ub.IfcDraughtingPreDefinedCurveFont(e,t[0]),1758889154:(e,t)=>new ub.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new ub.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2397081782:(e,t)=>new ub.IfcElementAssemblyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new ub.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new ub.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new ub.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new ub.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),132023988:(e,t)=>new ub.IfcEngineType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3174744832:(e,t)=>new ub.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new ub.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4148101412:(e,t)=>new ub.IfcEvent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2853485674:(e,t)=>new ub.IfcExternalSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),807026263:(e,t)=>new ub.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new ub.IfcFacetedBrepWithVoids(e,t[0],t[1]),647756555:(e,t)=>new ub.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2489546625:(e,t)=>new ub.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2827207264:(e,t)=>new ub.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new ub.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new ub.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new ub.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new ub.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new ub.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new ub.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new ub.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new ub.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new ub.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new ub.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1893162501:(e,t)=>new ub.IfcFootingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),263784265:(e,t)=>new ub.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1509553395:(e,t)=>new ub.IfcFurniture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3493046030:(e,t)=>new ub.IfcGeographicElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009204131:(e,t)=>new ub.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706460486:(e,t)=>new ub.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new ub.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new ub.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2571569899:(e,t)=>new ub.IfcIndexedPolyCurve(e,t[0],t[1],t[2]),3946677679:(e,t)=>new ub.IfcInterceptorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3113134337:(e,t)=>new ub.IfcIntersectionCurve(e,t[0],t[1],t[2]),2391368822:(e,t)=>new ub.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new ub.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new ub.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1051575348:(e,t)=>new ub.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new ub.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),377706215:(e,t)=>new ub.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2108223431:(e,t)=>new ub.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1114901282:(e,t)=>new ub.IfcMedicalDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3181161470:(e,t)=>new ub.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new ub.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4143007308:(e,t)=>new ub.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new ub.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3079942009:(e,t)=>new ub.IfcOpeningStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2837617999:(e,t)=>new ub.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new ub.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3566463478:(e,t)=>new ub.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3327091369:(e,t)=>new ub.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1158309216:(e,t)=>new ub.IfcPileType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),804291784:(e,t)=>new ub.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new ub.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new ub.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2839578677:(e,t)=>new ub.IfcPolygonalFaceSet(e,t[0],t[1],t[2],t[3]),3724593414:(e,t)=>new ub.IfcPolyline(e,t[0]),3740093272:(e,t)=>new ub.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new ub.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new ub.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3651124850:(e,t)=>new ub.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1842657554:(e,t)=>new ub.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new ub.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2893384427:(e,t)=>new ub.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2324767716:(e,t)=>new ub.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1469900589:(e,t)=>new ub.IfcRampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),683857671:(e,t)=>new ub.IfcRationalBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3027567501:(e,t)=>new ub.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),964333572:(e,t)=>new ub.IfcReinforcingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new ub.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2310774935:(e,t)=>new ub.IfcReinforcingMeshType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),160246688:(e,t)=>new ub.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),2781568857:(e,t)=>new ub.IfcRoofType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1768891740:(e,t)=>new ub.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2157484638:(e,t)=>new ub.IfcSeamCurve(e,t[0],t[1],t[2]),4074543187:(e,t)=>new ub.IfcShadingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4097777520:(e,t)=>new ub.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new ub.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1072016465:(e,t)=>new ub.IfcSolarDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new ub.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new ub.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new ub.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3112655638:(e,t)=>new ub.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new ub.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),338393293:(e,t)=>new ub.IfcStairType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new ub.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1179482911:(e,t)=>new ub.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1004757350:(e,t)=>new ub.IfcStructuralCurveAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4243806635:(e,t)=>new ub.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),214636428:(e,t)=>new ub.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2445595289:(e,t)=>new ub.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2757150158:(e,t)=>new ub.IfcStructuralCurveReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1807405624:(e,t)=>new ub.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1252848954:(e,t)=>new ub.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2082059205:(e,t)=>new ub.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),734778138:(e,t)=>new ub.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1235345126:(e,t)=>new ub.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new ub.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3657597509:(e,t)=>new ub.IfcStructuralSurfaceAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1975003073:(e,t)=>new ub.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new ub.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3101698114:(e,t)=>new ub.IfcSurfaceFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2315554128:(e,t)=>new ub.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new ub.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),413509423:(e,t)=>new ub.IfcSystemFurnitureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),5716631:(e,t)=>new ub.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3824725483:(e,t)=>new ub.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new ub.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3081323446:(e,t)=>new ub.IfcTendonAnchorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2415094496:(e,t)=>new ub.IfcTendonType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),1692211062:(e,t)=>new ub.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1620046519:(e,t)=>new ub.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3593883385:(e,t)=>new ub.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new ub.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new ub.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new ub.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391383451:(e,t)=>new ub.IfcVibrationIsolator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new ub.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new ub.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),926996030:(e,t)=>new ub.IfcVoidingFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1898987631:(e,t)=>new ub.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new ub.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4009809668:(e,t)=>new ub.IfcWindowType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4088093105:(e,t)=>new ub.IfcWorkCalendar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1028945134:(e,t)=>new ub.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4218914973:(e,t)=>new ub.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),3342526732:(e,t)=>new ub.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1033361043:(e,t)=>new ub.IfcZone(e,t[0],t[1],t[2],t[3],t[4],t[5]),3821786052:(e,t)=>new ub.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1411407467:(e,t)=>new ub.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new ub.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new ub.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3460190687:(e,t)=>new ub.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1532957894:(e,t)=>new ub.IfcAudioVisualApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1967976161:(e,t)=>new ub.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),2461110595:(e,t)=>new ub.IfcBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),819618141:(e,t)=>new ub.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),231477066:(e,t)=>new ub.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1136057603:(e,t)=>new ub.IfcBoundaryCurve(e,t[0],t[1]),3299480353:(e,t)=>new ub.IfcBuildingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2979338954:(e,t)=>new ub.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),39481116:(e,t)=>new ub.IfcBuildingElementPartType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1095909175:(e,t)=>new ub.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1909888760:(e,t)=>new ub.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1177604601:(e,t)=>new ub.IfcBuildingSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2188180465:(e,t)=>new ub.IfcBurnerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new ub.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new ub.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2674252688:(e,t)=>new ub.IfcCableFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new ub.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new ub.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3296154744:(e,t)=>new ub.IfcChimney(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2611217952:(e,t)=>new ub.IfcCircle(e,t[0],t[1]),1677625105:(e,t)=>new ub.IfcCivilElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2301859152:(e,t)=>new ub.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new ub.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),905975707:(e,t)=>new ub.IfcColumnStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),400855858:(e,t)=>new ub.IfcCommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3850581409:(e,t)=>new ub.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new ub.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3898045240:(e,t)=>new ub.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1060000209:(e,t)=>new ub.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new ub.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),335055490:(e,t)=>new ub.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new ub.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1973544240:(e,t)=>new ub.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new ub.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3961806047:(e,t)=>new ub.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1335981549:(e,t)=>new ub.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2635815018:(e,t)=>new ub.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1599208980:(e,t)=>new ub.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new ub.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new ub.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new ub.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new ub.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3205830791:(e,t)=>new ub.IfcDistributionSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),395920057:(e,t)=>new ub.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3242481149:(e,t)=>new ub.IfcDoorStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),869906466:(e,t)=>new ub.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new ub.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new ub.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),663422040:(e,t)=>new ub.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2417008758:(e,t)=>new ub.IfcElectricDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new ub.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new ub.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new ub.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new ub.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1658829314:(e,t)=>new ub.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2814081492:(e,t)=>new ub.IfcEngine(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3747195512:(e,t)=>new ub.IfcEvaporativeCooler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),484807127:(e,t)=>new ub.IfcEvaporator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1209101575:(e,t)=>new ub.IfcExternalSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),346874300:(e,t)=>new ub.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new ub.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new ub.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new ub.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new ub.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new ub.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188021234:(e,t)=>new ub.IfcFlowMeter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3132237377:(e,t)=>new ub.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new ub.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new ub.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new ub.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new ub.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new ub.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3319311131:(e,t)=>new ub.IfcHeatExchanger(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2068733104:(e,t)=>new ub.IfcHumidifier(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4175244083:(e,t)=>new ub.IfcInterceptor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2176052936:(e,t)=>new ub.IfcJunctionBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),76236018:(e,t)=>new ub.IfcLamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),629592764:(e,t)=>new ub.IfcLightFixture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1437502449:(e,t)=>new ub.IfcMedicalDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new ub.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1911478936:(e,t)=>new ub.IfcMemberStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2474470126:(e,t)=>new ub.IfcMotorConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),144952367:(e,t)=>new ub.IfcOuterBoundaryCurve(e,t[0],t[1]),3694346114:(e,t)=>new ub.IfcOutlet(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1687234759:(e,t)=>new ub.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),310824031:(e,t)=>new ub.IfcPipeFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3612865200:(e,t)=>new ub.IfcPipeSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3171933400:(e,t)=>new ub.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1156407060:(e,t)=>new ub.IfcPlateStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),738039164:(e,t)=>new ub.IfcProtectiveDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),655969474:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),90941305:(e,t)=>new ub.IfcPump(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2262370178:(e,t)=>new ub.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new ub.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new ub.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1232101972:(e,t)=>new ub.IfcRationalBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),979691226:(e,t)=>new ub.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2572171363:(e,t)=>new ub.IfcReinforcingBarType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),2016517767:(e,t)=>new ub.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3053780830:(e,t)=>new ub.IfcSanitaryTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1783015770:(e,t)=>new ub.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1329646415:(e,t)=>new ub.IfcShadingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1529196076:(e,t)=>new ub.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3127900445:(e,t)=>new ub.IfcSlabElementedCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3027962421:(e,t)=>new ub.IfcSlabStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3420628829:(e,t)=>new ub.IfcSolarDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1999602285:(e,t)=>new ub.IfcSpaceHeater(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1404847402:(e,t)=>new ub.IfcStackTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new ub.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new ub.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2515109513:(e,t)=>new ub.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),385403989:(e,t)=>new ub.IfcStructuralLoadCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1621171031:(e,t)=>new ub.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1162798199:(e,t)=>new ub.IfcSwitchingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),812556717:(e,t)=>new ub.IfcTank(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3825984169:(e,t)=>new ub.IfcTransformer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3026737570:(e,t)=>new ub.IfcTubeBundle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3179687236:(e,t)=>new ub.IfcUnitaryControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4292641817:(e,t)=>new ub.IfcUnitaryEquipment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4207607924:(e,t)=>new ub.IfcValve(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2391406946:(e,t)=>new ub.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4156078855:(e,t)=>new ub.IfcWallElementedCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3512223829:(e,t)=>new ub.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4237592921:(e,t)=>new ub.IfcWasteTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3304561284:(e,t)=>new ub.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),486154966:(e,t)=>new ub.IfcWindowStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2874132201:(e,t)=>new ub.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634111441:(e,t)=>new ub.IfcAirTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),177149247:(e,t)=>new ub.IfcAirTerminalBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2056796094:(e,t)=>new ub.IfcAirToAirHeatRecovery(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3001207471:(e,t)=>new ub.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),277319702:(e,t)=>new ub.IfcAudioVisualAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),753842376:(e,t)=>new ub.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2906023776:(e,t)=>new ub.IfcBeamStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),32344328:(e,t)=>new ub.IfcBoiler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2938176219:(e,t)=>new ub.IfcBurner(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),635142910:(e,t)=>new ub.IfcCableCarrierFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3758799889:(e,t)=>new ub.IfcCableCarrierSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1051757585:(e,t)=>new ub.IfcCableFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4217484030:(e,t)=>new ub.IfcCableSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3902619387:(e,t)=>new ub.IfcChiller(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639361253:(e,t)=>new ub.IfcCoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3221913625:(e,t)=>new ub.IfcCommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3571504051:(e,t)=>new ub.IfcCompressor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2272882330:(e,t)=>new ub.IfcCondenser(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),578613899:(e,t)=>new ub.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4136498852:(e,t)=>new ub.IfcCooledBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3640358203:(e,t)=>new ub.IfcCoolingTower(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074379575:(e,t)=>new ub.IfcDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1052013943:(e,t)=>new ub.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),562808652:(e,t)=>new ub.IfcDistributionCircuit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1062813311:(e,t)=>new ub.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),342316401:(e,t)=>new ub.IfcDuctFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3518393246:(e,t)=>new ub.IfcDuctSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1360408905:(e,t)=>new ub.IfcDuctSilencer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1904799276:(e,t)=>new ub.IfcElectricAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),862014818:(e,t)=>new ub.IfcElectricDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3310460725:(e,t)=>new ub.IfcElectricFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),264262732:(e,t)=>new ub.IfcElectricGenerator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),402227799:(e,t)=>new ub.IfcElectricMotor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1003880860:(e,t)=>new ub.IfcElectricTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3415622556:(e,t)=>new ub.IfcFan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),819412036:(e,t)=>new ub.IfcFilter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1426591983:(e,t)=>new ub.IfcFireSuppressionTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),182646315:(e,t)=>new ub.IfcFlowInstrument(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2295281155:(e,t)=>new ub.IfcProtectiveDeviceTrippingUnit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4086658281:(e,t)=>new ub.IfcSensor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),630975310:(e,t)=>new ub.IfcUnitaryControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4288193352:(e,t)=>new ub.IfcActuator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3087945054:(e,t)=>new ub.IfcAlarm(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),25142252:(e,t)=>new ub.IfcController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},Zb[2]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],130549933:e=>[e.Identifier,e.Name,e.Description,e.TimeOfApproval,e.Status,e.Level,e.Qualifier,e.RequestingApproval,e.GivingApproval],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.TranslationalStiffnessByLengthX?sD(e.TranslationalStiffnessByLengthX):null,e.TranslationalStiffnessByLengthY?sD(e.TranslationalStiffnessByLengthY):null,e.TranslationalStiffnessByLengthZ?sD(e.TranslationalStiffnessByLengthZ):null,e.RotationalStiffnessByLengthX?sD(e.RotationalStiffnessByLengthX):null,e.RotationalStiffnessByLengthY?sD(e.RotationalStiffnessByLengthY):null,e.RotationalStiffnessByLengthZ?sD(e.RotationalStiffnessByLengthZ):null],3367102660:e=>[e.Name,e.TranslationalStiffnessByAreaX?sD(e.TranslationalStiffnessByAreaX):null,e.TranslationalStiffnessByAreaY?sD(e.TranslationalStiffnessByAreaY):null,e.TranslationalStiffnessByAreaZ?sD(e.TranslationalStiffnessByAreaZ):null],1387855156:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null],2069777674:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null,e.WarpingStiffness?sD(e.WarpingStiffness):null],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],775493141:e=>[e.VolumeOnRelatingElement,e.VolumeOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1785450214:e=>[e.SourceCRS,e.TargetCRS],1466758467:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],4294318154:e=>[],3200245327:e=>[e.Location,e.Identification,e.Name],2242383968:e=>[e.Location,e.Identification,e.Name],1040185647:e=>[e.Location,e.Identification,e.Name],3548104201:e=>[e.Location,e.Identification,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.Location,e.Description],3452421091:e=>[e.Location,e.Identification,e.Name,e.Description,e.Language,e.ReferencedLibrary],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],3057273783:e=>[e.SourceCRS,e.TargetCRS,e.Eastings,e.Northings,e.OrthogonalHeight,e.XAxisAbscissa,e.XAxisOrdinate,e.Scale],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],760658860:e=>[],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority]},3303938423:e=>[e.MaterialLayers,e.LayerSetName,e.Description],1847252529:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority,e.OffsetDirection,e.OffsetValues]},2199411900:e=>[e.Materials],2235152071:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category],164193824:e=>[e.Name,e.Description,e.MaterialProfiles,e.CompositeProfile],552965576:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category,e.OffsetValues],1507914824:e=>[],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue,e.ReferencePath],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.LogicalAggregator,e.ObjectiveQualifier,e.UserDefinedQualifier],4251960020:e=>[e.Identification,e.Name,e.Description,e.Roles,e.Addresses],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Identification,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],677532197:e=>[],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>{var t,s,n;return[e.Name,e.Description,e.AssignedItems,e.Identifier,null==(t=e.LayerOn)?void 0:t.toString(),null==(s=e.LayerFrozen)?void 0:s.toString(),null==(n=e.LayerBlocked)?void 0:n.toString(),e.LayerStyles]},3119450353:e=>[e.Name],2417041796:e=>[e.Styles],2095639259:e=>[e.Name,e.Description,e.Representations],3958567839:e=>[e.ProfileType,e.ProfileName],3843373140:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum,e.MapProjection,e.MapZone,e.MapUnit],986844984:e=>[],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue,e.Formula],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue,e.Formula],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue,e.Formula],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue,e.Formula],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue,e.Formula],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue,e.Formula],3915482550:e=>[e.RecurrenceType,e.DayComponent,e.WeekdayComponent,e.MonthComponent,e.Position,e.Interval,e.Occurrences,e.TimePeriods],2433181523:e=>[e.TypeIdentifier,e.AttributeIdentifier,e.InstanceName,e.ListPositions,e.InnerReference],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],2439245199:e=>[e.Name,e.Description],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],1054537805:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin],867548509:e=>{var t;return[e.ShapeRepresentations,e.Name,e.Description,null==(t=e.ProductDefinitional)?void 0:t.toString(),e.PartOfProductDefinitionShape]},3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2273995522:e=>[e.Name],2162789131:e=>[e.Name],3478079324:e=>[e.Name,e.Values,e.Locations],609421318:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaTConstant,e.DeltaTY,e.DeltaTZ],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2934153892:e=>[e.Name,e.SurfaceReinforcement1,e.SurfaceReinforcement2,e.ShearReinforcement],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour,e.Transparency],1351298697:e=>[e.Textures],626085974:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter]},985171141:e=>[e.Name,e.Rows,e.Columns],2043862942:e=>[e.Identifier,e.Name,e.Description,e.Unit,e.ReferencePath],531007025:e=>{var t;return[e.RowCells?e.RowCells.map((e=>sD(e))):null,null==(t=e.IsHeading)?void 0:t.toString()]},1549132990:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion]},2771591690:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion,e.Recurrence]},912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL,e.MessagingIDs],1447204868:e=>{var t;return[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],280115917:e=>[e.Maps],1742049831:e=>[e.Maps,e.Mode,e.Parameter],2552916305:e=>[e.Maps,e.Vertices,e.MappedTo],1210645708:e=>[e.Coordinates],3611470254:e=>[e.TexCoordsList],1199560280:e=>[e.StartTime,e.EndTime],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1236880293:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.RecurrencePattern,e.Start,e.Finish],3869604511:e=>[e.Name,e.Description,e.RelatingApproval,e.RelatedApprovals],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.RasterFormat,e.RasterCode]},3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name,e.Description,e.Location,e.ReferenceTokens],647927063:e=>[e.Location,e.Identification,e.Name,e.ReferencedSource,e.Description,e.Sort],3285139300:e=>[e.ColourList],3264961684:e=>[e.Name],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],2713554722:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor,e.ConversionOffset],539742890:e=>[e.Name,e.Description,e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],3800577675:e=>{var t;return[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],1154170062:e=>[e.Identification,e.Name,e.Description,e.Location,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.Name,e.Description,e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3732053477:e=>[e.Location,e.Identification,e.Name,e.Description,e.ReferencedDocument],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,null==(t=e.SameSense)?void 0:t.toString()]},211053100:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ActualDate,e.EarlyDate,e.LateDate,e.ScheduleDate],297599258:e=>[e.Name,e.Description,e.Properties],1437805879:e=>[e.Name,e.Description,e.RelatingReference,e.RelatedResourceObjects],2556980723:e=>[e.Bounds],1809719519:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},803316827:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},3008276851:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>{var t;return[e.Name,e.FillStyles,null==(t=e.ModelorDraughting)?void 0:t.toString()]},3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementLocation,e.PlacementRefDirection],812098782:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString()]},3905492369:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.URLReference]},3570813810:e=>[e.MappedTo,e.Opacity,e.Colours,e.ColourIndex],1437953363:e=>[e.Maps,e.MappedTo,e.TexCoords],2133299955:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndex],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1585845231:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,sD(e.LagValue),e.DurationType],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],1838606355:e=>[e.Name,e.Description,e.Category],3708119e3:e=>[e.Name,e.Description,e.Material,e.Fraction,e.Category],2852063980:e=>[e.Name,e.Description,e.MaterialConstituents],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine,e.ReferenceExtent],3079605661:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent],3404854881:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent,e.ForProfileEndSet,e.CardinalEndPoint],3265635763:e=>[e.Name,e.Description,e.Properties,e.Material],853536259:e=>[e.Name,e.Description,e.RelatingMaterial,e.RelatedMaterials,e.Expression],2998442950:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2665983363:e=>[e.CfsFaces],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1029017970:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeElement,null==(t=e.Orientation)?void 0:t.toString()]},2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.Width,e.Height,e.ColourComponents,e.Pixel]},2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Position,e.PolygonalBoundary]},3727388367:e=>[e.Name],3778827333:e=>[],1775413392:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],2802850158:e=>[e.Name,e.Description,e.Properties,e.ProfileDefinition],2598011224:e=>[e.Name,e.Description],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],148025276:e=>[e.Name,e.Description,e.DependingProperty,e.DependantProperty,e.Expression],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1482703590:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2090586900:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2943643501:e=>[e.Name,e.Description,e.RelatedResourceObjects,e.RelatingApproval],1608871552:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedResourceObjects],1042787934:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ScheduleWork,e.ScheduleUsage,e.ScheduleStart,e.ScheduleFinish,e.ScheduleContour,e.LevelingDelay,null==(t=e.IsOverAllocated)?void 0:t.toString(),e.StatusTime,e.ActualWork,e.ActualUsage,e.ActualStart,e.ActualFinish,e.RemainingWork,e.RemainingUsage,e.Completion]},2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],4124623270:e=>[e.SbsmBoundary],3692461612:e=>[e.Name,e.Description],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],1096409881:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam,e.FilletRadius],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope],901063453:e=>[],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],3736923433:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],3698973494:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],1299126871:e=>{var t,s;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ConstructionType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),null==(s=e.Sizeable)?void 0:s.toString()]},2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3406155212:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},669184980:e=>[e.OuterBoundary,e.InnerBoundaries],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomFlangeWidth,e.OverallDepth,e.WebThickness,e.BottomFlangeThickness,e.BottomFlangeFilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.BottomFlangeEdgeRadius,e.BottomFlangeSlope,e.TopFlangeEdgeRadius,e.TopFlangeSlope],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Enclosure]},2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius],1123145078:e=>[e.Coordinates],574549367:e=>[],1675464909:e=>[e.CoordList],2059837836:e=>[e.CoordList],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Description,e.UsageName,e.HasProperties],2485617015:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve]},2574617495:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity],3419103109:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],1815067380:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],2629017746:e=>{var t;return[e.BasisSurface,e.Boundaries,null==(t=e.ImplicitOuter)?void 0:t.toString()]},32440307:e=>[e.DirectionRatios],526551008:e=>{var t,s;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.OperationType,e.ConstructionType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),null==(s=e.Sizeable)?void 0:s.toString()]},1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],4024345920:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2804161546:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth,e.EndSweptArea],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],2652556860:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.FixedReference],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace,e.PredefinedType],4095422895:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.FlangeSlope],178912537:e=>[e.CoordIndex],2294589976:e=>[e.CoordIndex,e.InnerCoordIndices],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope],428585644:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],3388369263:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString()]},3505215534:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString(),e.RefDirection]},1682466193:e=>[e.BasisSurface,e.ReferenceCurve],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],759155922:e=>[e.Name],2559016684:e=>[e.Name],3967405729:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],569719735:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],653396225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],871118103:e=>[e.Name,e.Description,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit,e.SetPointValue?sD(e.SetPointValue):null],4166981789:e=>[e.Name,e.Description,e.EnumerationValues?e.EnumerationValues.map((e=>sD(e))):null,e.EnumerationReference],2752243245:e=>[e.Name,e.Description,e.ListValues?e.ListValues.map((e=>sD(e))):null,e.Unit],941946838:e=>[e.Name,e.Description,e.UsageName,e.PropertyReference],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],492091185:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.ApplicableEntity,e.HasPropertyTemplates],3650150729:e=>[e.Name,e.Description,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Description,e.DefiningValues?e.DefiningValues.map((e=>sD(e))):null,e.DefinedValues?e.DefinedValues.map((e=>sD(e))):null,e.Expression,e.DefiningUnit,e.DefinedUnit,e.CurveInterpolation],3521284610:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3219374653:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.ProxyType,e.Tag],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>{var t,s;return[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,null==(t=e.Usense)?void 0:t.toString(),null==(s=e.Vsense)?void 0:s.toString()]},3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],1027710054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup,e.Factor],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedCoverings],2565941209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingContext,e.RelatedDefinitions],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1462361463:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingObject],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],307848117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedPropertySets,e.RelatingTemplate],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],427948657:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedElement,e.InterferenceGeometry,e.InterferenceType,e.ImpliedOrder],3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType,e.UserDefinedSequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],3523091289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary],1521410863:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary,e.CorrespondingBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],816062949:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve,e.ParamLength]},2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],3243963512:e=>[e.SweptArea,e.Position,e.Axis,e.Angle,e.EndSweptArea],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],3663146110:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.PrimaryMeasureType,e.SecondaryMeasureType,e.Enumerators,e.PrimaryUnit,e.SecondaryUnit,e.Expression,e.AccessState],1412071761:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],710998568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],463610769:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],2481509218:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],451544542:e=>[e.Position,e.Radius],4015995234:e=>[e.Position,e.Radius],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],603775116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],4095615324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],699246055:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam,e.EndParam,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3473067441:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Status,e.WorkMethod,null==(t=e.IsMilestone)?void 0:t.toString(),e.Priority,e.TaskTime,e.PredefinedType]},3206491090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.WorkMethod],2387106220:e=>[e.Coordinates],1935646853:e=>[e.Position,e.MajorRadius,e.MinorRadius],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2916149573:e=>{var t;return[e.Coordinates,e.Normals,null==(t=e.Closed)?void 0:t.toString(),e.CoordIndex,e.PnIndex]},336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle,e.LiningOffset,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1635779807:e=>[e.Outer],2603310189:e=>[e.Outer,e.Voids],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2887950389:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString()]},167062518:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec]},1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],1950629157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],2197970202:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],3893394355:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3875453745:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.UsageName,e.TemplateType,e.HasPropertyTemplates],3732776249:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},15328376:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},2510884976:e=>[e.Position],2185764099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],4105962743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1525564444:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.CostValues,e.CostQuantities],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.SubmittedOn,e.UpdateDate],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1213902940:e=>[e.Position,e.Radius],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],2323601079:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedOperationType]},445594917:e=>[e.Name],4006246654:e=>[e.Name],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],2397081782:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],132023988:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4148101412:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType,e.EventOccurenceTime],2853485674:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1893162501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1509553395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3493046030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes,e.PredefinedType],2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2571569899:e=>{var t;return[e.Points,e.Segments?e.Segments.map((e=>sD(e))):null,null==(t=e.SelfIntersect)?void 0:t.toString()]},3946677679:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3113134337:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength,e.PredefinedType],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.NominalLength],1114901282:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3079942009:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LifeCyclePhase,e.PredefinedType],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1158309216:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2839578677:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Faces,e.PnIndex]},3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1469900589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],683857671:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec,e.WeightsData]},3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],964333572:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.PredefinedType],2310774935:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],2781568857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2157484638:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],4074543187:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1072016465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],338393293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1004757350:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.Axis],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2757150158:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],1807405624:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],2082059205:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.ConditionCoordinateSystem],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,null==(t=e.IsLinear)?void 0:t.toString()]},3657597509:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],3101698114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],413509423:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],3081323446:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2415094496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.SheathDiameter],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3593883385:e=>{var t;return[e.BasisCurve,e.Trim1,e.Trim2,null==(t=e.SenseAgreement)?void 0:t.toString(),e.MasterRepresentation]},1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391383451:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],926996030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4009809668:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.PartitioningType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedPartitioningType]},4088093105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.WorkingTimes,e.ExceptionTimes,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1532957894:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1967976161:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString()]},2461110595:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec]},819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1136057603:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3299480353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],39481116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1177604601:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],2188180465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2674252688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3296154744:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],1677625105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],905975707:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],400855858:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection,e.PredefinedType,e.SystemType],3205830791:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],3242481149:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2417008758:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2814081492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3747195512:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],484807127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1209101575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188021234:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3319311131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2068733104:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4175244083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2176052936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],76236018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],629592764:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1437502449:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1911478936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2474470126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],144952367:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3694346114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],310824031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3612865200:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1156407060:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],738039164:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],655969474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],90941305:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1232101972:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec,e.WeightsData]},979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.PredefinedType,e.BarSurface],2572171363:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarSurface,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3053780830:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1329646415:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3127900445:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3027962421:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3420628829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1999602285:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1404847402:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRisers,e.NumberOfTreads,e.RiserHeight,e.TreadLength,e.PredefinedType],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults,e.SharedPlacement],385403989:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose,e.SelfWeightCoefficients],1621171031:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1162798199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],812556717:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3825984169:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3026737570:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3179687236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4292641817:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4207607924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4156078855:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4237592921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],486154966:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634111441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],177149247:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2056796094:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],277319702:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2906023776:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],32344328:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2938176219:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],635142910:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3758799889:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1051757585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4217484030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3902619387:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],639361253:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3221913625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3571504051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2272882330:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4136498852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3640358203:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4074379575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],562808652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],342316401:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3518393246:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1360408905:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1904799276:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],862014818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3310460725:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],264262732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],402227799:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1003880860:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3415622556:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],819412036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1426591983:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],182646315:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2295281155:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4086658281:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],630975310:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4288193352:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3087945054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],25142252:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType]},$b[2]={3699917729:e=>new ub.IfcAbsorbedDoseMeasure(e),4182062534:e=>new ub.IfcAccelerationMeasure(e),360377573:e=>new ub.IfcAmountOfSubstanceMeasure(e),632304761:e=>new ub.IfcAngularVelocityMeasure(e),3683503648:e=>new ub.IfcArcIndex(e),1500781891:e=>new ub.IfcAreaDensityMeasure(e),2650437152:e=>new ub.IfcAreaMeasure(e),2314439260:e=>new ub.IfcBinary(e),2735952531:e=>new ub.IfcBoolean(e),1867003952:e=>new ub.IfcBoxAlignment(e),1683019596:e=>new ub.IfcCardinalPointReference(e),2991860651:e=>new ub.IfcComplexNumber(e),3812528620:e=>new ub.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new ub.IfcContextDependentMeasure(e),1778710042:e=>new ub.IfcCountMeasure(e),94842927:e=>new ub.IfcCurvatureMeasure(e),937566702:e=>new ub.IfcDate(e),2195413836:e=>new ub.IfcDateTime(e),86635668:e=>new ub.IfcDayInMonthNumber(e),3701338814:e=>new ub.IfcDayInWeekNumber(e),1514641115:e=>new ub.IfcDescriptiveMeasure(e),4134073009:e=>new ub.IfcDimensionCount(e),524656162:e=>new ub.IfcDoseEquivalentMeasure(e),2541165894:e=>new ub.IfcDuration(e),69416015:e=>new ub.IfcDynamicViscosityMeasure(e),1827137117:e=>new ub.IfcElectricCapacitanceMeasure(e),3818826038:e=>new ub.IfcElectricChargeMeasure(e),2093906313:e=>new ub.IfcElectricConductanceMeasure(e),3790457270:e=>new ub.IfcElectricCurrentMeasure(e),2951915441:e=>new ub.IfcElectricResistanceMeasure(e),2506197118:e=>new ub.IfcElectricVoltageMeasure(e),2078135608:e=>new ub.IfcEnergyMeasure(e),1102727119:e=>new ub.IfcFontStyle(e),2715512545:e=>new ub.IfcFontVariant(e),2590844177:e=>new ub.IfcFontWeight(e),1361398929:e=>new ub.IfcForceMeasure(e),3044325142:e=>new ub.IfcFrequencyMeasure(e),3064340077:e=>new ub.IfcGloballyUniqueId(e),3113092358:e=>new ub.IfcHeatFluxDensityMeasure(e),1158859006:e=>new ub.IfcHeatingValueMeasure(e),983778844:e=>new ub.IfcIdentifier(e),3358199106:e=>new ub.IfcIlluminanceMeasure(e),2679005408:e=>new ub.IfcInductanceMeasure(e),1939436016:e=>new ub.IfcInteger(e),3809634241:e=>new ub.IfcIntegerCountRateMeasure(e),3686016028:e=>new ub.IfcIonConcentrationMeasure(e),3192672207:e=>new ub.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new ub.IfcKinematicViscosityMeasure(e),3258342251:e=>new ub.IfcLabel(e),1275358634:e=>new ub.IfcLanguageId(e),1243674935:e=>new ub.IfcLengthMeasure(e),1774176899:e=>new ub.IfcLineIndex(e),191860431:e=>new ub.IfcLinearForceMeasure(e),2128979029:e=>new ub.IfcLinearMomentMeasure(e),1307019551:e=>new ub.IfcLinearStiffnessMeasure(e),3086160713:e=>new ub.IfcLinearVelocityMeasure(e),503418787:e=>new ub.IfcLogical(e),2095003142:e=>new ub.IfcLuminousFluxMeasure(e),2755797622:e=>new ub.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new ub.IfcLuminousIntensityMeasure(e),286949696:e=>new ub.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new ub.IfcMagneticFluxMeasure(e),1477762836:e=>new ub.IfcMassDensityMeasure(e),4017473158:e=>new ub.IfcMassFlowRateMeasure(e),3124614049:e=>new ub.IfcMassMeasure(e),3531705166:e=>new ub.IfcMassPerLengthMeasure(e),3341486342:e=>new ub.IfcModulusOfElasticityMeasure(e),2173214787:e=>new ub.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new ub.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new ub.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new ub.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new ub.IfcMolecularWeightMeasure(e),3114022597:e=>new ub.IfcMomentOfInertiaMeasure(e),2615040989:e=>new ub.IfcMonetaryMeasure(e),765770214:e=>new ub.IfcMonthInYearNumber(e),525895558:e=>new ub.IfcNonNegativeLengthMeasure(e),2095195183:e=>new ub.IfcNormalisedRatioMeasure(e),2395907400:e=>new ub.IfcNumericMeasure(e),929793134:e=>new ub.IfcPHMeasure(e),2260317790:e=>new ub.IfcParameterValue(e),2642773653:e=>new ub.IfcPlanarForceMeasure(e),4042175685:e=>new ub.IfcPlaneAngleMeasure(e),1790229001:e=>new ub.IfcPositiveInteger(e),2815919920:e=>new ub.IfcPositiveLengthMeasure(e),3054510233:e=>new ub.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new ub.IfcPositiveRatioMeasure(e),1364037233:e=>new ub.IfcPowerMeasure(e),2169031380:e=>new ub.IfcPresentableText(e),3665567075:e=>new ub.IfcPressureMeasure(e),2798247006:e=>new ub.IfcPropertySetDefinitionSet(e),3972513137:e=>new ub.IfcRadioActivityMeasure(e),96294661:e=>new ub.IfcRatioMeasure(e),200335297:e=>new ub.IfcReal(e),2133746277:e=>new ub.IfcRotationalFrequencyMeasure(e),1755127002:e=>new ub.IfcRotationalMassMeasure(e),3211557302:e=>new ub.IfcRotationalStiffnessMeasure(e),3467162246:e=>new ub.IfcSectionModulusMeasure(e),2190458107:e=>new ub.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new ub.IfcShearModulusMeasure(e),3471399674:e=>new ub.IfcSolidAngleMeasure(e),4157543285:e=>new ub.IfcSoundPowerLevelMeasure(e),846465480:e=>new ub.IfcSoundPowerMeasure(e),3457685358:e=>new ub.IfcSoundPressureLevelMeasure(e),993287707:e=>new ub.IfcSoundPressureMeasure(e),3477203348:e=>new ub.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new ub.IfcSpecularExponent(e),361837227:e=>new ub.IfcSpecularRoughness(e),58845555:e=>new ub.IfcTemperatureGradientMeasure(e),1209108979:e=>new ub.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new ub.IfcText(e),1460886941:e=>new ub.IfcTextAlignment(e),3490877962:e=>new ub.IfcTextDecoration(e),603696268:e=>new ub.IfcTextFontName(e),296282323:e=>new ub.IfcTextTransformation(e),232962298:e=>new ub.IfcThermalAdmittanceMeasure(e),2645777649:e=>new ub.IfcThermalConductivityMeasure(e),2281867870:e=>new ub.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new ub.IfcThermalResistanceMeasure(e),2016195849:e=>new ub.IfcThermalTransmittanceMeasure(e),743184107:e=>new ub.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new ub.IfcTime(e),2726807636:e=>new ub.IfcTimeMeasure(e),2591213694:e=>new ub.IfcTimeStamp(e),1278329552:e=>new ub.IfcTorqueMeasure(e),950732822:e=>new ub.IfcURIReference(e),3345633955:e=>new ub.IfcVaporPermeabilityMeasure(e),3458127941:e=>new ub.IfcVolumeMeasure(e),2593997549:e=>new ub.IfcVolumetricFlowRateMeasure(e),51269191:e=>new ub.IfcWarpingConstantMeasure(e),1718600412:e=>new ub.IfcWarpingMomentMeasure(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcArcIndex=class{constructor(e){this.value=e}};e.IfcAreaDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBinary=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcCardinalPointReference=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDate=class{constructor(e){this.value=e,this.type=1}};e.IfcDateTime=class{constructor(e){this.value=e,this.type=1}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInWeekNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDuration=class{constructor(e){this.value=e,this.type=1}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLanguageId=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLineIndex=class{constructor(e){this.value=e}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNonNegativeLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPropertySetDefinitionSet=class{constructor(e){this.value=e}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureRateOfChangeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTime=class{constructor(e){this.value=e,this.type=1}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcURIReference=class{constructor(e){this.value=e,this.type=1}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.EMAIL={type:3,value:"EMAIL"},s.FAX={type:3,value:"FAX"},s.PHONE={type:3,value:"PHONE"},s.POST={type:3,value:"POST"},s.VERBAL={type:3,value:"VERBAL"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionRequestTypeEnum=s;class n{}n.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},n.COMPLETION_G1={type:3,value:"COMPLETION_G1"},n.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},n.SNOW_S={type:3,value:"SNOW_S"},n.WIND_W={type:3,value:"WIND_W"},n.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},n.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},n.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},n.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},n.FIRE={type:3,value:"FIRE"},n.IMPULSE={type:3,value:"IMPULSE"},n.IMPACT={type:3,value:"IMPACT"},n.TRANSPORT={type:3,value:"TRANSPORT"},n.ERECTION={type:3,value:"ERECTION"},n.PROPPING={type:3,value:"PROPPING"},n.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},n.SHRINKAGE={type:3,value:"SHRINKAGE"},n.CREEP={type:3,value:"CREEP"},n.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},n.BUOYANCY={type:3,value:"BUOYANCY"},n.ICE={type:3,value:"ICE"},n.CURRENT={type:3,value:"CURRENT"},n.WAVE={type:3,value:"WAVE"},n.RAIN={type:3,value:"RAIN"},n.BRAKES={type:3,value:"BRAKES"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=n;class i{}i.PERMANENT_G={type:3,value:"PERMANENT_G"},i.VARIABLE_Q={type:3,value:"VARIABLE_Q"},i.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=i;class a{}a.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},a.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},a.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},a.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},a.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=a;class r{}r.OFFICE={type:3,value:"OFFICE"},r.SITE={type:3,value:"SITE"},r.HOME={type:3,value:"HOME"},r.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},r.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.DIFFUSER={type:3,value:"DIFFUSER"},o.GRILLE={type:3,value:"GRILLE"},o.LOUVRE={type:3,value:"LOUVRE"},o.REGISTER={type:3,value:"REGISTER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},h.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},h.LOADING_3D={type:3,value:"LOADING_3D"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=h;class p{}p.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},p.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},p.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},p.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=p;class A{}A.ADD={type:3,value:"ADD"},A.DIVIDE={type:3,value:"DIVIDE"},A.MULTIPLY={type:3,value:"MULTIPLY"},A.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=A;class d{}d.SITE={type:3,value:"SITE"},d.FACTORY={type:3,value:"FACTORY"},d.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=d;class f{}f.AMPLIFIER={type:3,value:"AMPLIFIER"},f.CAMERA={type:3,value:"CAMERA"},f.DISPLAY={type:3,value:"DISPLAY"},f.MICROPHONE={type:3,value:"MICROPHONE"},f.PLAYER={type:3,value:"PLAYER"},f.PROJECTOR={type:3,value:"PROJECTOR"},f.RECEIVER={type:3,value:"RECEIVER"},f.SPEAKER={type:3,value:"SPEAKER"},f.SWITCHER={type:3,value:"SWITCHER"},f.TELEPHONE={type:3,value:"TELEPHONE"},f.TUNER={type:3,value:"TUNER"},f.USERDEFINED={type:3,value:"USERDEFINED"},f.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=f;class I{}I.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},I.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},I.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},I.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},I.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},I.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=I;class y{}y.PLANE_SURF={type:3,value:"PLANE_SURF"},y.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},y.CONICAL_SURF={type:3,value:"CONICAL_SURF"},y.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},y.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},y.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},y.RULED_SURF={type:3,value:"RULED_SURF"},y.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},y.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},y.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},y.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=y;class m{}m.BEAM={type:3,value:"BEAM"},m.JOIST={type:3,value:"JOIST"},m.HOLLOWCORE={type:3,value:"HOLLOWCORE"},m.LINTEL={type:3,value:"LINTEL"},m.SPANDREL={type:3,value:"SPANDREL"},m.T_BEAM={type:3,value:"T_BEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=m;class v{}v.GREATERTHAN={type:3,value:"GREATERTHAN"},v.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},v.LESSTHAN={type:3,value:"LESSTHAN"},v.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},v.EQUALTO={type:3,value:"EQUALTO"},v.NOTEQUALTO={type:3,value:"NOTEQUALTO"},v.INCLUDES={type:3,value:"INCLUDES"},v.NOTINCLUDES={type:3,value:"NOTINCLUDES"},v.INCLUDEDIN={type:3,value:"INCLUDEDIN"},v.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},e.IfcBenchmarkEnum=v;class w{}w.WATER={type:3,value:"WATER"},w.STEAM={type:3,value:"STEAM"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=w;class g{}g.UNION={type:3,value:"UNION"},g.INTERSECTION={type:3,value:"INTERSECTION"},g.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=g;class E{}E.INSULATION={type:3,value:"INSULATION"},E.PRECASTPANEL={type:3,value:"PRECASTPANEL"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=E;class T{}T.COMPLEX={type:3,value:"COMPLEX"},T.ELEMENT={type:3,value:"ELEMENT"},T.PARTIAL={type:3,value:"PARTIAL"},T.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},T.PROVISIONFORSPACE={type:3,value:"PROVISIONFORSPACE"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=T;class b{}b.FENESTRATION={type:3,value:"FENESTRATION"},b.FOUNDATION={type:3,value:"FOUNDATION"},b.LOADBEARING={type:3,value:"LOADBEARING"},b.OUTERSHELL={type:3,value:"OUTERSHELL"},b.SHADING={type:3,value:"SHADING"},b.TRANSPORT={type:3,value:"TRANSPORT"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=b;class D{}D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=D;class P{}P.BEND={type:3,value:"BEND"},P.CROSS={type:3,value:"CROSS"},P.REDUCER={type:3,value:"REDUCER"},P.TEE={type:3,value:"TEE"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=P;class R{}R.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},R.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},R.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},R.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=R;class C{}C.CONNECTOR={type:3,value:"CONNECTOR"},C.ENTRY={type:3,value:"ENTRY"},C.EXIT={type:3,value:"EXIT"},C.JUNCTION={type:3,value:"JUNCTION"},C.TRANSITION={type:3,value:"TRANSITION"},C.USERDEFINED={type:3,value:"USERDEFINED"},C.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=C;class _{}_.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},_.CABLESEGMENT={type:3,value:"CABLESEGMENT"},_.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},_.CORESEGMENT={type:3,value:"CORESEGMENT"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=_;class B{}B.NOCHANGE={type:3,value:"NOCHANGE"},B.MODIFIED={type:3,value:"MODIFIED"},B.ADDED={type:3,value:"ADDED"},B.DELETED={type:3,value:"DELETED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=B;class O{}O.AIRCOOLED={type:3,value:"AIRCOOLED"},O.WATERCOOLED={type:3,value:"WATERCOOLED"},O.HEATRECOVERY={type:3,value:"HEATRECOVERY"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=O;class S{}S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=S;class N{}N.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},N.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},N.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},N.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},N.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},N.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},N.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=N;class x{}x.COLUMN={type:3,value:"COLUMN"},x.PILASTER={type:3,value:"PILASTER"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=x;class L{}L.ANTENNA={type:3,value:"ANTENNA"},L.COMPUTER={type:3,value:"COMPUTER"},L.FAX={type:3,value:"FAX"},L.GATEWAY={type:3,value:"GATEWAY"},L.MODEM={type:3,value:"MODEM"},L.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},L.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},L.NETWORKHUB={type:3,value:"NETWORKHUB"},L.PRINTER={type:3,value:"PRINTER"},L.REPEATER={type:3,value:"REPEATER"},L.ROUTER={type:3,value:"ROUTER"},L.SCANNER={type:3,value:"SCANNER"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=L;class M{}M.P_COMPLEX={type:3,value:"P_COMPLEX"},M.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=M;class F{}F.DYNAMIC={type:3,value:"DYNAMIC"},F.RECIPROCATING={type:3,value:"RECIPROCATING"},F.ROTARY={type:3,value:"ROTARY"},F.SCROLL={type:3,value:"SCROLL"},F.TROCHOIDAL={type:3,value:"TROCHOIDAL"},F.SINGLESTAGE={type:3,value:"SINGLESTAGE"},F.BOOSTER={type:3,value:"BOOSTER"},F.OPENTYPE={type:3,value:"OPENTYPE"},F.HERMETIC={type:3,value:"HERMETIC"},F.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},F.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},F.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},F.ROTARYVANE={type:3,value:"ROTARYVANE"},F.SINGLESCREW={type:3,value:"SINGLESCREW"},F.TWINSCREW={type:3,value:"TWINSCREW"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=F;class H{}H.AIRCOOLED={type:3,value:"AIRCOOLED"},H.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},H.WATERCOOLED={type:3,value:"WATERCOOLED"},H.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},H.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},H.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},H.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=H;class U{}U.ATPATH={type:3,value:"ATPATH"},U.ATSTART={type:3,value:"ATSTART"},U.ATEND={type:3,value:"ATEND"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=U;class G{}G.HARD={type:3,value:"HARD"},G.SOFT={type:3,value:"SOFT"},G.ADVISORY={type:3,value:"ADVISORY"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=G;class j{}j.DEMOLISHING={type:3,value:"DEMOLISHING"},j.EARTHMOVING={type:3,value:"EARTHMOVING"},j.ERECTING={type:3,value:"ERECTING"},j.HEATING={type:3,value:"HEATING"},j.LIGHTING={type:3,value:"LIGHTING"},j.PAVING={type:3,value:"PAVING"},j.PUMPING={type:3,value:"PUMPING"},j.TRANSPORTING={type:3,value:"TRANSPORTING"},j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=j;class V{}V.AGGREGATES={type:3,value:"AGGREGATES"},V.CONCRETE={type:3,value:"CONCRETE"},V.DRYWALL={type:3,value:"DRYWALL"},V.FUEL={type:3,value:"FUEL"},V.GYPSUM={type:3,value:"GYPSUM"},V.MASONRY={type:3,value:"MASONRY"},V.METAL={type:3,value:"METAL"},V.PLASTIC={type:3,value:"PLASTIC"},V.WOOD={type:3,value:"WOOD"},V.NOTDEFINED={type:3,value:"NOTDEFINED"},V.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcConstructionMaterialResourceTypeEnum=V;class k{}k.ASSEMBLY={type:3,value:"ASSEMBLY"},k.FORMWORK={type:3,value:"FORMWORK"},k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=k;class Q{}Q.FLOATING={type:3,value:"FLOATING"},Q.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},Q.PROPORTIONAL={type:3,value:"PROPORTIONAL"},Q.MULTIPOSITION={type:3,value:"MULTIPOSITION"},Q.TWOPOSITION={type:3,value:"TWOPOSITION"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=Q;class W{}W.ACTIVE={type:3,value:"ACTIVE"},W.PASSIVE={type:3,value:"PASSIVE"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=W;class z{}z.NATURALDRAFT={type:3,value:"NATURALDRAFT"},z.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},z.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},z.USERDEFINED={type:3,value:"USERDEFINED"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=z;class K{}K.USERDEFINED={type:3,value:"USERDEFINED"},K.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=K;class Y{}Y.BUDGET={type:3,value:"BUDGET"},Y.COSTPLAN={type:3,value:"COSTPLAN"},Y.ESTIMATE={type:3,value:"ESTIMATE"},Y.TENDER={type:3,value:"TENDER"},Y.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},Y.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},Y.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},Y.USERDEFINED={type:3,value:"USERDEFINED"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=Y;class X{}X.CEILING={type:3,value:"CEILING"},X.FLOORING={type:3,value:"FLOORING"},X.CLADDING={type:3,value:"CLADDING"},X.ROOFING={type:3,value:"ROOFING"},X.MOLDING={type:3,value:"MOLDING"},X.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},X.INSULATION={type:3,value:"INSULATION"},X.MEMBRANE={type:3,value:"MEMBRANE"},X.SLEEVING={type:3,value:"SLEEVING"},X.WRAPPING={type:3,value:"WRAPPING"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=X;class q{}q.OFFICE={type:3,value:"OFFICE"},q.SITE={type:3,value:"SITE"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=q;class J{}J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=J;class Z{}Z.LINEAR={type:3,value:"LINEAR"},Z.LOG_LINEAR={type:3,value:"LOG_LINEAR"},Z.LOG_LOG={type:3,value:"LOG_LOG"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=Z;class ${}$.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},$.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},$.BLASTDAMPER={type:3,value:"BLASTDAMPER"},$.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},$.FIREDAMPER={type:3,value:"FIREDAMPER"},$.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},$.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},$.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},$.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},$.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},$.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=$;class ee{}ee.MEASURED={type:3,value:"MEASURED"},ee.PREDICTED={type:3,value:"PREDICTED"},ee.SIMULATED={type:3,value:"SIMULATED"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=ee;class te{}te.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},te.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},te.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},te.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},te.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},te.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},te.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},te.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},te.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},te.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},te.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},te.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},te.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},te.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},te.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},te.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},te.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},te.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},te.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},te.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},te.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},te.TORQUEUNIT={type:3,value:"TORQUEUNIT"},te.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},te.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},te.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},te.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},te.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},te.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},te.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},te.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},te.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},te.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},te.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},te.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},te.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},te.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},te.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},te.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},te.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},te.PHUNIT={type:3,value:"PHUNIT"},te.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},te.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},te.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},te.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},te.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},te.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},te.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},te.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},te.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},te.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},te.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},te.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},te.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=te;class se{}se.POSITIVE={type:3,value:"POSITIVE"},se.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=se;class ne{}ne.ANCHORPLATE={type:3,value:"ANCHORPLATE"},ne.BRACKET={type:3,value:"BRACKET"},ne.SHOE={type:3,value:"SHOE"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=ne;class ie{}ie.FORMEDDUCT={type:3,value:"FORMEDDUCT"},ie.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},ie.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},ie.MANHOLE={type:3,value:"MANHOLE"},ie.METERCHAMBER={type:3,value:"METERCHAMBER"},ie.SUMP={type:3,value:"SUMP"},ie.TRENCH={type:3,value:"TRENCH"},ie.VALVECHAMBER={type:3,value:"VALVECHAMBER"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=ie;class ae{}ae.CABLE={type:3,value:"CABLE"},ae.CABLECARRIER={type:3,value:"CABLECARRIER"},ae.DUCT={type:3,value:"DUCT"},ae.PIPE={type:3,value:"PIPE"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ae;class re{}re.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},re.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},re.CHEMICAL={type:3,value:"CHEMICAL"},re.CHILLEDWATER={type:3,value:"CHILLEDWATER"},re.COMMUNICATION={type:3,value:"COMMUNICATION"},re.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},re.CONDENSERWATER={type:3,value:"CONDENSERWATER"},re.CONTROL={type:3,value:"CONTROL"},re.CONVEYING={type:3,value:"CONVEYING"},re.DATA={type:3,value:"DATA"},re.DISPOSAL={type:3,value:"DISPOSAL"},re.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},re.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},re.DRAINAGE={type:3,value:"DRAINAGE"},re.EARTHING={type:3,value:"EARTHING"},re.ELECTRICAL={type:3,value:"ELECTRICAL"},re.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},re.EXHAUST={type:3,value:"EXHAUST"},re.FIREPROTECTION={type:3,value:"FIREPROTECTION"},re.FUEL={type:3,value:"FUEL"},re.GAS={type:3,value:"GAS"},re.HAZARDOUS={type:3,value:"HAZARDOUS"},re.HEATING={type:3,value:"HEATING"},re.LIGHTING={type:3,value:"LIGHTING"},re.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},re.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},re.OIL={type:3,value:"OIL"},re.OPERATIONAL={type:3,value:"OPERATIONAL"},re.POWERGENERATION={type:3,value:"POWERGENERATION"},re.RAINWATER={type:3,value:"RAINWATER"},re.REFRIGERATION={type:3,value:"REFRIGERATION"},re.SECURITY={type:3,value:"SECURITY"},re.SEWAGE={type:3,value:"SEWAGE"},re.SIGNAL={type:3,value:"SIGNAL"},re.STORMWATER={type:3,value:"STORMWATER"},re.TELEPHONE={type:3,value:"TELEPHONE"},re.TV={type:3,value:"TV"},re.VACUUM={type:3,value:"VACUUM"},re.VENT={type:3,value:"VENT"},re.VENTILATION={type:3,value:"VENTILATION"},re.WASTEWATER={type:3,value:"WASTEWATER"},re.WATERSUPPLY={type:3,value:"WATERSUPPLY"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=re;class le{}le.PUBLIC={type:3,value:"PUBLIC"},le.RESTRICTED={type:3,value:"RESTRICTED"},le.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},le.PERSONAL={type:3,value:"PERSONAL"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=le;class oe{}oe.DRAFT={type:3,value:"DRAFT"},oe.FINALDRAFT={type:3,value:"FINALDRAFT"},oe.FINAL={type:3,value:"FINAL"},oe.REVISION={type:3,value:"REVISION"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=oe;class ce{}ce.SWINGING={type:3,value:"SWINGING"},ce.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},ce.SLIDING={type:3,value:"SLIDING"},ce.FOLDING={type:3,value:"FOLDING"},ce.REVOLVING={type:3,value:"REVOLVING"},ce.ROLLINGUP={type:3,value:"ROLLINGUP"},ce.FIXEDPANEL={type:3,value:"FIXEDPANEL"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=ce;class ue{}ue.LEFT={type:3,value:"LEFT"},ue.MIDDLE={type:3,value:"MIDDLE"},ue.RIGHT={type:3,value:"RIGHT"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=ue;class he{}he.ALUMINIUM={type:3,value:"ALUMINIUM"},he.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},he.STEEL={type:3,value:"STEEL"},he.WOOD={type:3,value:"WOOD"},he.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},he.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},he.PLASTIC={type:3,value:"PLASTIC"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=he;class pe{}pe.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},pe.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},pe.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},pe.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},pe.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},pe.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},pe.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},pe.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},pe.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},pe.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},pe.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},pe.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},pe.REVOLVING={type:3,value:"REVOLVING"},pe.ROLLINGUP={type:3,value:"ROLLINGUP"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=pe;class Ae{}Ae.DOOR={type:3,value:"DOOR"},Ae.GATE={type:3,value:"GATE"},Ae.TRAPDOOR={type:3,value:"TRAPDOOR"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=Ae;class de{}de.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},de.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},de.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},de.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},de.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},de.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},de.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},de.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},de.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},de.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},de.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},de.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},de.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},de.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},de.REVOLVING={type:3,value:"REVOLVING"},de.ROLLINGUP={type:3,value:"ROLLINGUP"},de.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},de.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},de.USERDEFINED={type:3,value:"USERDEFINED"},de.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeOperationEnum=de;class fe{}fe.BEND={type:3,value:"BEND"},fe.CONNECTOR={type:3,value:"CONNECTOR"},fe.ENTRY={type:3,value:"ENTRY"},fe.EXIT={type:3,value:"EXIT"},fe.JUNCTION={type:3,value:"JUNCTION"},fe.OBSTRUCTION={type:3,value:"OBSTRUCTION"},fe.TRANSITION={type:3,value:"TRANSITION"},fe.USERDEFINED={type:3,value:"USERDEFINED"},fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=fe;class Ie{}Ie.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Ie.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Ie;class ye{}ye.FLATOVAL={type:3,value:"FLATOVAL"},ye.RECTANGULAR={type:3,value:"RECTANGULAR"},ye.ROUND={type:3,value:"ROUND"},ye.USERDEFINED={type:3,value:"USERDEFINED"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=ye;class me{}me.DISHWASHER={type:3,value:"DISHWASHER"},me.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},me.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},me.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},me.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},me.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},me.FREEZER={type:3,value:"FREEZER"},me.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},me.HANDDRYER={type:3,value:"HANDDRYER"},me.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},me.MICROWAVE={type:3,value:"MICROWAVE"},me.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},me.REFRIGERATOR={type:3,value:"REFRIGERATOR"},me.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},me.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},me.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=me;class ve{}ve.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ve.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ve.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ve.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=ve;class we{}we.BATTERY={type:3,value:"BATTERY"},we.CAPACITORBANK={type:3,value:"CAPACITORBANK"},we.HARMONICFILTER={type:3,value:"HARMONICFILTER"},we.INDUCTORBANK={type:3,value:"INDUCTORBANK"},we.UPS={type:3,value:"UPS"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=we;class ge{}ge.CHP={type:3,value:"CHP"},ge.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},ge.STANDALONE={type:3,value:"STANDALONE"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=ge;class Ee{}Ee.DC={type:3,value:"DC"},Ee.INDUCTION={type:3,value:"INDUCTION"},Ee.POLYPHASE={type:3,value:"POLYPHASE"},Ee.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Ee.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=Ee;class Te{}Te.TIMECLOCK={type:3,value:"TIMECLOCK"},Te.TIMEDELAY={type:3,value:"TIMEDELAY"},Te.RELAY={type:3,value:"RELAY"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=Te;class be{}be.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},be.ARCH={type:3,value:"ARCH"},be.BEAM_GRID={type:3,value:"BEAM_GRID"},be.BRACED_FRAME={type:3,value:"BRACED_FRAME"},be.GIRDER={type:3,value:"GIRDER"},be.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},be.RIGID_FRAME={type:3,value:"RIGID_FRAME"},be.SLAB_FIELD={type:3,value:"SLAB_FIELD"},be.TRUSS={type:3,value:"TRUSS"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=be;class De{}De.COMPLEX={type:3,value:"COMPLEX"},De.ELEMENT={type:3,value:"ELEMENT"},De.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=De;class Pe{}Pe.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Pe.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=Pe;class Re{}Re.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Re.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Re.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Re.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Re.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Re.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Re.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Re.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Re.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Re;class Ce{}Ce.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},Ce.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},Ce.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},Ce.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},Ce.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},Ce.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=Ce;class _e{}_e.EVENTRULE={type:3,value:"EVENTRULE"},_e.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},_e.EVENTTIME={type:3,value:"EVENTTIME"},_e.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=_e;class Be{}Be.STARTEVENT={type:3,value:"STARTEVENT"},Be.ENDEVENT={type:3,value:"ENDEVENT"},Be.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Be;class Oe{}Oe.EXTERNAL={type:3,value:"EXTERNAL"},Oe.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Oe.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Oe.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=Oe;class Se{}Se.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},Se.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},Se.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},Se.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},Se.TUBEAXIAL={type:3,value:"TUBEAXIAL"},Se.VANEAXIAL={type:3,value:"VANEAXIAL"},Se.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},Se.USERDEFINED={type:3,value:"USERDEFINED"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=Se;class Ne{}Ne.GLUE={type:3,value:"GLUE"},Ne.MORTAR={type:3,value:"MORTAR"},Ne.WELD={type:3,value:"WELD"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Ne;class xe{}xe.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},xe.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},xe.ODORFILTER={type:3,value:"ODORFILTER"},xe.OILFILTER={type:3,value:"OILFILTER"},xe.STRAINER={type:3,value:"STRAINER"},xe.WATERFILTER={type:3,value:"WATERFILTER"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=xe;class Le{}Le.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Le.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Le.HOSEREEL={type:3,value:"HOSEREEL"},Le.SPRINKLER={type:3,value:"SPRINKLER"},Le.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Le;class Me{}Me.SOURCE={type:3,value:"SOURCE"},Me.SINK={type:3,value:"SINK"},Me.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=Me;class Fe{}Fe.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Fe.THERMOMETER={type:3,value:"THERMOMETER"},Fe.AMMETER={type:3,value:"AMMETER"},Fe.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Fe.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Fe.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Fe.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Fe.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Fe;class He{}He.ENERGYMETER={type:3,value:"ENERGYMETER"},He.GASMETER={type:3,value:"GASMETER"},He.OILMETER={type:3,value:"OILMETER"},He.WATERMETER={type:3,value:"WATERMETER"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=He;class Ue{}Ue.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},Ue.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},Ue.PAD_FOOTING={type:3,value:"PAD_FOOTING"},Ue.PILE_CAP={type:3,value:"PILE_CAP"},Ue.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=Ue;class Ge{}Ge.CHAIR={type:3,value:"CHAIR"},Ge.TABLE={type:3,value:"TABLE"},Ge.DESK={type:3,value:"DESK"},Ge.BED={type:3,value:"BED"},Ge.FILECABINET={type:3,value:"FILECABINET"},Ge.SHELF={type:3,value:"SHELF"},Ge.SOFA={type:3,value:"SOFA"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=Ge;class je{}je.TERRAIN={type:3,value:"TERRAIN"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=je;class Ve{}Ve.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},Ve.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},Ve.MODEL_VIEW={type:3,value:"MODEL_VIEW"},Ve.PLAN_VIEW={type:3,value:"PLAN_VIEW"},Ve.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},Ve.SECTION_VIEW={type:3,value:"SECTION_VIEW"},Ve.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},Ve.USERDEFINED={type:3,value:"USERDEFINED"},Ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=Ve;class ke{}ke.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ke.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ke;class Qe{}Qe.RECTANGULAR={type:3,value:"RECTANGULAR"},Qe.RADIAL={type:3,value:"RADIAL"},Qe.TRIANGULAR={type:3,value:"TRIANGULAR"},Qe.IRREGULAR={type:3,value:"IRREGULAR"},Qe.USERDEFINED={type:3,value:"USERDEFINED"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=Qe;class We{}We.PLATE={type:3,value:"PLATE"},We.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=We;class ze{}ze.STEAMINJECTION={type:3,value:"STEAMINJECTION"},ze.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},ze.ADIABATICPAN={type:3,value:"ADIABATICPAN"},ze.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},ze.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},ze.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},ze.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},ze.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},ze.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},ze.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},ze.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},ze.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},ze.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=ze;class Ke{}Ke.CYCLONIC={type:3,value:"CYCLONIC"},Ke.GREASE={type:3,value:"GREASE"},Ke.OIL={type:3,value:"OIL"},Ke.PETROL={type:3,value:"PETROL"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInterceptorTypeEnum=Ke;class Ye{}Ye.INTERNAL={type:3,value:"INTERNAL"},Ye.EXTERNAL={type:3,value:"EXTERNAL"},Ye.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Ye.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Ye.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Ye;class Xe{}Xe.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},Xe.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},Xe.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=Xe;class qe{}qe.DATA={type:3,value:"DATA"},qe.POWER={type:3,value:"POWER"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=qe;class Je{}Je.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},Je.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},Je.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},Je.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=Je;class Ze{}Ze.ADMINISTRATION={type:3,value:"ADMINISTRATION"},Ze.CARPENTRY={type:3,value:"CARPENTRY"},Ze.CLEANING={type:3,value:"CLEANING"},Ze.CONCRETE={type:3,value:"CONCRETE"},Ze.DRYWALL={type:3,value:"DRYWALL"},Ze.ELECTRIC={type:3,value:"ELECTRIC"},Ze.FINISHING={type:3,value:"FINISHING"},Ze.FLOORING={type:3,value:"FLOORING"},Ze.GENERAL={type:3,value:"GENERAL"},Ze.HVAC={type:3,value:"HVAC"},Ze.LANDSCAPING={type:3,value:"LANDSCAPING"},Ze.MASONRY={type:3,value:"MASONRY"},Ze.PAINTING={type:3,value:"PAINTING"},Ze.PAVING={type:3,value:"PAVING"},Ze.PLUMBING={type:3,value:"PLUMBING"},Ze.ROOFING={type:3,value:"ROOFING"},Ze.SITEGRADING={type:3,value:"SITEGRADING"},Ze.STEELWORK={type:3,value:"STEELWORK"},Ze.SURVEYING={type:3,value:"SURVEYING"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=Ze;class $e{}$e.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},$e.FLUORESCENT={type:3,value:"FLUORESCENT"},$e.HALOGEN={type:3,value:"HALOGEN"},$e.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},$e.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},$e.LED={type:3,value:"LED"},$e.METALHALIDE={type:3,value:"METALHALIDE"},$e.OLED={type:3,value:"OLED"},$e.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=$e;class et{}et.AXIS1={type:3,value:"AXIS1"},et.AXIS2={type:3,value:"AXIS2"},et.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=et;class tt{}tt.TYPE_A={type:3,value:"TYPE_A"},tt.TYPE_B={type:3,value:"TYPE_B"},tt.TYPE_C={type:3,value:"TYPE_C"},tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=tt;class st{}st.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},st.FLUORESCENT={type:3,value:"FLUORESCENT"},st.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},st.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},st.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},st.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},st.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},st.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},st.METALHALIDE={type:3,value:"METALHALIDE"},st.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=st;class nt{}nt.POINTSOURCE={type:3,value:"POINTSOURCE"},nt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},nt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=nt;class it{}it.LOAD_GROUP={type:3,value:"LOAD_GROUP"},it.LOAD_CASE={type:3,value:"LOAD_CASE"},it.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=it;class at{}at.LOGICALAND={type:3,value:"LOGICALAND"},at.LOGICALOR={type:3,value:"LOGICALOR"},at.LOGICALXOR={type:3,value:"LOGICALXOR"},at.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},at.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},e.IfcLogicalOperatorEnum=at;class rt{}rt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},rt.BOLT={type:3,value:"BOLT"},rt.DOWEL={type:3,value:"DOWEL"},rt.NAIL={type:3,value:"NAIL"},rt.NAILPLATE={type:3,value:"NAILPLATE"},rt.RIVET={type:3,value:"RIVET"},rt.SCREW={type:3,value:"SCREW"},rt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},rt.STAPLE={type:3,value:"STAPLE"},rt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=rt;class lt{}lt.AIRSTATION={type:3,value:"AIRSTATION"},lt.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},lt.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},lt.OXYGENPLANT={type:3,value:"OXYGENPLANT"},lt.VACUUMSTATION={type:3,value:"VACUUMSTATION"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=lt;class ot{}ot.BRACE={type:3,value:"BRACE"},ot.CHORD={type:3,value:"CHORD"},ot.COLLAR={type:3,value:"COLLAR"},ot.MEMBER={type:3,value:"MEMBER"},ot.MULLION={type:3,value:"MULLION"},ot.PLATE={type:3,value:"PLATE"},ot.POST={type:3,value:"POST"},ot.PURLIN={type:3,value:"PURLIN"},ot.RAFTER={type:3,value:"RAFTER"},ot.STRINGER={type:3,value:"STRINGER"},ot.STRUT={type:3,value:"STRUT"},ot.STUD={type:3,value:"STUD"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=ot;class ct{}ct.BELTDRIVE={type:3,value:"BELTDRIVE"},ct.COUPLING={type:3,value:"COUPLING"},ct.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=ct;class ut{}ut.NULL={type:3,value:"NULL"},e.IfcNullStyle=ut;class ht{}ht.PRODUCT={type:3,value:"PRODUCT"},ht.PROCESS={type:3,value:"PROCESS"},ht.CONTROL={type:3,value:"CONTROL"},ht.RESOURCE={type:3,value:"RESOURCE"},ht.ACTOR={type:3,value:"ACTOR"},ht.GROUP={type:3,value:"GROUP"},ht.PROJECT={type:3,value:"PROJECT"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=ht;class pt{}pt.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},pt.CODEWAIVER={type:3,value:"CODEWAIVER"},pt.DESIGNINTENT={type:3,value:"DESIGNINTENT"},pt.EXTERNAL={type:3,value:"EXTERNAL"},pt.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},pt.MERGECONFLICT={type:3,value:"MERGECONFLICT"},pt.MODELVIEW={type:3,value:"MODELVIEW"},pt.PARAMETER={type:3,value:"PARAMETER"},pt.REQUIREMENT={type:3,value:"REQUIREMENT"},pt.SPECIFICATION={type:3,value:"SPECIFICATION"},pt.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=pt;class At{}At.ASSIGNEE={type:3,value:"ASSIGNEE"},At.ASSIGNOR={type:3,value:"ASSIGNOR"},At.LESSEE={type:3,value:"LESSEE"},At.LESSOR={type:3,value:"LESSOR"},At.LETTINGAGENT={type:3,value:"LETTINGAGENT"},At.OWNER={type:3,value:"OWNER"},At.TENANT={type:3,value:"TENANT"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=At;class dt{}dt.OPENING={type:3,value:"OPENING"},dt.RECESS={type:3,value:"RECESS"},dt.USERDEFINED={type:3,value:"USERDEFINED"},dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOpeningElementTypeEnum=dt;class ft{}ft.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},ft.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},ft.POWEROUTLET={type:3,value:"POWEROUTLET"},ft.DATAOUTLET={type:3,value:"DATAOUTLET"},ft.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},ft.USERDEFINED={type:3,value:"USERDEFINED"},ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=ft;class It{}It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=It;class yt{}yt.GRILL={type:3,value:"GRILL"},yt.LOUVER={type:3,value:"LOUVER"},yt.SCREEN={type:3,value:"SCREEN"},yt.USERDEFINED={type:3,value:"USERDEFINED"},yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=yt;class mt{}mt.ACCESS={type:3,value:"ACCESS"},mt.BUILDING={type:3,value:"BUILDING"},mt.WORK={type:3,value:"WORK"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=mt;class vt{}vt.PHYSICAL={type:3,value:"PHYSICAL"},vt.VIRTUAL={type:3,value:"VIRTUAL"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=vt;class wt{}wt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},wt.COMPOSITE={type:3,value:"COMPOSITE"},wt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},wt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=wt;class gt{}gt.BORED={type:3,value:"BORED"},gt.DRIVEN={type:3,value:"DRIVEN"},gt.JETGROUTING={type:3,value:"JETGROUTING"},gt.COHESION={type:3,value:"COHESION"},gt.FRICTION={type:3,value:"FRICTION"},gt.SUPPORT={type:3,value:"SUPPORT"},gt.USERDEFINED={type:3,value:"USERDEFINED"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=gt;class Et{}Et.BEND={type:3,value:"BEND"},Et.CONNECTOR={type:3,value:"CONNECTOR"},Et.ENTRY={type:3,value:"ENTRY"},Et.EXIT={type:3,value:"EXIT"},Et.JUNCTION={type:3,value:"JUNCTION"},Et.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Et.TRANSITION={type:3,value:"TRANSITION"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Et;class Tt{}Tt.CULVERT={type:3,value:"CULVERT"},Tt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Tt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Tt.GUTTER={type:3,value:"GUTTER"},Tt.SPOOL={type:3,value:"SPOOL"},Tt.USERDEFINED={type:3,value:"USERDEFINED"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Tt;class bt{}bt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},bt.SHEET={type:3,value:"SHEET"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=bt;class Dt{}Dt.CURVE3D={type:3,value:"CURVE3D"},Dt.PCURVE_S1={type:3,value:"PCURVE_S1"},Dt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Dt;class Pt{}Pt.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Pt.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Pt.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Pt.CALIBRATION={type:3,value:"CALIBRATION"},Pt.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Pt.SHUTDOWN={type:3,value:"SHUTDOWN"},Pt.STARTUP={type:3,value:"STARTUP"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Pt;class Rt{}Rt.CURVE={type:3,value:"CURVE"},Rt.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Rt;class Ct{}Ct.CHANGEORDER={type:3,value:"CHANGEORDER"},Ct.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},Ct.MOVEORDER={type:3,value:"MOVEORDER"},Ct.PURCHASEORDER={type:3,value:"PURCHASEORDER"},Ct.WORKORDER={type:3,value:"WORKORDER"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=Ct;class _t{}_t.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},_t.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=_t;class Bt{}Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=Bt;class Ot{}Ot.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},Ot.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},Ot.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},Ot.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},Ot.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},Ot.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},Ot.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=Ot;class St{}St.ELECTRONIC={type:3,value:"ELECTRONIC"},St.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},St.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},St.THERMAL={type:3,value:"THERMAL"},St.USERDEFINED={type:3,value:"USERDEFINED"},St.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=St;class Nt{}Nt.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},Nt.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},Nt.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},Nt.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},Nt.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},Nt.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},Nt.VARISTOR={type:3,value:"VARISTOR"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=Nt;class xt{}xt.CIRCULATOR={type:3,value:"CIRCULATOR"},xt.ENDSUCTION={type:3,value:"ENDSUCTION"},xt.SPLITCASE={type:3,value:"SPLITCASE"},xt.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},xt.SUMPPUMP={type:3,value:"SUMPPUMP"},xt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},xt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=xt;class Lt{}Lt.HANDRAIL={type:3,value:"HANDRAIL"},Lt.GUARDRAIL={type:3,value:"GUARDRAIL"},Lt.BALUSTRADE={type:3,value:"BALUSTRADE"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=Lt;class Mt{}Mt.STRAIGHT={type:3,value:"STRAIGHT"},Mt.SPIRAL={type:3,value:"SPIRAL"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=Mt;class Ft{}Ft.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Ft.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Ft.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Ft.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Ft.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Ft.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=Ft;class Ht{}Ht.DAILY={type:3,value:"DAILY"},Ht.WEEKLY={type:3,value:"WEEKLY"},Ht.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Ht.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Ht.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Ht.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Ht.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Ht.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=Ht;class Ut{}Ut.BLINN={type:3,value:"BLINN"},Ut.FLAT={type:3,value:"FLAT"},Ut.GLASS={type:3,value:"GLASS"},Ut.MATT={type:3,value:"MATT"},Ut.METAL={type:3,value:"METAL"},Ut.MIRROR={type:3,value:"MIRROR"},Ut.PHONG={type:3,value:"PHONG"},Ut.PLASTIC={type:3,value:"PLASTIC"},Ut.STRAUSS={type:3,value:"STRAUSS"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Ut;class Gt{}Gt.MAIN={type:3,value:"MAIN"},Gt.SHEAR={type:3,value:"SHEAR"},Gt.LIGATURE={type:3,value:"LIGATURE"},Gt.STUD={type:3,value:"STUD"},Gt.PUNCHING={type:3,value:"PUNCHING"},Gt.EDGE={type:3,value:"EDGE"},Gt.RING={type:3,value:"RING"},Gt.ANCHORING={type:3,value:"ANCHORING"},Gt.USERDEFINED={type:3,value:"USERDEFINED"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=Gt;class jt{}jt.PLAIN={type:3,value:"PLAIN"},jt.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=jt;class Vt{}Vt.ANCHORING={type:3,value:"ANCHORING"},Vt.EDGE={type:3,value:"EDGE"},Vt.LIGATURE={type:3,value:"LIGATURE"},Vt.MAIN={type:3,value:"MAIN"},Vt.PUNCHING={type:3,value:"PUNCHING"},Vt.RING={type:3,value:"RING"},Vt.SHEAR={type:3,value:"SHEAR"},Vt.STUD={type:3,value:"STUD"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=Vt;class kt{}kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=kt;class Qt{}Qt.SUPPLIER={type:3,value:"SUPPLIER"},Qt.MANUFACTURER={type:3,value:"MANUFACTURER"},Qt.CONTRACTOR={type:3,value:"CONTRACTOR"},Qt.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Qt.ARCHITECT={type:3,value:"ARCHITECT"},Qt.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Qt.COSTENGINEER={type:3,value:"COSTENGINEER"},Qt.CLIENT={type:3,value:"CLIENT"},Qt.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Qt.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Qt.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Qt.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Qt.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Qt.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Qt.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Qt.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Qt.ENGINEER={type:3,value:"ENGINEER"},Qt.OWNER={type:3,value:"OWNER"},Qt.CONSULTANT={type:3,value:"CONSULTANT"},Qt.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Qt.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Qt.RESELLER={type:3,value:"RESELLER"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=Qt;class Wt{}Wt.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Wt.SHED_ROOF={type:3,value:"SHED_ROOF"},Wt.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Wt.HIP_ROOF={type:3,value:"HIP_ROOF"},Wt.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Wt.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Wt.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Wt.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Wt.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Wt.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Wt.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Wt.DOME_ROOF={type:3,value:"DOME_ROOF"},Wt.FREEFORM={type:3,value:"FREEFORM"},Wt.USERDEFINED={type:3,value:"USERDEFINED"},Wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=Wt;class zt{}zt.EXA={type:3,value:"EXA"},zt.PETA={type:3,value:"PETA"},zt.TERA={type:3,value:"TERA"},zt.GIGA={type:3,value:"GIGA"},zt.MEGA={type:3,value:"MEGA"},zt.KILO={type:3,value:"KILO"},zt.HECTO={type:3,value:"HECTO"},zt.DECA={type:3,value:"DECA"},zt.DECI={type:3,value:"DECI"},zt.CENTI={type:3,value:"CENTI"},zt.MILLI={type:3,value:"MILLI"},zt.MICRO={type:3,value:"MICRO"},zt.NANO={type:3,value:"NANO"},zt.PICO={type:3,value:"PICO"},zt.FEMTO={type:3,value:"FEMTO"},zt.ATTO={type:3,value:"ATTO"},e.IfcSIPrefix=zt;class Kt{}Kt.AMPERE={type:3,value:"AMPERE"},Kt.BECQUEREL={type:3,value:"BECQUEREL"},Kt.CANDELA={type:3,value:"CANDELA"},Kt.COULOMB={type:3,value:"COULOMB"},Kt.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Kt.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Kt.FARAD={type:3,value:"FARAD"},Kt.GRAM={type:3,value:"GRAM"},Kt.GRAY={type:3,value:"GRAY"},Kt.HENRY={type:3,value:"HENRY"},Kt.HERTZ={type:3,value:"HERTZ"},Kt.JOULE={type:3,value:"JOULE"},Kt.KELVIN={type:3,value:"KELVIN"},Kt.LUMEN={type:3,value:"LUMEN"},Kt.LUX={type:3,value:"LUX"},Kt.METRE={type:3,value:"METRE"},Kt.MOLE={type:3,value:"MOLE"},Kt.NEWTON={type:3,value:"NEWTON"},Kt.OHM={type:3,value:"OHM"},Kt.PASCAL={type:3,value:"PASCAL"},Kt.RADIAN={type:3,value:"RADIAN"},Kt.SECOND={type:3,value:"SECOND"},Kt.SIEMENS={type:3,value:"SIEMENS"},Kt.SIEVERT={type:3,value:"SIEVERT"},Kt.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Kt.STERADIAN={type:3,value:"STERADIAN"},Kt.TESLA={type:3,value:"TESLA"},Kt.VOLT={type:3,value:"VOLT"},Kt.WATT={type:3,value:"WATT"},Kt.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Kt;class Yt{}Yt.BATH={type:3,value:"BATH"},Yt.BIDET={type:3,value:"BIDET"},Yt.CISTERN={type:3,value:"CISTERN"},Yt.SHOWER={type:3,value:"SHOWER"},Yt.SINK={type:3,value:"SINK"},Yt.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Yt.TOILETPAN={type:3,value:"TOILETPAN"},Yt.URINAL={type:3,value:"URINAL"},Yt.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Yt.WCSEAT={type:3,value:"WCSEAT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=Yt;class Xt{}Xt.UNIFORM={type:3,value:"UNIFORM"},Xt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=Xt;class qt{}qt.COSENSOR={type:3,value:"COSENSOR"},qt.CO2SENSOR={type:3,value:"CO2SENSOR"},qt.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},qt.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},qt.FIRESENSOR={type:3,value:"FIRESENSOR"},qt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},qt.FROSTSENSOR={type:3,value:"FROSTSENSOR"},qt.GASSENSOR={type:3,value:"GASSENSOR"},qt.HEATSENSOR={type:3,value:"HEATSENSOR"},qt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},qt.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},qt.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},qt.LEVELSENSOR={type:3,value:"LEVELSENSOR"},qt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},qt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},qt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},qt.PHSENSOR={type:3,value:"PHSENSOR"},qt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},qt.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},qt.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},qt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},qt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},qt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},qt.WINDSENSOR={type:3,value:"WINDSENSOR"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=qt;class Jt{}Jt.START_START={type:3,value:"START_START"},Jt.START_FINISH={type:3,value:"START_FINISH"},Jt.FINISH_START={type:3,value:"FINISH_START"},Jt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=Jt;class Zt{}Zt.JALOUSIE={type:3,value:"JALOUSIE"},Zt.SHUTTER={type:3,value:"SHUTTER"},Zt.AWNING={type:3,value:"AWNING"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Zt;class $t{}$t.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},$t.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},$t.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},$t.P_LISTVALUE={type:3,value:"P_LISTVALUE"},$t.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},$t.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},$t.Q_LENGTH={type:3,value:"Q_LENGTH"},$t.Q_AREA={type:3,value:"Q_AREA"},$t.Q_VOLUME={type:3,value:"Q_VOLUME"},$t.Q_COUNT={type:3,value:"Q_COUNT"},$t.Q_WEIGHT={type:3,value:"Q_WEIGHT"},$t.Q_TIME={type:3,value:"Q_TIME"},e.IfcSimplePropertyTemplateTypeEnum=$t;class es{}es.FLOOR={type:3,value:"FLOOR"},es.ROOF={type:3,value:"ROOF"},es.LANDING={type:3,value:"LANDING"},es.BASESLAB={type:3,value:"BASESLAB"},es.USERDEFINED={type:3,value:"USERDEFINED"},es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=es;class ts{}ts.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},ts.SOLARPANEL={type:3,value:"SOLARPANEL"},ts.USERDEFINED={type:3,value:"USERDEFINED"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=ts;class ss{}ss.CONVECTOR={type:3,value:"CONVECTOR"},ss.RADIATOR={type:3,value:"RADIATOR"},ss.USERDEFINED={type:3,value:"USERDEFINED"},ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=ss;class ns{}ns.SPACE={type:3,value:"SPACE"},ns.PARKING={type:3,value:"PARKING"},ns.GFA={type:3,value:"GFA"},ns.INTERNAL={type:3,value:"INTERNAL"},ns.EXTERNAL={type:3,value:"EXTERNAL"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=ns;class is{}is.CONSTRUCTION={type:3,value:"CONSTRUCTION"},is.FIRESAFETY={type:3,value:"FIRESAFETY"},is.LIGHTING={type:3,value:"LIGHTING"},is.OCCUPANCY={type:3,value:"OCCUPANCY"},is.SECURITY={type:3,value:"SECURITY"},is.THERMAL={type:3,value:"THERMAL"},is.TRANSPORT={type:3,value:"TRANSPORT"},is.VENTILATION={type:3,value:"VENTILATION"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=is;class as{}as.BIRDCAGE={type:3,value:"BIRDCAGE"},as.COWL={type:3,value:"COWL"},as.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=as;class rs{}rs.STRAIGHT={type:3,value:"STRAIGHT"},rs.WINDER={type:3,value:"WINDER"},rs.SPIRAL={type:3,value:"SPIRAL"},rs.CURVED={type:3,value:"CURVED"},rs.FREEFORM={type:3,value:"FREEFORM"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=rs;class ls{}ls.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},ls.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},ls.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},ls.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},ls.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},ls.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},ls.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},ls.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},ls.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},ls.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},ls.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},ls.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},ls.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},ls.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=ls;class os{}os.READWRITE={type:3,value:"READWRITE"},os.READONLY={type:3,value:"READONLY"},os.LOCKED={type:3,value:"LOCKED"},os.READWRITELOCKED={type:3,value:"READWRITELOCKED"},os.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=os;class cs{}cs.CONST={type:3,value:"CONST"},cs.LINEAR={type:3,value:"LINEAR"},cs.POLYGONAL={type:3,value:"POLYGONAL"},cs.EQUIDISTANT={type:3,value:"EQUIDISTANT"},cs.SINUS={type:3,value:"SINUS"},cs.PARABOLA={type:3,value:"PARABOLA"},cs.DISCRETE={type:3,value:"DISCRETE"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=cs;class us{}us.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},us.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},us.CABLE={type:3,value:"CABLE"},us.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},us.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=us;class hs{}hs.CONST={type:3,value:"CONST"},hs.BILINEAR={type:3,value:"BILINEAR"},hs.DISCRETE={type:3,value:"DISCRETE"},hs.ISOCONTOUR={type:3,value:"ISOCONTOUR"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=hs;class ps{}ps.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},ps.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},ps.SHELL={type:3,value:"SHELL"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=ps;class As{}As.PURCHASE={type:3,value:"PURCHASE"},As.WORK={type:3,value:"WORK"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=As;class ds{}ds.MARK={type:3,value:"MARK"},ds.TAG={type:3,value:"TAG"},ds.TREATMENT={type:3,value:"TREATMENT"},ds.USERDEFINED={type:3,value:"USERDEFINED"},ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=ds;class fs{}fs.POSITIVE={type:3,value:"POSITIVE"},fs.NEGATIVE={type:3,value:"NEGATIVE"},fs.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=fs;class Is{}Is.CONTACTOR={type:3,value:"CONTACTOR"},Is.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Is.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Is.KEYPAD={type:3,value:"KEYPAD"},Is.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Is.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Is.STARTER={type:3,value:"STARTER"},Is.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Is.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Is;class ys{}ys.PANEL={type:3,value:"PANEL"},ys.WORKSURFACE={type:3,value:"WORKSURFACE"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSystemFurnitureElementTypeEnum=ys;class ms{}ms.BASIN={type:3,value:"BASIN"},ms.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},ms.EXPANSION={type:3,value:"EXPANSION"},ms.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},ms.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},ms.STORAGE={type:3,value:"STORAGE"},ms.VESSEL={type:3,value:"VESSEL"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=ms;class vs{}vs.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},vs.WORKTIME={type:3,value:"WORKTIME"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=vs;class ws{}ws.ATTENDANCE={type:3,value:"ATTENDANCE"},ws.CONSTRUCTION={type:3,value:"CONSTRUCTION"},ws.DEMOLITION={type:3,value:"DEMOLITION"},ws.DISMANTLE={type:3,value:"DISMANTLE"},ws.DISPOSAL={type:3,value:"DISPOSAL"},ws.INSTALLATION={type:3,value:"INSTALLATION"},ws.LOGISTIC={type:3,value:"LOGISTIC"},ws.MAINTENANCE={type:3,value:"MAINTENANCE"},ws.MOVE={type:3,value:"MOVE"},ws.OPERATION={type:3,value:"OPERATION"},ws.REMOVAL={type:3,value:"REMOVAL"},ws.RENOVATION={type:3,value:"RENOVATION"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=ws;class gs{}gs.COUPLER={type:3,value:"COUPLER"},gs.FIXED_END={type:3,value:"FIXED_END"},gs.TENSIONING_END={type:3,value:"TENSIONING_END"},gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=gs;class Es{}Es.BAR={type:3,value:"BAR"},Es.COATED={type:3,value:"COATED"},Es.STRAND={type:3,value:"STRAND"},Es.WIRE={type:3,value:"WIRE"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Es;class Ts{}Ts.LEFT={type:3,value:"LEFT"},Ts.RIGHT={type:3,value:"RIGHT"},Ts.UP={type:3,value:"UP"},Ts.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Ts;class bs{}bs.CONTINUOUS={type:3,value:"CONTINUOUS"},bs.DISCRETE={type:3,value:"DISCRETE"},bs.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},bs.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},bs.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},bs.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=bs;class Ds{}Ds.CURRENT={type:3,value:"CURRENT"},Ds.FREQUENCY={type:3,value:"FREQUENCY"},Ds.INVERTER={type:3,value:"INVERTER"},Ds.RECTIFIER={type:3,value:"RECTIFIER"},Ds.VOLTAGE={type:3,value:"VOLTAGE"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=Ds;class Ps{}Ps.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},Ps.CONTINUOUS={type:3,value:"CONTINUOUS"},Ps.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},Ps.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=Ps;class Rs{}Rs.ELEVATOR={type:3,value:"ELEVATOR"},Rs.ESCALATOR={type:3,value:"ESCALATOR"},Rs.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Rs.CRANEWAY={type:3,value:"CRANEWAY"},Rs.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},Rs.USERDEFINED={type:3,value:"USERDEFINED"},Rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Rs;class Cs{}Cs.CARTESIAN={type:3,value:"CARTESIAN"},Cs.PARAMETER={type:3,value:"PARAMETER"},Cs.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Cs;class _s{}_s.FINNED={type:3,value:"FINNED"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=_s;class Bs{}Bs.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Bs.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Bs.AREAUNIT={type:3,value:"AREAUNIT"},Bs.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Bs.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Bs.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Bs.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Bs.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Bs.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Bs.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Bs.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Bs.FORCEUNIT={type:3,value:"FORCEUNIT"},Bs.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Bs.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Bs.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Bs.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Bs.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Bs.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Bs.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Bs.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Bs.MASSUNIT={type:3,value:"MASSUNIT"},Bs.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Bs.POWERUNIT={type:3,value:"POWERUNIT"},Bs.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Bs.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Bs.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Bs.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Bs.TIMEUNIT={type:3,value:"TIMEUNIT"},Bs.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Bs;class Os{}Os.ALARMPANEL={type:3,value:"ALARMPANEL"},Os.CONTROLPANEL={type:3,value:"CONTROLPANEL"},Os.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},Os.INDICATORPANEL={type:3,value:"INDICATORPANEL"},Os.MIMICPANEL={type:3,value:"MIMICPANEL"},Os.HUMIDISTAT={type:3,value:"HUMIDISTAT"},Os.THERMOSTAT={type:3,value:"THERMOSTAT"},Os.WEATHERSTATION={type:3,value:"WEATHERSTATION"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=Os;class Ss{}Ss.AIRHANDLER={type:3,value:"AIRHANDLER"},Ss.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},Ss.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},Ss.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},Ss.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=Ss;class Ns{}Ns.AIRRELEASE={type:3,value:"AIRRELEASE"},Ns.ANTIVACUUM={type:3,value:"ANTIVACUUM"},Ns.CHANGEOVER={type:3,value:"CHANGEOVER"},Ns.CHECK={type:3,value:"CHECK"},Ns.COMMISSIONING={type:3,value:"COMMISSIONING"},Ns.DIVERTING={type:3,value:"DIVERTING"},Ns.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},Ns.DOUBLECHECK={type:3,value:"DOUBLECHECK"},Ns.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},Ns.FAUCET={type:3,value:"FAUCET"},Ns.FLUSHING={type:3,value:"FLUSHING"},Ns.GASCOCK={type:3,value:"GASCOCK"},Ns.GASTAP={type:3,value:"GASTAP"},Ns.ISOLATING={type:3,value:"ISOLATING"},Ns.MIXING={type:3,value:"MIXING"},Ns.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},Ns.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},Ns.REGULATING={type:3,value:"REGULATING"},Ns.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},Ns.STEAMTRAP={type:3,value:"STEAMTRAP"},Ns.STOPCOCK={type:3,value:"STOPCOCK"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=Ns;class xs{}xs.COMPRESSION={type:3,value:"COMPRESSION"},xs.SPRING={type:3,value:"SPRING"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=xs;class Ls{}Ls.CUTOUT={type:3,value:"CUTOUT"},Ls.NOTCH={type:3,value:"NOTCH"},Ls.HOLE={type:3,value:"HOLE"},Ls.MITER={type:3,value:"MITER"},Ls.CHAMFER={type:3,value:"CHAMFER"},Ls.EDGE={type:3,value:"EDGE"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Ls;class Ms{}Ms.MOVABLE={type:3,value:"MOVABLE"},Ms.PARAPET={type:3,value:"PARAPET"},Ms.PARTITIONING={type:3,value:"PARTITIONING"},Ms.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Ms.SHEAR={type:3,value:"SHEAR"},Ms.SOLIDWALL={type:3,value:"SOLIDWALL"},Ms.STANDARD={type:3,value:"STANDARD"},Ms.POLYGONAL={type:3,value:"POLYGONAL"},Ms.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Ms;class Fs{}Fs.FLOORTRAP={type:3,value:"FLOORTRAP"},Fs.FLOORWASTE={type:3,value:"FLOORWASTE"},Fs.GULLYSUMP={type:3,value:"GULLYSUMP"},Fs.GULLYTRAP={type:3,value:"GULLYTRAP"},Fs.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Fs.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Fs.WASTETRAP={type:3,value:"WASTETRAP"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Fs;class Hs{}Hs.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Hs.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Hs.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Hs.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Hs.TOPHUNG={type:3,value:"TOPHUNG"},Hs.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Hs.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Hs.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Hs.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Hs.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Hs.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Hs.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Hs.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Hs;class Us{}Us.LEFT={type:3,value:"LEFT"},Us.MIDDLE={type:3,value:"MIDDLE"},Us.RIGHT={type:3,value:"RIGHT"},Us.BOTTOM={type:3,value:"BOTTOM"},Us.TOP={type:3,value:"TOP"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Us;class Gs{}Gs.ALUMINIUM={type:3,value:"ALUMINIUM"},Gs.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Gs.STEEL={type:3,value:"STEEL"},Gs.WOOD={type:3,value:"WOOD"},Gs.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Gs.PLASTIC={type:3,value:"PLASTIC"},Gs.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Gs;class js{}js.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},js.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},js.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},js.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},js.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},js.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},js.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},js.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},js.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=js;class Vs{}Vs.WINDOW={type:3,value:"WINDOW"},Vs.SKYLIGHT={type:3,value:"SKYLIGHT"},Vs.LIGHTDOME={type:3,value:"LIGHTDOME"},Vs.USERDEFINED={type:3,value:"USERDEFINED"},Vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Vs;class ks{}ks.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},ks.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},ks.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},ks.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},ks.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},ks.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},ks.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},ks.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},ks.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=ks;class Qs{}Qs.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},Qs.SECONDSHIFT={type:3,value:"SECONDSHIFT"},Qs.THIRDSHIFT={type:3,value:"THIRDSHIFT"},Qs.USERDEFINED={type:3,value:"USERDEFINED"},Qs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=Qs;class Ws{}Ws.ACTUAL={type:3,value:"ACTUAL"},Ws.BASELINE={type:3,value:"BASELINE"},Ws.PLANNED={type:3,value:"PLANNED"},Ws.USERDEFINED={type:3,value:"USERDEFINED"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Ws;class zs{}zs.ACTUAL={type:3,value:"ACTUAL"},zs.BASELINE={type:3,value:"BASELINE"},zs.PLANNED={type:3,value:"PLANNED"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=zs;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class Ks extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=Ks;e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class Ys extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=411424972}}e.IfcAppliedValue=Ys;e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.TimeOfApproval=i,this.Status=a,this.Level=r,this.Qualifier=l,this.RequestingApproval=o,this.GivingApproval=c,this.type=130549933}};class Xs extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Xs;e.IfcBoundaryEdgeCondition=class extends Xs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Xs{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=i,this.type=3367102660}};class qs extends Xs{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=qs;e.IfcBoundaryNodeConditionWarping=class extends qs{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};class Js extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Js;class Zs extends Js{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Zs;e.IfcConnectionSurfaceGeometry=class extends Js{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Js{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class $s extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=$s;class en extends Kb{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=en;class tn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.type=1466758467}}e.IfcCoordinateReferenceSystem=tn;e.IfcCostValue=class extends Ys{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=602808272}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};class sn extends Kb{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=sn;class nn extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.Identification=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=nn;e.IfcExternallyDefinedHatchStyle=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends nn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends sn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.Location=a,this.Description=r,this.type=2655187982}};e.IfcLibraryReference=class extends nn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.Language=a,this.ReferencedLibrary=r,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends en{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=n,this.Northings=i,this.OrthogonalHeight=a,this.XAxisAbscissa=r,this.XAxisOrdinate=l,this.Scale=o,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class an extends Kb{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=an;class rn extends an{constructor(e,t,s,n,i,a,r,l){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.type=248100487}}e.IfcMaterialLayer=rn;e.IfcMaterialLayerSet=class extends an{constructor(e,t,s,n){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=n,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends rn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.OffsetDirection=o,this.OffsetValues=c,this.type=1847252529}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ln extends an{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.type=2235152071}}e.IfcMaterialProfile=ln;e.IfcMaterialProfileSet=class extends an{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=n,this.CompositeProfile=i,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends ln{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.OffsetValues=l,this.type=552965576}};class on extends Kb{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=on;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends $s{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.ReferencePath=h,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class cn extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=cn;class un extends Kb{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=un;e.IfcObjective=class extends $s{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.LogicalAggregator=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class hn extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=hn;class pn extends hn{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=pn;e.IfcPostalAddress=class extends Ks{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class An extends Kb{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=An;class dn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=dn;e.IfcPresentationLayerWithStyle=class extends dn{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class fn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=fn;e.IfcPresentationStyleAssignment=class extends Kb{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class In extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=In;class yn extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=yn;e.IfcProjectedCRS=class extends tn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.MapProjection=a,this.MapZone=r,this.MapUnit=l,this.type=3843373140}};class mn extends Kb{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=mn;e.IfcPropertyEnumeration=class extends mn{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.Formula=a,this.type=2044713172}};e.IfcQuantityCount=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.Formula=a,this.type=2093928680}};e.IfcQuantityLength=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.Formula=a,this.type=931644368}};e.IfcQuantityTime=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.Formula=a,this.type=3252649465}};e.IfcQuantityVolume=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.Formula=a,this.type=2405470396}};e.IfcQuantityWeight=class extends pn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.Formula=a,this.type=825690147}};e.IfcRecurrencePattern=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=n,this.MonthComponent=i,this.Position=a,this.Interval=r,this.Occurrences=l,this.TimePeriods=o,this.type=3915482550}};e.IfcReference=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=n,this.ListPositions=i,this.InnerReference=a,this.type=2433181523}};class vn extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=vn;class wn extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=wn;class gn extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=gn;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class En extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=En;class Tn extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=Tn;e.IfcSIUnit=class extends cn{constructor(e,t,s,n){super(e,new zb(0),t),this.UnitType=t,this.Prefix=s,this.Name=n,this.type=448429030}};class bn extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.type=1054537805}}e.IfcSchedulingTime=bn;e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Dn extends vn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Dn;e.IfcShapeRepresentation=class extends Dn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class Pn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Pn;class Rn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Rn;e.IfcStructuralLoadConfiguration=class extends Rn{constructor(e,t,s,n){super(e,t),this.Name=t,this.Values=s,this.Locations=n,this.type=3478079324}};class Cn extends Rn{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Cn;class _n extends Cn{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=_n;e.IfcStructuralLoadTemperature=class extends _n{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=n,this.DeltaTZ=i,this.type=3408363356}};class Bn extends vn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=Bn;e.IfcStyledItem=class extends gn{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}};e.IfcStyledRepresentation=class extends Bn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Cn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=n,this.ShearReinforcement=i,this.type=2934153892}};e.IfcSurfaceStyle=class extends fn{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends An{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends An{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class On extends An{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=On;e.IfcSurfaceStyleWithTextures=class extends An{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class Sn extends An{constructor(e,t,s,n,i,a){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.type=626085974}}e.IfcSurfaceTexture=Sn;e.IfcTable=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Rows=s,this.Columns=n,this.type=985171141}};e.IfcTableColumn=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.Unit=i,this.ReferencePath=a,this.type=2043862942}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class Nn extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.type=1549132990}}e.IfcTaskTime=Nn;e.IfcTaskTimeRecurring=class extends Nn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.Recurrence=g,this.type=2771591690}};e.IfcTelecomAddress=class extends Ks{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.MessagingIDs=c,this.type=912023232}};e.IfcTextStyle=class extends fn{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.ModelOrDraughting=a,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends An{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends An{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};class xn extends An{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=xn;e.IfcTextureCoordinateGenerator=class extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=n,this.type=1742049831}};e.IfcTextureMap=class extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=n,this.type=2552916305}};e.IfcTextureVertex=class extends An{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends An{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends Kb{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Ln extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=Ln;e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Mn extends gn{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Mn;e.IfcTopologyRepresentation=class extends Dn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Fn extends Mn{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Fn;e.IfcVertexPoint=class extends Fn{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends bn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.RecurrencePattern=i,this.Start=a,this.Finish=r,this.type=1236880293}};e.IfcApprovalRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=n,this.RelatedApprovals=i,this.type=3869604511}};class Hn extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Hn;class Un extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Un;e.IfcArbitraryProfileDefWithVoids=class extends Hn{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends Sn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.RasterFormat=r,this.RasterCode=l,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Un{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassification=class extends sn{constructor(e,t,s,n,i,a,r,l){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.Description=a,this.Location=r,this.ReferenceTokens=l,this.type=747523909}};e.IfcClassificationReference=class extends nn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.ReferencedSource=i,this.Description=a,this.Sort=r,this.type=647927063}};e.IfcColourRgbList=class extends An{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Gn extends An{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Gn;e.IfcCompositeProfileDef=class extends yn{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class jn extends Mn{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=jn;e.IfcConnectionCurveGeometry=class extends Js{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Zs{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends cn{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};class Vn extends cn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}}e.IfcConversionBasedUnit=Vn;e.IfcConversionBasedUnitWithOffset=class extends Vn{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.ConversionOffset=a,this.type=2713554722}};e.IfcCurrencyRelationship=class extends En{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=i,this.ExchangeRate=a,this.RateDateTime=r,this.RateSource=l,this.type=539742890}};e.IfcCurveStyle=class extends fn{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.ModelOrDraughting=a,this.type=3800577675}};e.IfcCurveStyleFont=class extends An{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends An{constructor(e,t,s,n){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends An{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class kn extends yn{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}}e.IfcDerivedProfileDef=kn;e.IfcDocumentInformation=class extends sn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Location=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=n,this.RelatedDocuments=i,this.RelationshipType=a,this.type=770865208}};e.IfcDocumentReference=class extends nn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.ReferencedDocument=a,this.type=3732053477}};class Qn extends Mn{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Qn;e.IfcEdgeCurve=class extends Qn{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcEventTime=class extends bn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ActualDate=i,this.EarlyDate=a,this.LateDate=r,this.ScheduleDate=l,this.type=211053100}};class Wn extends mn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Properties=n,this.type=297599258}}e.IfcExtendedProperties=Wn;e.IfcExternalReferenceRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=n,this.RelatedResourceObjects=i,this.type=1437805879}};class zn extends Mn{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=zn;class Kn extends Mn{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Kn;e.IfcFaceOuterBound=class extends Kn{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Yn extends zn{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}}e.IfcFaceSurface=Yn;e.IfcFailureConnectionCondition=class extends Pn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends fn{constructor(e,t,s,n){super(e,t),this.Name=t,this.FillStyles=s,this.ModelorDraughting=n,this.type=738692330}};class Xn extends wn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=Xn;class qn extends gn{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=qn;e.IfcGeometricRepresentationSubContext=class extends Xn{constructor(e,s,n,i,a,r,l){super(e,s,n,new t(0),null,new zb(0),null),this.ContextIdentifier=s,this.ContextType=n,this.ParentContext=i,this.TargetScale=a,this.TargetView=r,this.UserDefinedTargetView=l,this.type=4142052618}};class Jn extends qn{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Jn;e.IfcGridPlacement=class extends un{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class Zn extends qn{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=Zn;e.IfcImageTexture=class extends Sn{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.URLReference=r,this.type=3905492369}};e.IfcIndexedColourMap=class extends An{constructor(e,t,s,n,i){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=n,this.ColourIndex=i,this.type=3570813810}};class $n extends xn{constructor(e,t,s,n){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.type=1437953363}}e.IfcIndexedTextureMap=$n;e.IfcIndexedTriangleTextureMap=class extends $n{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndex=i,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};e.IfcLagTime=class extends bn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.LagValue=i,this.DurationType=a,this.type=1585845231}};class ei extends qn{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=ei;e.IfcLightSourceAmbient=class extends ei{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends ei{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class ti extends ei{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=ti;e.IfcLightSourceSpot=class extends ti{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLocalPlacement=class extends un{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class si extends Mn{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=si;e.IfcMappedItem=class extends gn{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends an{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Category=n,this.type=1838606355}};e.IfcMaterialConstituent=class extends an{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.Material=n,this.Fraction=i,this.Category=a,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends an{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=n,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends In{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends on{constructor(e,t,s,n,i,a){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.ReferenceExtent=a,this.type=1303795690}};class ni extends on{constructor(e,t,s,n){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.type=3079605661}}e.IfcMaterialProfileSetUsage=ni;e.IfcMaterialProfileSetUsageTapering=class extends ni{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.ForProfileEndSet=i,this.CardinalEndPoint=a,this.type=3404854881}};e.IfcMaterialProperties=class extends Wn{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.Material=i,this.type=3265635763}};e.IfcMaterialRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=n,this.RelatedMaterials=i,this.Expression=a,this.type=853536259}};e.IfcMirroredProfileDef=class extends kn{constructor(e,t,s,n,i){super(e,t,s,n,new zb(0),i),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Label=i,this.type=2998442950}};class ii extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=ii;e.IfcOpenShell=class extends jn{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOrientedEdge=class extends Qn{constructor(e,t,s){super(e,new zb(0),new zb(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class ai extends yn{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=ai;e.IfcPath=class extends Mn{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends hn{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends Sn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.Width=r,this.Height=l,this.ColourComponents=o,this.Pixel=c,this.type=597895409}};class ri extends qn{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=ri;class li extends qn{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=li;class oi extends qn{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=oi;e.IfcPointOnCurve=class extends oi{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends oi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends si{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends Zn{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class ci extends An{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=ci;class ui extends mn{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=ui;class hi extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=hi;e.IfcProductDefinitionShape=class extends In{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcProfileProperties=class extends Wn{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.ProfileDefinition=i,this.type=2802850158}};class pi extends mn{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=pi;class Ai extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=Ai;e.IfcPropertyDependencyRelationship=class extends En{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=n,this.DependantProperty=i,this.Expression=a,this.type=148025276}};class di extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=di;class fi extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1482703590}}e.IfcPropertyTemplateDefinition=fi;class Ii extends di{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2090586900}}e.IfcQuantitySet=Ii;class yi extends ai{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=yi;e.IfcRegularTimeSeries=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends ui{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};class mi extends Tn{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=mi;e.IfcResourceApprovalRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=n,this.RelatingApproval=i,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends En{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedResourceObjects=i,this.type=1608871552}};e.IfcResourceTime=class extends bn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ScheduleWork=i,this.ScheduleUsage=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.ScheduleContour=o,this.LevelingDelay=c,this.IsOverAllocated=u,this.StatusTime=h,this.ActualWork=p,this.ActualUsage=A,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=I,this.RemainingUsage=y,this.Completion=m,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends yi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionProperties=class extends ui{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends ui{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcSectionedSpine=class extends qn{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};e.IfcShellBasedSurfaceModel=class extends qn{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class vi extends pi{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=vi;e.IfcSlippageConnectionCondition=class extends Pn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class wi extends qn{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=wi;e.IfcStructuralLoadLinearForce=class extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends _n{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class gi extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=gi;e.IfcStructuralLoadSingleDisplacementDistortion=class extends gi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class Ei extends _n{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Ei;e.IfcStructuralLoadSingleForceWarping=class extends Ei{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};e.IfcSubedge=class extends Qn{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Ti extends qn{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Ti;e.IfcSurfaceStyleRendering=class extends On{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class bi extends wi{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=bi;class Di extends wi{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}}e.IfcSweptDiskSolid=Di;e.IfcSweptDiskSolidPolygonal=class extends Di{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.FilletRadius=r,this.type=1096409881}};class Pi extends Ti{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Pi;e.IfcTShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.type=3071757647}};class Ri extends qn{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=Ri;class Ci extends qn{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=Ci;e.IfcTextLiteralWithExtent=class extends Ci{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTextStyleFontModel=class extends hi{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};class _i extends ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=_i;class Bi extends _i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.type=3736923433}}e.IfcTypeProcess=Bi;class Oi extends _i{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=Oi;class Si extends _i{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.type=3698973494}}e.IfcTypeResource=Si;e.IfcUShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.type=427810014}};e.IfcVector=class extends qn{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends si{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowStyle=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ConstructionType=c,this.OperationType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=1299126871}};e.IfcZShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};e.IfcAdvancedFace=class extends Yn{constructor(e,t,s,n){super(e,t,s,n),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3406155212}};e.IfcAnnotationFillArea=class extends qn{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomFlangeWidth=i,this.OverallDepth=a,this.WebThickness=r,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.BottomFlangeEdgeRadius=p,this.BottomFlangeSlope=A,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends ri{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends ri{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends ri{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};class Ni extends qn{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Ni;class xi extends Ti{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=xi;e.IfcBoundingBox=class extends qn{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends Zn{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.type=2898889636}};e.IfcCartesianPoint=class extends oi{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Li extends qn{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Li;e.IfcCartesianPointList2D=class extends Li{constructor(e,t){super(e),this.CoordList=t,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Li{constructor(e,t){super(e),this.CoordList=t,this.type=2059837836}};class Mi extends qn{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Mi;class Fi extends Mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Fi;e.IfcCartesianTransformationOperator2DnonUniform=class extends Fi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Hi extends Mi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Hi;e.IfcCartesianTransformationOperator3DnonUniform=class extends Hi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class Ui extends ai{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=Ui;e.IfcClosedShell=class extends jn{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Gn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends pi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};class Gi extends qn{constructor(e,t,s,n){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}}e.IfcCompositeCurveSegment=Gi;class ji extends Si{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.type=2574617495}}e.IfcConstructionResourceType=ji;class Vi extends ii{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=3419103109}}e.IfcContext=Vi;e.IfcCrewResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1815067380}};class ki extends qn{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=ki;e.IfcCsgSolid=class extends wi{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Qi extends qn{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Qi;e.IfcCurveBoundedPlane=class extends xi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends xi{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=n,this.type=2629017746}};e.IfcDirection=class extends qn{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorStyle=class extends Oi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.OperationType=c,this.ConstructionType=u,this.ParameterTakesPrecedence=h,this.Sizeable=p,this.type=526551008}};e.IfcEdgeLoop=class extends si{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends Ii{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Wi extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Wi;class zi extends Ti{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=zi;e.IfcEllipseProfileDef=class extends ai{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};e.IfcEventType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.EventTriggerType=h,this.UserDefinedEventTriggerType=p,this.type=4024345920}};class Ki extends bi{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}}e.IfcExtrudedAreaSolid=Ki;e.IfcExtrudedAreaSolidTapered=class extends Ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.EndSweptArea=a,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends qn{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends qn{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends qn{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};e.IfcFixedReferenceSweptAreaSolid=class extends bi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=2652556860}};class Yi extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Yi;e.IfcFurnitureType=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.PredefinedType=h,this.type=1268542332}};e.IfcGeographicElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Jn{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.FlangeSlope=u,this.type=1484403080}};class Xi extends Ri{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=Xi;e.IfcIndexedPolygonalFaceWithVoids=class extends Xi{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcLShapeProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.type=572779678}};e.IfcLaborResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=428585644}};e.IfcLine=class extends Qi{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class qi extends wi{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=qi;class Ji extends ii{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=Ji;e.IfcOffsetCurve2D=class extends Qi{constructor(e,t,s,n){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qi{constructor(e,t,s,n,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcPcurve=class extends Qi{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends li{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends zi{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Zi extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Zi;class $i extends ci{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=$i;class ea extends di{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3967405729}}e.IfcPreDefinedPropertySet=ea;e.IfcProcedureType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.type=569719735}};class ta extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2945172077}}e.IfcProcess=ta;class sa extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=sa;e.IfcProject=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectLibrary=class extends Vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=653396225}};e.IfcPropertyBoundedValue=class extends vi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.SetPointValue=r,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};e.IfcPropertySet=class extends di{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcPropertySetTemplate=class extends fi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.ApplicableEntity=r,this.HasPropertyTemplates=l,this.type=492091185}};e.IfcPropertySingleValue=class extends vi{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends vi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.CurveInterpolation=o,this.type=110355661}};class na extends fi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3521284610}}e.IfcPropertyTemplate=na;e.IfcProxy=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.ProxyType=o,this.Tag=c,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends yi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends ki{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends xi{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends ea{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class ia extends mi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=ia;e.IfcRelAssignsToActor=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}};e.IfcRelAssignsToControl=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}};class aa extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}}e.IfcRelAssignsToGroup=aa;e.IfcRelAssignsToGroupByFactor=class extends aa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.Factor=o,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToResource=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class ra extends mi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=ra;e.IfcRelAssociatesApproval=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends ra{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};class la extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=la;class oa extends la{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=oa;e.IfcRelConnectsPathElements=class extends oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends la{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};class ca extends la{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=ca;e.IfcRelConnectsWithEccentricity=class extends ca{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends oa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedCoverings=r,this.type=2802773753}};e.IfcRelDeclares=class extends mi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingContext=a,this.RelatedDefinitions=r,this.type=2565941209}};class ua extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2551354335}}e.IfcRelDecomposes=ua;class ha extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=693640335}}e.IfcRelDefines=ha;e.IfcRelDefinesByObject=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingObject=r,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedPropertySets=a,this.RelatingTemplate=r,this.type=307848117}};e.IfcRelDefinesByType=class extends ha{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInterferesElements=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedElement=r,this.InterferenceGeometry=l,this.InterferenceType=o,this.ImpliedOrder=c,this.type=427948657}};e.IfcRelNests=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelProjectsElement=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSequence=class extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.UserDefinedSequenceType=c,this.type=4122056220}};e.IfcRelServicesBuildings=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};class pa extends la{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}}e.IfcRelSpaceBoundary=pa;class Aa extends pa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=Aa;e.IfcRelSpaceBoundary2ndLevel=class extends Aa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.CorrespondingBoundary=h,this.type=1521410863}};e.IfcRelVoidsElement=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Gi{constructor(e,t,s,n,i){super(e,t,s,n),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.ParamLength=i,this.type=816062949}};class da extends Ji{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2914609552}}e.IfcResource=da;class fa extends bi{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}}e.IfcRevolvedAreaSolid=fa;e.IfcRevolvedAreaSolidTapered=class extends fa{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.EndSweptArea=a,this.type=3243963512}};e.IfcRightCircularCone=class extends ki{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends ki{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};e.IfcSimplePropertyTemplate=class extends na{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.PrimaryMeasureType=r,this.SecondaryMeasureType=l,this.Enumerators=o,this.PrimaryUnit=c,this.SecondaryUnit=u,this.Expression=h,this.AccessState=p,this.type=3663146110}};class Ia extends sa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=1412071761}}e.IfcSpatialElement=Ia;class ya extends Oi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=710998568}}e.IfcSpatialElementType=ya;class ma extends Ia{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=ma;class va extends ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=va;e.IfcSpatialZone=class extends Ia{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=463610769}};e.IfcSpatialZoneType=class extends ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=2481509218}};e.IfcSphere=class extends ki{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends zi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class wa extends sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=wa;class ga extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=ga;class Ea extends ga{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=Ea;class Ta extends wa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=Ta;class ba extends Ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=ba;e.IfcStructuralSurfaceMemberVarying=class extends ba{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=603775116}};e.IfcSubContractResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4095615324}};class Da extends Qi{constructor(e,t,s,n){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=699246055}}e.IfcSurfaceCurve=Da;e.IfcSurfaceCurveSweptAreaSolid=class extends bi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Pi{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Pi{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1580310250}};e.IfcTask=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Status=o,this.WorkMethod=c,this.IsMilestone=u,this.Priority=h,this.TaskTime=p,this.PredefinedType=A,this.type=3473067441}};e.IfcTaskType=class extends Bi{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.WorkMethod=h,this.type=3206491090}};class Pa extends Ri{constructor(e,t){super(e),this.Coordinates=t,this.type=2387106220}}e.IfcTessellatedFaceSet=Pa;e.IfcToroidalSurface=class extends zi{constructor(e,t,s,n){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=n,this.type=1935646853}};e.IfcTransportElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};e.IfcTriangulatedFaceSet=class extends Pa{constructor(e,t,s,n,i,a){super(e,t),this.Coordinates=t,this.Normals=s,this.Closed=n,this.CoordIndex=i,this.PnIndex=a,this.type=2916149573}};e.IfcWindowLiningProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=I,this.type=336235671}};e.IfcWindowPanelProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};class Ra extends Ji{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=Ra;class Ca extends qi{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Ca;e.IfcAdvancedBrepWithVoids=class extends Ca{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1674181508}};class _a extends xi{constructor(e,t,s,n,i,a,r,l){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.type=2887950389}}e.IfcBSplineSurface=_a;class Ba extends _a{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Ba;e.IfcBlock=class extends ki{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Ni{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class Oa extends Qi{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Oa;e.IfcBuilding=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};class Sa extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1950629157}}e.IfcBuildingElementType=Sa;e.IfcBuildingStorey=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};e.IfcChimneyType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends Ui{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcCivilElementType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893394355}};e.IfcColumnType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends na{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.UsageName=a,this.TemplateType=r,this.HasPropertyTemplates=l,this.type=3875453745}};class Na extends Oa{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Na;class xa extends Na{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=xa;class La extends Qi{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=La;e.IfcConstructionEquipmentResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends ji{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1525564444}};class Ma extends da{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.type=2559216714}}e.IfcConstructionResource=Ma;class Fa extends Ji{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.type=3293443760}}e.IfcControl=Fa;e.IfcCostItem=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.CostValues=o,this.CostQuantities=c,this.type=3895139033}};e.IfcCostSchedule=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.SubmittedOn=c,this.UpdateDate=u,this.type=1419761937}};e.IfcCoveringType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3295246426}};e.IfcCurtainWallType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};e.IfcCylindricalSurface=class extends zi{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Ha extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=Ha;class Ua extends Ha{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Ua;e.IfcDoorLiningProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=I,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.OperationType=h,this.ParameterTakesPrecedence=p,this.UserDefinedOperationType=A,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends $i{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Ga extends sa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Ga;e.IfcElementAssembly=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};e.IfcElementAssemblyType=class extends Wi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2397081782}};class ja extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=ja;class Va extends Wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Va;e.IfcEllipse=class extends La{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class ka extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=ka;e.IfcEngineType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcEvent=class extends ta{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.EventTriggerType=c,this.UserDefinedEventTriggerType=u,this.EventOccurenceTime=h,this.type=4148101412}};class Qa extends Ia{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Qa;class Wa extends qi{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Wa;e.IfcFacetedBrepWithVoids=class extends Wa{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};e.IfcFastener=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=647756555}};e.IfcFastenerType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2489546625}};class za extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=za;class Ka extends za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Ka;class Ya extends za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=Ya;class Xa extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Xa;class qa extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=qa;e.IfcFlowMeterType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Ja extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Ja;class Za extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Za;class $a extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=$a;class er extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=er;class tr extends Ua{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tr;e.IfcFootingType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1893162501}};class sr extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}}e.IfcFurnishingElement=sr;e.IfcFurniture=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1509553395}};e.IfcGeographicElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3493046030}};e.IfcGrid=class extends sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.PredefinedType=h,this.type=3009204131}};class nr extends Ji{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=nr;e.IfcHeatExchangerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcIndexedPolyCurve=class extends Oa{constructor(e,t,s,n){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=n,this.type=2571569899}};e.IfcInterceptorType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3946677679}};e.IfcIntersectionCurve=class extends Da{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=3113134337}};e.IfcInventory=class extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcLaborResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3827777499}};e.IfcLampType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};e.IfcMechanicalFastener=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.PredefinedType=h,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.NominalLength=p,this.type=2108223431}};e.IfcMedicalDeviceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1114901282}};e.IfcMemberType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMotorConnectionType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcOccupant=class extends Ra{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};class ir extends Ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3588315303}}e.IfcOpeningElement=ir;e.IfcOpeningStandardCase=class extends ir{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3079942009}};e.IfcOutletType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPerformanceHistory=class extends Fa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LifeCyclePhase=l,this.PredefinedType=o,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPermit=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3327091369}};e.IfcPileType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1158309216}};e.IfcPipeFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends Pa{constructor(e,t,s,n,i){super(e,t),this.Coordinates=t,this.Closed=s,this.Faces=n,this.PnIndex=i,this.type=2839578677}};e.IfcPolyline=class extends Oa{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class ar extends sa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=ar;e.IfcProcedure=class extends ta{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.type=2744685151}};e.IfcProjectOrder=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=2904328755}};e.IfcProjectionElement=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRailingType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRampFlightType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRampType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Ba{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.WeightsData=A,this.type=683857671}};class rr extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=rr;class lr extends Va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=964333572}}e.IfcReinforcingElementType=lr;e.IfcReinforcingMesh=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.PredefinedType=m,this.type=2320036040}};e.IfcReinforcingMeshType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.MeshLength=h,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=I,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=m,this.BendingShapeCode=v,this.BendingParameters=w,this.type=2310774935}};e.IfcRelAggregates=class extends ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRoofType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcSeamCurve=class extends Da{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=2157484638}};e.IfcShadingDeviceType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4074543187}};e.IfcSite=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSolarDeviceType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1072016465}};e.IfcSpace=class extends ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceType=class extends va{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=3812236995}};e.IfcStackTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};e.IfcStairType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=338393293}};class or extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=682877961}}e.IfcStructuralAction=or;class cr extends ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=cr;class ur extends or{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1004757350}}e.IfcStructuralCurveAction=ur;e.IfcStructuralCurveConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.Axis=c,this.type=4243806635}};class hr extends Ea{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=214636428}}e.IfcStructuralCurveMember=hr;e.IfcStructuralCurveMemberVarying=class extends hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=2757150158}};e.IfcStructuralLinearAction=class extends ur{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1807405624}};class pr extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}}e.IfcStructuralLoadGroup=pr;e.IfcStructuralPointAction=class extends or{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.ConditionCoordinateSystem=c,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ta{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends nr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};class Ar extends or{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=3657597509}}e.IfcStructuralSurfaceAction=Ar;e.IfcStructuralSurfaceConnection=class extends cr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=148013059}};e.IfcSurfaceFeature=class extends za{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class dr extends nr{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=dr;e.IfcSystemFurnitureElement=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=413509423}};e.IfcTankType=class extends $a{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTendon=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=2347447852}};e.IfcTendonAnchorType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3081323446}};e.IfcTendonType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.SheathDiameter=A,this.type=2415094496}};e.IfcTransformerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1620046519}};e.IfcTrimmedCurve=class extends Oa{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVibrationIsolator=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};e.IfcVirtualElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2769231204}};e.IfcVoidingFeature=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=926996030}};e.IfcWallType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};e.IfcWindowType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.PartitioningType=h,this.ParameterTakesPrecedence=p,this.UserDefinedPartitioningType=A,this.type=4009809668}};e.IfcWorkCalendar=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.WorkingTimes=l,this.ExceptionTimes=o,this.PredefinedType=c,this.type=4088093105}};class fr extends Fa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.type=1028945134}}e.IfcWorkControl=fr;e.IfcWorkPlan=class extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends dr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.type=1033361043}};e.IfcActionRequest=class extends Fa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAsset=class extends nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1532957894}};class Ir extends Oa{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=Ir;class yr extends Ir{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.type=2461110595}}e.IfcBSplineCurveWithKnots=yr;e.IfcBeamType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};e.IfcBoilerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class mr extends xa{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=mr;class vr extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3299480353}}e.IfcBuildingElement=vr;e.IfcBuildingElementPart=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=39481116}};e.IfcBuildingElementProxy=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcBuildingSystem=class extends dr{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=1177604601}};e.IfcBurnerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2674252688}};e.IfcCableSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcChillerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcChimney=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3296154744}};e.IfcCircle=class extends La{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1677625105}};e.IfcCoilType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};class wr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=843113511}}e.IfcColumn=wr;e.IfcColumnStandardCase=class extends wr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=905975707}};e.IfcCommunicationsApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=400855858}};e.IfcCompressorType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=488727124}};e.IfcCooledBeamType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCovering=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3495092785}};e.IfcDamperType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};e.IfcDiscreteAccessory=class extends ja{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Va{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2635815018}};e.IfcDistributionChamberElementType=class extends Ua{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class gr extends Ha{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=gr;class Er extends Ga{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=Er;class Tr extends Er{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=Tr;e.IfcDistributionPort=class extends ar{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.PredefinedType=c,this.SystemType=u,this.type=3041715199}};class br extends dr{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=3205830791}}e.IfcDistributionSystem=br;class Dr extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=395920057}}e.IfcDoor=Dr;e.IfcDoorStandardCase=class extends Dr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=3242481149}};e.IfcDuctFittingType=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Za{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};e.IfcElectricApplianceType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $a{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricGeneratorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricMotorType=class extends ka{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};class Pr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}}e.IfcEnergyConversionDevice=Pr;e.IfcEngine=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3747195512}};e.IfcEvaporator=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=484807127}};e.IfcExternalSpatialElement=class extends Qa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=1209101575}};e.IfcFanType=class extends Ja{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class Rr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=Rr;class Cr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}}e.IfcFlowFitting=Cr;e.IfcFlowInstrumentType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMeter=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2188021234}};class _r extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}}e.IfcFlowMovingDevice=_r;class Br extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}}e.IfcFlowSegment=Br;class Or extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}}e.IfcFlowStorageDevice=Or;class Sr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}}e.IfcFlowTerminal=Sr;class Nr extends Tr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}}e.IfcFlowTreatmentDevice=Nr;e.IfcFooting=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};e.IfcHeatExchanger=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3319311131}};e.IfcHumidifier=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2068733104}};e.IfcInterceptor=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4175244083}};e.IfcJunctionBox=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2176052936}};e.IfcLamp=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=76236018}};e.IfcLightFixture=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=629592764}};e.IfcMedicalDevice=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1437502449}};class xr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1073191201}}e.IfcMember=xr;e.IfcMemberStandardCase=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1911478936}};e.IfcMotorConnection=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2474470126}};e.IfcOuterBoundaryCurve=class extends mr{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3694346114}};e.IfcPile=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPipeFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=310824031}};e.IfcPipeSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3612865200}};class Lr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3171933400}}e.IfcPlate=Lr;e.IfcPlateStandardCase=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1156407060}};e.IfcProtectiveDevice=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=655969474}};e.IfcPump=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=90941305}};e.IfcRailing=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3024970846}};e.IfcRampFlight=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.WeightsData=c,this.type=1232101972}};e.IfcReinforcingBar=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.PredefinedType=A,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.BarLength=A,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=I,this.type=2572171363}};e.IfcRoof=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3053780830}};e.IfcSensorType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcShadingDevice=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1329646415}};class Mr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}}e.IfcSlab=Mr;e.IfcSlabElementedCase=class extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3127900445}};e.IfcSlabStandardCase=class extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3027962421}};e.IfcSolarDevice=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3420628829}};e.IfcSpaceHeater=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1999602285}};e.IfcStackTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1404847402}};e.IfcStair=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=331165859}};e.IfcStairFlight=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRisers=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.PredefinedType=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends dr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.SharedPlacement=u,this.type=2515109513}};e.IfcStructuralLoadCase=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.SelfWeightCoefficients=h,this.type=385403989}};e.IfcStructuralPlanarAction=class extends Ar{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1621171031}};e.IfcSwitchingDevice=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1162798199}};e.IfcTank=class extends Or{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=812556717}};e.IfcTransformer=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3825984169}};e.IfcTubeBundle=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4292641817}};e.IfcValve=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4207607924}};class Fr extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391406946}}e.IfcWall=Fr;e.IfcWallElementedCase=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4156078855}};e.IfcWallStandardCase=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3512223829}};e.IfcWasteTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4237592921}};class Hr extends vr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=3304561284}}e.IfcWindow=Hr;e.IfcWindowStandardCase=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=486154966}};e.IfcActuatorType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAirTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1634111441}};e.IfcAirTerminalBox=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2056796094}};e.IfcAlarmType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcAudioVisualAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=277319702}};class Ur extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=753842376}}e.IfcBeam=Ur;e.IfcBeamStandardCase=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2906023776}};e.IfcBoiler=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=32344328}};e.IfcBurner=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=635142910}};e.IfcCableCarrierSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3758799889}};e.IfcCableFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1051757585}};e.IfcCableSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4217484030}};e.IfcChiller=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3902619387}};e.IfcCoil=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3221913625}};e.IfcCompressor=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3571504051}};e.IfcCondenser=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2272882330}};e.IfcControllerType=class extends gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcCooledBeam=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4136498852}};e.IfcCoolingTower=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3640358203}};e.IfcDamper=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4074379575}};e.IfcDistributionChamberElement=class extends Tr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1052013943}};e.IfcDistributionCircuit=class extends br{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=562808652}};class Gr extends Er{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1062813311}}e.IfcDistributionControlElement=Gr;e.IfcDuctFitting=class extends Cr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=342316401}};e.IfcDuctSegment=class extends Br{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3518393246}};e.IfcDuctSilencer=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1360408905}};e.IfcElectricAppliance=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Or{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3310460725}};e.IfcElectricGenerator=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=264262732}};e.IfcElectricMotor=class extends Pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=402227799}};e.IfcElectricTimeControl=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1003880860}};e.IfcFan=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3415622556}};e.IfcFilter=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Sr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1426591983}};e.IfcFlowInstrument=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=182646315}};e.IfcProtectiveDeviceTrippingUnit=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2295281155}};e.IfcSensor=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4086658281}};e.IfcUnitaryControlElement=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=630975310}};e.IfcActuator=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4288193352}};e.IfcAlarm=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3087945054}};e.IfcController=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=25142252}}}(ub||(ub={})),eD[3]="IFC4X3",Yb[3]={3630933823:(e,t)=>new hb.IfcActorRole(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null),618182010:(e,t)=>new hb.IfcAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),2879124712:(e,t)=>new hb.IfcAlignmentParameterSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null),3633395639:(e,t)=>new hb.IfcAlignmentVerticalSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcLengthMeasure(t[2].value),new hb.IfcNonNegativeLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),new hb.IfcRatioMeasure(t[5].value),new hb.IfcRatioMeasure(t[6].value),t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]),639542469:(e,t)=>new hb.IfcApplication(e,new zb(t[0].value),new hb.IfcLabel(t[1].value),new hb.IfcLabel(t[2].value),new hb.IfcIdentifier(t[3].value)),411424972:(e,t)=>new hb.IfcAppliedValue(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),130549933:(e,t)=>new hb.IfcApproval(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),4037036970:(e,t)=>new hb.IfcBoundaryCondition(e,t[0]?new hb.IfcLabel(t[0].value):null),1560379544:(e,t)=>new hb.IfcBoundaryEdgeCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null),3367102660:(e,t)=>new hb.IfcBoundaryFaceCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null),1387855156:(e,t)=>new hb.IfcBoundaryNodeCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null),2069777674:(e,t)=>new hb.IfcBoundaryNodeConditionWarping(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?tD(3,t[1]):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?tD(3,t[5]):null,t[6]?tD(3,t[6]):null,t[7]?tD(3,t[7]):null),2859738748:(e,t)=>new hb.IfcConnectionGeometry(e),2614616156:(e,t)=>new hb.IfcConnectionPointGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2732653382:(e,t)=>new hb.IfcConnectionSurfaceGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),775493141:(e,t)=>new hb.IfcConnectionVolumeGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1959218052:(e,t)=>new hb.IfcConstraint(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null),1785450214:(e,t)=>new hb.IfcCoordinateOperation(e,new zb(t[0].value),new zb(t[1].value)),1466758467:(e,t)=>new hb.IfcCoordinateReferenceSystem(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new hb.IfcIdentifier(t[3].value):null),602808272:(e,t)=>new hb.IfcCostValue(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?t[9].map((e=>new zb(e.value))):null),1765591967:(e,t)=>new hb.IfcDerivedUnit(e,t[0].map((e=>new zb(e.value))),t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null),1045800335:(e,t)=>new hb.IfcDerivedUnitElement(e,new zb(t[0].value),t[1].value),2949456006:(e,t)=>new hb.IfcDimensionalExponents(e,t[0].value,t[1].value,t[2].value,t[3].value,t[4].value,t[5].value,t[6].value),4294318154:(e,t)=>new hb.IfcExternalInformation(e),3200245327:(e,t)=>new hb.IfcExternalReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),2242383968:(e,t)=>new hb.IfcExternallyDefinedHatchStyle(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),1040185647:(e,t)=>new hb.IfcExternallyDefinedSurfaceStyle(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),3548104201:(e,t)=>new hb.IfcExternallyDefinedTextFont(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),852622518:(e,t)=>new hb.IfcGridAxis(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),new hb.IfcBoolean(t[2].value)),3020489413:(e,t)=>new hb.IfcIrregularTimeSeriesValue(e,new hb.IfcDateTime(t[0].value),t[1].map((e=>tD(3,e)))),2655187982:(e,t)=>new hb.IfcLibraryInformation(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcURIReference(t[4].value):null,t[5]?new hb.IfcText(t[5].value):null),3452421091:(e,t)=>new hb.IfcLibraryReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLanguageId(t[4].value):null,t[5]?new zb(t[5].value):null),4162380809:(e,t)=>new hb.IfcLightDistributionData(e,new hb.IfcPlaneAngleMeasure(t[0].value),t[1].map((e=>new hb.IfcPlaneAngleMeasure(e.value))),t[2].map((e=>new hb.IfcLuminousIntensityDistributionMeasure(e.value)))),1566485204:(e,t)=>new hb.IfcLightIntensityDistribution(e,t[0],t[1].map((e=>new zb(e.value)))),3057273783:(e,t)=>new hb.IfcMapConversion(e,new zb(t[0].value),new zb(t[1].value),new hb.IfcLengthMeasure(t[2].value),new hb.IfcLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),t[5]?new hb.IfcReal(t[5].value):null,t[6]?new hb.IfcReal(t[6].value):null,t[7]?new hb.IfcReal(t[7].value):null,t[8]?new hb.IfcReal(t[8].value):null,t[9]?new hb.IfcReal(t[9].value):null),1847130766:(e,t)=>new hb.IfcMaterialClassificationRelationship(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value)),760658860:(e,t)=>new hb.IfcMaterialDefinition(e),248100487:(e,t)=>new hb.IfcMaterialLayer(e,t[0]?new zb(t[0].value):null,new hb.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new hb.IfcLogical(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null),3303938423:(e,t)=>new hb.IfcMaterialLayerSet(e,t[0].map((e=>new zb(e.value))),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null),1847252529:(e,t)=>new hb.IfcMaterialLayerWithOffsets(e,t[0]?new zb(t[0].value):null,new hb.IfcNonNegativeLengthMeasure(t[1].value),t[2]?new hb.IfcLogical(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null,t[7],new hb.IfcLengthMeasure(t[8].value)),2199411900:(e,t)=>new hb.IfcMaterialList(e,t[0].map((e=>new zb(e.value)))),2235152071:(e,t)=>new hb.IfcMaterialProfile(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),164193824:(e,t)=>new hb.IfcMaterialProfileSet(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new zb(t[3].value):null),552965576:(e,t)=>new hb.IfcMaterialProfileWithOffsets(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,new hb.IfcLengthMeasure(t[6].value)),1507914824:(e,t)=>new hb.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new hb.IfcMeasureWithUnit(e,tD(3,t[0]),new zb(t[1].value)),3368373690:(e,t)=>new hb.IfcMetric(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7],t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),2706619895:(e,t)=>new hb.IfcMonetaryUnit(e,new hb.IfcLabel(t[0].value)),1918398963:(e,t)=>new hb.IfcNamedUnit(e,new zb(t[0].value),t[1]),3701648758:(e,t)=>new hb.IfcObjectPlacement(e,t[0]?new zb(t[0].value):null),2251480897:(e,t)=>new hb.IfcObjective(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2],t[3]?new hb.IfcLabel(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8],t[9],t[10]?new hb.IfcLabel(t[10].value):null),4251960020:(e,t)=>new hb.IfcOrganization(e,t[0]?new hb.IfcIdentifier(t[0].value):null,new hb.IfcLabel(t[1].value),t[2]?new hb.IfcText(t[2].value):null,t[3]?t[3].map((e=>new zb(e.value))):null,t[4]?t[4].map((e=>new zb(e.value))):null),1207048766:(e,t)=>new hb.IfcOwnerHistory(e,new zb(t[0].value),new zb(t[1].value),t[2],t[3],t[4]?new hb.IfcTimeStamp(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new hb.IfcTimeStamp(t[7].value)),2077209135:(e,t)=>new hb.IfcPerson(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?t[5].map((e=>new hb.IfcLabel(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null),101040310:(e,t)=>new hb.IfcPersonAndOrganization(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2483315170:(e,t)=>new hb.IfcPhysicalQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null),2226359599:(e,t)=>new hb.IfcPhysicalSimpleQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null),3355820592:(e,t)=>new hb.IfcPostalAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcLabel(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null),677532197:(e,t)=>new hb.IfcPresentationItem(e),2022622350:(e,t)=>new hb.IfcPresentationLayerAssignment(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcIdentifier(t[3].value):null),1304840413:(e,t)=>new hb.IfcPresentationLayerWithStyle(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcIdentifier(t[3].value):null,new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null),3119450353:(e,t)=>new hb.IfcPresentationStyle(e,t[0]?new hb.IfcLabel(t[0].value):null),2095639259:(e,t)=>new hb.IfcProductRepresentation(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),3958567839:(e,t)=>new hb.IfcProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null),3843373140:(e,t)=>new hb.IfcProjectedCRS(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new hb.IfcIdentifier(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null),986844984:(e,t)=>new hb.IfcPropertyAbstraction(e),3710013099:(e,t)=>new hb.IfcPropertyEnumeration(e,new hb.IfcLabel(t[0].value),t[1].map((e=>tD(3,e))),t[2]?new zb(t[2].value):null),2044713172:(e,t)=>new hb.IfcQuantityArea(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcAreaMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2093928680:(e,t)=>new hb.IfcQuantityCount(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcCountMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),931644368:(e,t)=>new hb.IfcQuantityLength(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcLengthMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2691318326:(e,t)=>new hb.IfcQuantityNumber(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcNumericMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),3252649465:(e,t)=>new hb.IfcQuantityTime(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcTimeMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),2405470396:(e,t)=>new hb.IfcQuantityVolume(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcVolumeMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),825690147:(e,t)=>new hb.IfcQuantityWeight(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcMassMeasure(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),3915482550:(e,t)=>new hb.IfcRecurrencePattern(e,t[0],t[1]?t[1].map((e=>new hb.IfcDayInMonthNumber(e.value))):null,t[2]?t[2].map((e=>new hb.IfcDayInWeekNumber(e.value))):null,t[3]?t[3].map((e=>new hb.IfcMonthInYearNumber(e.value))):null,t[4]?new hb.IfcInteger(t[4].value):null,t[5]?new hb.IfcInteger(t[5].value):null,t[6]?new hb.IfcInteger(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null),2433181523:(e,t)=>new hb.IfcReference(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcInteger(e.value))):null,t[4]?new zb(t[4].value):null),1076942058:(e,t)=>new hb.IfcRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3377609919:(e,t)=>new hb.IfcRepresentationContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null),3008791417:(e,t)=>new hb.IfcRepresentationItem(e),1660063152:(e,t)=>new hb.IfcRepresentationMap(e,new zb(t[0].value),new zb(t[1].value)),2439245199:(e,t)=>new hb.IfcResourceLevelRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null),2341007311:(e,t)=>new hb.IfcRoot(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),448429030:(e,t)=>new hb.IfcSIUnit(e,new zb(t[0].value),t[1],t[2],t[3]),1054537805:(e,t)=>new hb.IfcSchedulingTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null),867548509:(e,t)=>new hb.IfcShapeAspect(e,t[0].map((e=>new zb(e.value))),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,new hb.IfcLogical(t[3].value),t[4]?new zb(t[4].value):null),3982875396:(e,t)=>new hb.IfcShapeModel(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),4240577450:(e,t)=>new hb.IfcShapeRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2273995522:(e,t)=>new hb.IfcStructuralConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null),2162789131:(e,t)=>new hb.IfcStructuralLoad(e,t[0]?new hb.IfcLabel(t[0].value):null),3478079324:(e,t)=>new hb.IfcStructuralLoadConfiguration(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?t[2].map((e=>new hb.IfcLengthMeasure(e.value))):null),609421318:(e,t)=>new hb.IfcStructuralLoadOrResult(e,t[0]?new hb.IfcLabel(t[0].value):null),2525727697:(e,t)=>new hb.IfcStructuralLoadStatic(e,t[0]?new hb.IfcLabel(t[0].value):null),3408363356:(e,t)=>new hb.IfcStructuralLoadTemperature(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcThermodynamicTemperatureMeasure(t[1].value):null,t[2]?new hb.IfcThermodynamicTemperatureMeasure(t[2].value):null,t[3]?new hb.IfcThermodynamicTemperatureMeasure(t[3].value):null),2830218821:(e,t)=>new hb.IfcStyleModel(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),3958052878:(e,t)=>new hb.IfcStyledItem(e,t[0]?new zb(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcLabel(t[2].value):null),3049322572:(e,t)=>new hb.IfcStyledRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),2934153892:(e,t)=>new hb.IfcSurfaceReinforcementArea(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new hb.IfcLengthMeasure(e.value))):null,t[2]?t[2].map((e=>new hb.IfcLengthMeasure(e.value))):null,t[3]?new hb.IfcRatioMeasure(t[3].value):null),1300840506:(e,t)=>new hb.IfcSurfaceStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2].map((e=>new zb(e.value)))),3303107099:(e,t)=>new hb.IfcSurfaceStyleLighting(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new zb(t[3].value)),1607154358:(e,t)=>new hb.IfcSurfaceStyleRefraction(e,t[0]?new hb.IfcReal(t[0].value):null,t[1]?new hb.IfcReal(t[1].value):null),846575682:(e,t)=>new hb.IfcSurfaceStyleShading(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null),1351298697:(e,t)=>new hb.IfcSurfaceStyleWithTextures(e,t[0].map((e=>new zb(e.value)))),626085974:(e,t)=>new hb.IfcSurfaceTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null),985171141:(e,t)=>new hb.IfcTable(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?t[1].map((e=>new zb(e.value))):null,t[2]?t[2].map((e=>new zb(e.value))):null),2043862942:(e,t)=>new hb.IfcTableColumn(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null),531007025:(e,t)=>new hb.IfcTableRow(e,t[0]?t[0].map((e=>tD(3,e))):null,t[1]?new hb.IfcBoolean(t[1].value):null),1549132990:(e,t)=>new hb.IfcTaskTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3],t[4]?new hb.IfcDuration(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcDateTime(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcDuration(t[12].value):null,t[13]?new hb.IfcBoolean(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcDateTime(t[16].value):null,t[17]?new hb.IfcDateTime(t[17].value):null,t[18]?new hb.IfcDuration(t[18].value):null,t[19]?new hb.IfcPositiveRatioMeasure(t[19].value):null),2771591690:(e,t)=>new hb.IfcTaskTimeRecurring(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3],t[4]?new hb.IfcDuration(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcDateTime(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcDuration(t[12].value):null,t[13]?new hb.IfcBoolean(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcDateTime(t[16].value):null,t[17]?new hb.IfcDateTime(t[17].value):null,t[18]?new hb.IfcDuration(t[18].value):null,t[19]?new hb.IfcPositiveRatioMeasure(t[19].value):null,new zb(t[20].value)),912023232:(e,t)=>new hb.IfcTelecomAddress(e,t[0],t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?t[3].map((e=>new hb.IfcLabel(e.value))):null,t[4]?t[4].map((e=>new hb.IfcLabel(e.value))):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?t[6].map((e=>new hb.IfcLabel(e.value))):null,t[7]?new hb.IfcURIReference(t[7].value):null,t[8]?t[8].map((e=>new hb.IfcURIReference(e.value))):null),1447204868:(e,t)=>new hb.IfcTextStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcBoolean(t[4].value):null),2636378356:(e,t)=>new hb.IfcTextStyleForDefinedFont(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1640371178:(e,t)=>new hb.IfcTextStyleTextModel(e,t[0]?tD(3,t[0]):null,t[1]?new hb.IfcTextAlignment(t[1].value):null,t[2]?new hb.IfcTextDecoration(t[2].value):null,t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,t[5]?new hb.IfcTextTransformation(t[5].value):null,t[6]?tD(3,t[6]):null),280115917:(e,t)=>new hb.IfcTextureCoordinate(e,t[0].map((e=>new zb(e.value)))),1742049831:(e,t)=>new hb.IfcTextureCoordinateGenerator(e,t[0].map((e=>new zb(e.value))),new hb.IfcLabel(t[1].value),t[2]?t[2].map((e=>new hb.IfcReal(e.value))):null),222769930:(e,t)=>new hb.IfcTextureCoordinateIndices(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),new zb(t[1].value)),1010789467:(e,t)=>new hb.IfcTextureCoordinateIndicesWithVoids(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),new zb(t[1].value),t[2].map((e=>new hb.IfcPositiveInteger(e.value)))),2552916305:(e,t)=>new hb.IfcTextureMap(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new zb(t[2].value)),1210645708:(e,t)=>new hb.IfcTextureVertex(e,t[0].map((e=>new hb.IfcParameterValue(e.value)))),3611470254:(e,t)=>new hb.IfcTextureVertexList(e,t[0].map((e=>new hb.IfcParameterValue(e.value)))),1199560280:(e,t)=>new hb.IfcTimePeriod(e,new hb.IfcTime(t[0].value),new hb.IfcTime(t[1].value)),3101149627:(e,t)=>new hb.IfcTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null),581633288:(e,t)=>new hb.IfcTimeSeriesValue(e,t[0].map((e=>tD(3,e)))),1377556343:(e,t)=>new hb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new hb.IfcTopologyRepresentation(e,new zb(t[0].value),t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3].map((e=>new zb(e.value)))),180925521:(e,t)=>new hb.IfcUnitAssignment(e,t[0].map((e=>new zb(e.value)))),2799835756:(e,t)=>new hb.IfcVertex(e),1907098498:(e,t)=>new hb.IfcVertexPoint(e,new zb(t[0].value)),891718957:(e,t)=>new hb.IfcVirtualGridIntersection(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new hb.IfcLengthMeasure(e.value)))),1236880293:(e,t)=>new hb.IfcWorkTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcDate(t[4].value):null,t[5]?new hb.IfcDate(t[5].value):null),3752311538:(e,t)=>new hb.IfcAlignmentCantSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcLengthMeasure(t[2].value),new hb.IfcNonNegativeLengthMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),t[5]?new hb.IfcLengthMeasure(t[5].value):null,new hb.IfcLengthMeasure(t[6].value),t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]),536804194:(e,t)=>new hb.IfcAlignmentHorizontalSegment(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value),new hb.IfcLengthMeasure(t[4].value),new hb.IfcLengthMeasure(t[5].value),new hb.IfcNonNegativeLengthMeasure(t[6].value),t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]),3869604511:(e,t)=>new hb.IfcApprovalRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),3798115385:(e,t)=>new hb.IfcArbitraryClosedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value)),1310608509:(e,t)=>new hb.IfcArbitraryOpenProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value)),2705031697:(e,t)=>new hb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),616511568:(e,t)=>new hb.IfcBlobTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcIdentifier(t[5].value),new hb.IfcBinary(t[6].value)),3150382593:(e,t)=>new hb.IfcCenterLineProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),747523909:(e,t)=>new hb.IfcClassification(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new hb.IfcDate(t[2].value):null,new hb.IfcLabel(t[3].value),t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcURIReference(t[5].value):null,t[6]?t[6].map((e=>new hb.IfcIdentifier(e.value))):null),647927063:(e,t)=>new hb.IfcClassificationReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null),3285139300:(e,t)=>new hb.IfcColourRgbList(e,t[0].map((e=>new hb.IfcNormalisedRatioMeasure(e.value)))),3264961684:(e,t)=>new hb.IfcColourSpecification(e,t[0]?new hb.IfcLabel(t[0].value):null),1485152156:(e,t)=>new hb.IfcCompositeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?new hb.IfcLabel(t[3].value):null),370225590:(e,t)=>new hb.IfcConnectedFaceSet(e,t[0].map((e=>new zb(e.value)))),1981873012:(e,t)=>new hb.IfcConnectionCurveGeometry(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),45288368:(e,t)=>new hb.IfcConnectionPointEccentricity(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null),3050246964:(e,t)=>new hb.IfcContextDependentUnit(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value)),2889183280:(e,t)=>new hb.IfcConversionBasedUnit(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value),new zb(t[3].value)),2713554722:(e,t)=>new hb.IfcConversionBasedUnitWithOffset(e,new zb(t[0].value),t[1],new hb.IfcLabel(t[2].value),new zb(t[3].value),new hb.IfcReal(t[4].value)),539742890:(e,t)=>new hb.IfcCurrencyRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),new hb.IfcPositiveRatioMeasure(t[4].value),t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new zb(t[6].value):null),3800577675:(e,t)=>new hb.IfcCurveStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new zb(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?new zb(t[3].value):null,t[4]?new hb.IfcBoolean(t[4].value):null),1105321065:(e,t)=>new hb.IfcCurveStyleFont(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value)))),2367409068:(e,t)=>new hb.IfcCurveStyleFontAndScaling(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),new hb.IfcPositiveRatioMeasure(t[2].value)),3510044353:(e,t)=>new hb.IfcCurveStyleFontPattern(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),3632507154:(e,t)=>new hb.IfcDerivedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),1154170062:(e,t)=>new hb.IfcDocumentInformation(e,new hb.IfcIdentifier(t[0].value),new hb.IfcLabel(t[1].value),t[2]?new hb.IfcText(t[2].value):null,t[3]?new hb.IfcURIReference(t[3].value):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new hb.IfcText(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDateTime(t[11].value):null,t[12]?new hb.IfcIdentifier(t[12].value):null,t[13]?new hb.IfcDate(t[13].value):null,t[14]?new hb.IfcDate(t[14].value):null,t[15],t[16]),770865208:(e,t)=>new hb.IfcDocumentInformationRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new hb.IfcLabel(t[4].value):null),3732053477:(e,t)=>new hb.IfcDocumentReference(e,t[0]?new hb.IfcURIReference(t[0].value):null,t[1]?new hb.IfcIdentifier(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null),3900360178:(e,t)=>new hb.IfcEdge(e,new zb(t[0].value),new zb(t[1].value)),476780140:(e,t)=>new hb.IfcEdgeCurve(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value),new hb.IfcBoolean(t[3].value)),211053100:(e,t)=>new hb.IfcEventTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcDateTime(t[3].value):null,t[4]?new hb.IfcDateTime(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null),297599258:(e,t)=>new hb.IfcExtendedProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),1437805879:(e,t)=>new hb.IfcExternalReferenceRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),2556980723:(e,t)=>new hb.IfcFace(e,t[0].map((e=>new zb(e.value)))),1809719519:(e,t)=>new hb.IfcFaceBound(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),803316827:(e,t)=>new hb.IfcFaceOuterBound(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),3008276851:(e,t)=>new hb.IfcFaceSurface(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),4219587988:(e,t)=>new hb.IfcFailureConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcForceMeasure(t[4].value):null,t[5]?new hb.IfcForceMeasure(t[5].value):null,t[6]?new hb.IfcForceMeasure(t[6].value):null),738692330:(e,t)=>new hb.IfcFillAreaStyle(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcBoolean(t[2].value):null),3448662350:(e,t)=>new hb.IfcGeometricRepresentationContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcDimensionCount(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null),2453401579:(e,t)=>new hb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new hb.IfcGeometricRepresentationSubContext(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcPositiveRatioMeasure(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),3590301190:(e,t)=>new hb.IfcGeometricSet(e,t[0].map((e=>new zb(e.value)))),178086475:(e,t)=>new hb.IfcGridPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value),t[2]?new zb(t[2].value):null),812098782:(e,t)=>new hb.IfcHalfSpaceSolid(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value)),3905492369:(e,t)=>new hb.IfcImageTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcURIReference(t[5].value)),3570813810:(e,t)=>new hb.IfcIndexedColourMap(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null,new zb(t[2].value),t[3].map((e=>new hb.IfcPositiveInteger(e.value)))),1437953363:(e,t)=>new hb.IfcIndexedTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value)),2133299955:(e,t)=>new hb.IfcIndexedTriangleTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3]?t[3].map((e=>new hb.IfcPositiveInteger(e.value))):null),3741457305:(e,t)=>new hb.IfcIrregularTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8].map((e=>new zb(e.value)))),1585845231:(e,t)=>new hb.IfcLagTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,tD(3,t[3]),t[4]),1402838566:(e,t)=>new hb.IfcLightSource(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null),125510826:(e,t)=>new hb.IfcLightSourceAmbient(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null),2604431987:(e,t)=>new hb.IfcLightSourceDirectional(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value)),4266656042:(e,t)=>new hb.IfcLightSourceGoniometric(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),t[5]?new zb(t[5].value):null,new hb.IfcThermodynamicTemperatureMeasure(t[6].value),new hb.IfcLuminousFluxMeasure(t[7].value),t[8],new zb(t[9].value)),1520743889:(e,t)=>new hb.IfcLightSourcePositional(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcReal(t[6].value),new hb.IfcReal(t[7].value),new hb.IfcReal(t[8].value)),3422422726:(e,t)=>new hb.IfcLightSourceSpot(e,t[0]?new hb.IfcLabel(t[0].value):null,new zb(t[1].value),t[2]?new hb.IfcNormalisedRatioMeasure(t[2].value):null,t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,new zb(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcReal(t[6].value),new hb.IfcReal(t[7].value),new hb.IfcReal(t[8].value),new zb(t[9].value),t[10]?new hb.IfcReal(t[10].value):null,new hb.IfcPositivePlaneAngleMeasure(t[11].value),new hb.IfcPositivePlaneAngleMeasure(t[12].value)),388784114:(e,t)=>new hb.IfcLinearPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value),t[2]?new zb(t[2].value):null),2624227202:(e,t)=>new hb.IfcLocalPlacement(e,t[0]?new zb(t[0].value):null,new zb(t[1].value)),1008929658:(e,t)=>new hb.IfcLoop(e),2347385850:(e,t)=>new hb.IfcMappedItem(e,new zb(t[0].value),new zb(t[1].value)),1838606355:(e,t)=>new hb.IfcMaterial(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null),3708119e3:(e,t)=>new hb.IfcMaterialConstituent(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcNormalisedRatioMeasure(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),2852063980:(e,t)=>new hb.IfcMaterialConstituentSet(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>new zb(e.value))):null),2022407955:(e,t)=>new hb.IfcMaterialDefinitionRepresentation(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1303795690:(e,t)=>new hb.IfcMaterialLayerSetUsage(e,new zb(t[0].value),t[1],t[2],new hb.IfcLengthMeasure(t[3].value),t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null),3079605661:(e,t)=>new hb.IfcMaterialProfileSetUsage(e,new zb(t[0].value),t[1]?new hb.IfcCardinalPointReference(t[1].value):null,t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null),3404854881:(e,t)=>new hb.IfcMaterialProfileSetUsageTapering(e,new zb(t[0].value),t[1]?new hb.IfcCardinalPointReference(t[1].value):null,t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,new zb(t[3].value),t[4]?new hb.IfcCardinalPointReference(t[4].value):null),3265635763:(e,t)=>new hb.IfcMaterialProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),853536259:(e,t)=>new hb.IfcMaterialRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value))),t[4]?new hb.IfcLabel(t[4].value):null),2998442950:(e,t)=>new hb.IfcMirroredProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null),219451334:(e,t)=>new hb.IfcObjectDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),182550632:(e,t)=>new hb.IfcOpenCrossProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,new hb.IfcBoolean(t[2].value),t[3].map((e=>new hb.IfcNonNegativeLengthMeasure(e.value))),t[4].map((e=>new hb.IfcPlaneAngleMeasure(e.value))),t[5]?t[5].map((e=>new hb.IfcLabel(e.value))):null,t[6]?new zb(t[6].value):null),2665983363:(e,t)=>new hb.IfcOpenShell(e,t[0].map((e=>new zb(e.value)))),1411181986:(e,t)=>new hb.IfcOrganizationRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1029017970:(e,t)=>new hb.IfcOrientedEdge(e,new zb(t[0].value),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),2529465313:(e,t)=>new hb.IfcParameterizedProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null),2519244187:(e,t)=>new hb.IfcPath(e,t[0].map((e=>new zb(e.value)))),3021840470:(e,t)=>new hb.IfcPhysicalComplexQuantity(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new hb.IfcLabel(t[3].value),t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),597895409:(e,t)=>new hb.IfcPixelTexture(e,new hb.IfcBoolean(t[0].value),new hb.IfcBoolean(t[1].value),t[2]?new hb.IfcIdentifier(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?t[4].map((e=>new hb.IfcIdentifier(e.value))):null,new hb.IfcInteger(t[5].value),new hb.IfcInteger(t[6].value),new hb.IfcInteger(t[7].value),t[8].map((e=>new hb.IfcBinary(e.value)))),2004835150:(e,t)=>new hb.IfcPlacement(e,new zb(t[0].value)),1663979128:(e,t)=>new hb.IfcPlanarExtent(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value)),2067069095:(e,t)=>new hb.IfcPoint(e),2165702409:(e,t)=>new hb.IfcPointByDistanceExpression(e,tD(3,t[0]),t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,new zb(t[4].value)),4022376103:(e,t)=>new hb.IfcPointOnCurve(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value)),1423911732:(e,t)=>new hb.IfcPointOnSurface(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value),new hb.IfcParameterValue(t[2].value)),2924175390:(e,t)=>new hb.IfcPolyLoop(e,t[0].map((e=>new zb(e.value)))),2775532180:(e,t)=>new hb.IfcPolygonalBoundedHalfSpace(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value),new zb(t[2].value),new zb(t[3].value)),3727388367:(e,t)=>new hb.IfcPreDefinedItem(e,new hb.IfcLabel(t[0].value)),3778827333:(e,t)=>new hb.IfcPreDefinedProperties(e),1775413392:(e,t)=>new hb.IfcPreDefinedTextFont(e,new hb.IfcLabel(t[0].value)),673634403:(e,t)=>new hb.IfcProductDefinitionShape(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value)))),2802850158:(e,t)=>new hb.IfcProfileProperties(e,t[0]?new hb.IfcIdentifier(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),2598011224:(e,t)=>new hb.IfcProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null),1680319473:(e,t)=>new hb.IfcPropertyDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),148025276:(e,t)=>new hb.IfcPropertyDependencyRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),new zb(t[3].value),t[4]?new hb.IfcText(t[4].value):null),3357820518:(e,t)=>new hb.IfcPropertySetDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1482703590:(e,t)=>new hb.IfcPropertyTemplateDefinition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2090586900:(e,t)=>new hb.IfcQuantitySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),3615266464:(e,t)=>new hb.IfcRectangleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),3413951693:(e,t)=>new hb.IfcRegularTimeSeries(e,new hb.IfcLabel(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcDateTime(t[2].value),new hb.IfcDateTime(t[3].value),t[4],t[5],t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,new hb.IfcTimeMeasure(t[8].value),t[9].map((e=>new zb(e.value)))),1580146022:(e,t)=>new hb.IfcReinforcementBarProperties(e,new hb.IfcAreaMeasure(t[0].value),new hb.IfcLabel(t[1].value),t[2],t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcCountMeasure(t[5].value):null),478536968:(e,t)=>new hb.IfcRelationship(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2943643501:(e,t)=>new hb.IfcResourceApprovalRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,t[2].map((e=>new zb(e.value))),new zb(t[3].value)),1608871552:(e,t)=>new hb.IfcResourceConstraintRelationship(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcText(t[1].value):null,new zb(t[2].value),t[3].map((e=>new zb(e.value)))),1042787934:(e,t)=>new hb.IfcResourceTime(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1],t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcDuration(t[3].value):null,t[4]?new hb.IfcPositiveRatioMeasure(t[4].value):null,t[5]?new hb.IfcDateTime(t[5].value):null,t[6]?new hb.IfcDateTime(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcDuration(t[8].value):null,t[9]?new hb.IfcBoolean(t[9].value):null,t[10]?new hb.IfcDateTime(t[10].value):null,t[11]?new hb.IfcDuration(t[11].value):null,t[12]?new hb.IfcPositiveRatioMeasure(t[12].value):null,t[13]?new hb.IfcDateTime(t[13].value):null,t[14]?new hb.IfcDateTime(t[14].value):null,t[15]?new hb.IfcDuration(t[15].value):null,t[16]?new hb.IfcPositiveRatioMeasure(t[16].value):null,t[17]?new hb.IfcPositiveRatioMeasure(t[17].value):null),2778083089:(e,t)=>new hb.IfcRoundedRectangleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value)),2042790032:(e,t)=>new hb.IfcSectionProperties(e,t[0],new zb(t[1].value),t[2]?new zb(t[2].value):null),4165799628:(e,t)=>new hb.IfcSectionReinforcementProperties(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3],new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1509187699:(e,t)=>new hb.IfcSectionedSpine(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),823603102:(e,t)=>new hb.IfcSegment(e,t[0]),4124623270:(e,t)=>new hb.IfcShellBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),3692461612:(e,t)=>new hb.IfcSimpleProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null),2609359061:(e,t)=>new hb.IfcSlippageConnectionCondition(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),723233188:(e,t)=>new hb.IfcSolidModel(e),1595516126:(e,t)=>new hb.IfcStructuralLoadLinearForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLinearForceMeasure(t[1].value):null,t[2]?new hb.IfcLinearForceMeasure(t[2].value):null,t[3]?new hb.IfcLinearForceMeasure(t[3].value):null,t[4]?new hb.IfcLinearMomentMeasure(t[4].value):null,t[5]?new hb.IfcLinearMomentMeasure(t[5].value):null,t[6]?new hb.IfcLinearMomentMeasure(t[6].value):null),2668620305:(e,t)=>new hb.IfcStructuralLoadPlanarForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcPlanarForceMeasure(t[1].value):null,t[2]?new hb.IfcPlanarForceMeasure(t[2].value):null,t[3]?new hb.IfcPlanarForceMeasure(t[3].value):null),2473145415:(e,t)=>new hb.IfcStructuralLoadSingleDisplacement(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new hb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new hb.IfcPlaneAngleMeasure(t[6].value):null),1973038258:(e,t)=>new hb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcLengthMeasure(t[1].value):null,t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcPlaneAngleMeasure(t[4].value):null,t[5]?new hb.IfcPlaneAngleMeasure(t[5].value):null,t[6]?new hb.IfcPlaneAngleMeasure(t[6].value):null,t[7]?new hb.IfcCurvatureMeasure(t[7].value):null),1597423693:(e,t)=>new hb.IfcStructuralLoadSingleForce(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcTorqueMeasure(t[4].value):null,t[5]?new hb.IfcTorqueMeasure(t[5].value):null,t[6]?new hb.IfcTorqueMeasure(t[6].value):null),1190533807:(e,t)=>new hb.IfcStructuralLoadSingleForceWarping(e,t[0]?new hb.IfcLabel(t[0].value):null,t[1]?new hb.IfcForceMeasure(t[1].value):null,t[2]?new hb.IfcForceMeasure(t[2].value):null,t[3]?new hb.IfcForceMeasure(t[3].value):null,t[4]?new hb.IfcTorqueMeasure(t[4].value):null,t[5]?new hb.IfcTorqueMeasure(t[5].value):null,t[6]?new hb.IfcTorqueMeasure(t[6].value):null,t[7]?new hb.IfcWarpingMomentMeasure(t[7].value):null),2233826070:(e,t)=>new hb.IfcSubedge(e,new zb(t[0].value),new zb(t[1].value),new zb(t[2].value)),2513912981:(e,t)=>new hb.IfcSurface(e),1878645084:(e,t)=>new hb.IfcSurfaceStyleRendering(e,new zb(t[0].value),t[1]?new hb.IfcNormalisedRatioMeasure(t[1].value):null,t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?tD(3,t[7]):null,t[8]),2247615214:(e,t)=>new hb.IfcSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),1260650574:(e,t)=>new hb.IfcSweptDiskSolid(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new hb.IfcParameterValue(t[3].value):null,t[4]?new hb.IfcParameterValue(t[4].value):null),1096409881:(e,t)=>new hb.IfcSweptDiskSolidPolygonal(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),t[2]?new hb.IfcPositiveLengthMeasure(t[2].value):null,t[3]?new hb.IfcParameterValue(t[3].value):null,t[4]?new hb.IfcParameterValue(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null),230924584:(e,t)=>new hb.IfcSweptSurface(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3071757647:(e,t)=>new hb.IfcTShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcNonNegativeLengthMeasure(t[9].value):null,t[10]?new hb.IfcPlaneAngleMeasure(t[10].value):null,t[11]?new hb.IfcPlaneAngleMeasure(t[11].value):null),901063453:(e,t)=>new hb.IfcTessellatedItem(e),4282788508:(e,t)=>new hb.IfcTextLiteral(e,new hb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2]),3124975700:(e,t)=>new hb.IfcTextLiteralWithExtent(e,new hb.IfcPresentableText(t[0].value),new zb(t[1].value),t[2],new zb(t[3].value),new hb.IfcBoxAlignment(t[4].value)),1983826977:(e,t)=>new hb.IfcTextStyleFontModel(e,new hb.IfcLabel(t[0].value),t[1].map((e=>new hb.IfcTextFontName(e.value))),t[2]?new hb.IfcFontStyle(t[2].value):null,t[3]?new hb.IfcFontVariant(t[3].value):null,t[4]?new hb.IfcFontWeight(t[4].value):null,tD(3,t[5])),2715220739:(e,t)=>new hb.IfcTrapeziumProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcLengthMeasure(t[6].value)),1628702193:(e,t)=>new hb.IfcTypeObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null),3736923433:(e,t)=>new hb.IfcTypeProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2347495698:(e,t)=>new hb.IfcTypeProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null),3698973494:(e,t)=>new hb.IfcTypeResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),427810014:(e,t)=>new hb.IfcUShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcPlaneAngleMeasure(t[9].value):null),1417489154:(e,t)=>new hb.IfcVector(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value)),2759199220:(e,t)=>new hb.IfcVertexLoop(e,new zb(t[0].value)),2543172580:(e,t)=>new hb.IfcZShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null),3406155212:(e,t)=>new hb.IfcAdvancedFace(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new hb.IfcBoolean(t[2].value)),669184980:(e,t)=>new hb.IfcAnnotationFillArea(e,new zb(t[0].value),t[1]?t[1].map((e=>new zb(e.value))):null),3207858831:(e,t)=>new hb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,new hb.IfcPositiveLengthMeasure(t[8].value),t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcNonNegativeLengthMeasure(t[10].value):null,t[11]?new hb.IfcNonNegativeLengthMeasure(t[11].value):null,t[12]?new hb.IfcPlaneAngleMeasure(t[12].value):null,t[13]?new hb.IfcNonNegativeLengthMeasure(t[13].value):null,t[14]?new hb.IfcPlaneAngleMeasure(t[14].value):null),4261334040:(e,t)=>new hb.IfcAxis1Placement(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),3125803723:(e,t)=>new hb.IfcAxis2Placement2D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null),2740243338:(e,t)=>new hb.IfcAxis2Placement3D(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),3425423356:(e,t)=>new hb.IfcAxis2PlacementLinear(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new zb(t[2].value):null),2736907675:(e,t)=>new hb.IfcBooleanResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),4182860854:(e,t)=>new hb.IfcBoundedSurface(e),2581212453:(e,t)=>new hb.IfcBoundingBox(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),2713105998:(e,t)=>new hb.IfcBoxedHalfSpace(e,new zb(t[0].value),new hb.IfcBoolean(t[1].value),new zb(t[2].value)),2898889636:(e,t)=>new hb.IfcCShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null),1123145078:(e,t)=>new hb.IfcCartesianPoint(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value)))),574549367:(e,t)=>new hb.IfcCartesianPointList(e),1675464909:(e,t)=>new hb.IfcCartesianPointList2D(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value))),t[1]?t[1].map((e=>new hb.IfcLabel(e.value))):null),2059837836:(e,t)=>new hb.IfcCartesianPointList3D(e,t[0].map((e=>new hb.IfcLengthMeasure(e.value))),t[1]?t[1].map((e=>new hb.IfcLabel(e.value))):null),59481748:(e,t)=>new hb.IfcCartesianTransformationOperator(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null),3749851601:(e,t)=>new hb.IfcCartesianTransformationOperator2D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null),3486308946:(e,t)=>new hb.IfcCartesianTransformationOperator2DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new hb.IfcReal(t[4].value):null),3331915920:(e,t)=>new hb.IfcCartesianTransformationOperator3D(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null),1416205885:(e,t)=>new hb.IfcCartesianTransformationOperator3DnonUniform(e,t[0]?new zb(t[0].value):null,t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?new hb.IfcReal(t[3].value):null,t[4]?new zb(t[4].value):null,t[5]?new hb.IfcReal(t[5].value):null,t[6]?new hb.IfcReal(t[6].value):null),1383045692:(e,t)=>new hb.IfcCircleProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value)),2205249479:(e,t)=>new hb.IfcClosedShell(e,t[0].map((e=>new zb(e.value)))),776857604:(e,t)=>new hb.IfcColourRgb(e,t[0]?new hb.IfcLabel(t[0].value):null,new hb.IfcNormalisedRatioMeasure(t[1].value),new hb.IfcNormalisedRatioMeasure(t[2].value),new hb.IfcNormalisedRatioMeasure(t[3].value)),2542286263:(e,t)=>new hb.IfcComplexProperty(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,new hb.IfcIdentifier(t[2].value),t[3].map((e=>new zb(e.value)))),2485617015:(e,t)=>new hb.IfcCompositeCurveSegment(e,t[0],new hb.IfcBoolean(t[1].value),new zb(t[2].value)),2574617495:(e,t)=>new hb.IfcConstructionResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null),3419103109:(e,t)=>new hb.IfcContext(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),1815067380:(e,t)=>new hb.IfcCrewResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2506170314:(e,t)=>new hb.IfcCsgPrimitive3D(e,new zb(t[0].value)),2147822146:(e,t)=>new hb.IfcCsgSolid(e,new zb(t[0].value)),2601014836:(e,t)=>new hb.IfcCurve(e),2827736869:(e,t)=>new hb.IfcCurveBoundedPlane(e,new zb(t[0].value),new zb(t[1].value),t[2]?t[2].map((e=>new zb(e.value))):null),2629017746:(e,t)=>new hb.IfcCurveBoundedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),new hb.IfcBoolean(t[2].value)),4212018352:(e,t)=>new hb.IfcCurveSegment(e,t[0],new zb(t[1].value),tD(3,t[2]),tD(3,t[3]),new zb(t[4].value)),32440307:(e,t)=>new hb.IfcDirection(e,t[0].map((e=>new hb.IfcReal(e.value)))),593015953:(e,t)=>new hb.IfcDirectrixCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null),1472233963:(e,t)=>new hb.IfcEdgeLoop(e,t[0].map((e=>new zb(e.value)))),1883228015:(e,t)=>new hb.IfcElementQuantity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),339256511:(e,t)=>new hb.IfcElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2777663545:(e,t)=>new hb.IfcElementarySurface(e,new zb(t[0].value)),2835456948:(e,t)=>new hb.IfcEllipseProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),4024345920:(e,t)=>new hb.IfcEventType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcLabel(t[11].value):null),477187591:(e,t)=>new hb.IfcExtrudedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),2804161546:(e,t)=>new hb.IfcExtrudedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value),new zb(t[4].value)),2047409740:(e,t)=>new hb.IfcFaceBasedSurfaceModel(e,t[0].map((e=>new zb(e.value)))),374418227:(e,t)=>new hb.IfcFillAreaStyleHatching(e,new zb(t[0].value),new zb(t[1].value),t[2]?new zb(t[2].value):null,t[3]?new zb(t[3].value):null,new hb.IfcPlaneAngleMeasure(t[4].value)),315944413:(e,t)=>new hb.IfcFillAreaStyleTiles(e,t[0].map((e=>new zb(e.value))),t[1].map((e=>new zb(e.value))),new hb.IfcPositiveRatioMeasure(t[2].value)),2652556860:(e,t)=>new hb.IfcFixedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),4238390223:(e,t)=>new hb.IfcFurnishingElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1268542332:(e,t)=>new hb.IfcFurnitureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]),4095422895:(e,t)=>new hb.IfcGeographicElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),987898635:(e,t)=>new hb.IfcGeometricCurveSet(e,t[0].map((e=>new zb(e.value)))),1484403080:(e,t)=>new hb.IfcIShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),new hb.IfcPositiveLengthMeasure(t[6].value),t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcPlaneAngleMeasure(t[9].value):null),178912537:(e,t)=>new hb.IfcIndexedPolygonalFace(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value)))),2294589976:(e,t)=>new hb.IfcIndexedPolygonalFaceWithVoids(e,t[0].map((e=>new hb.IfcPositiveInteger(e.value))),t[1].map((e=>new hb.IfcPositiveInteger(e.value)))),3465909080:(e,t)=>new hb.IfcIndexedPolygonalTextureMap(e,t[0].map((e=>new zb(e.value))),new zb(t[1].value),new zb(t[2].value),t[3].map((e=>new zb(e.value)))),572779678:(e,t)=>new hb.IfcLShapeProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,new hb.IfcPositiveLengthMeasure(t[5].value),t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcPlaneAngleMeasure(t[8].value):null),428585644:(e,t)=>new hb.IfcLaborResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1281925730:(e,t)=>new hb.IfcLine(e,new zb(t[0].value),new zb(t[1].value)),1425443689:(e,t)=>new hb.IfcManifoldSolidBrep(e,new zb(t[0].value)),3888040117:(e,t)=>new hb.IfcObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),590820931:(e,t)=>new hb.IfcOffsetCurve(e,new zb(t[0].value)),3388369263:(e,t)=>new hb.IfcOffsetCurve2D(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value),new hb.IfcLogical(t[2].value)),3505215534:(e,t)=>new hb.IfcOffsetCurve3D(e,new zb(t[0].value),new hb.IfcLengthMeasure(t[1].value),new hb.IfcLogical(t[2].value),new zb(t[3].value)),2485787929:(e,t)=>new hb.IfcOffsetCurveByDistances(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]?new hb.IfcLabel(t[2].value):null),1682466193:(e,t)=>new hb.IfcPcurve(e,new zb(t[0].value),new zb(t[1].value)),603570806:(e,t)=>new hb.IfcPlanarBox(e,new hb.IfcLengthMeasure(t[0].value),new hb.IfcLengthMeasure(t[1].value),new zb(t[2].value)),220341763:(e,t)=>new hb.IfcPlane(e,new zb(t[0].value)),3381221214:(e,t)=>new hb.IfcPolynomialCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>new hb.IfcReal(e.value))):null,t[2]?t[2].map((e=>new hb.IfcReal(e.value))):null,t[3]?t[3].map((e=>new hb.IfcReal(e.value))):null),759155922:(e,t)=>new hb.IfcPreDefinedColour(e,new hb.IfcLabel(t[0].value)),2559016684:(e,t)=>new hb.IfcPreDefinedCurveFont(e,new hb.IfcLabel(t[0].value)),3967405729:(e,t)=>new hb.IfcPreDefinedPropertySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),569719735:(e,t)=>new hb.IfcProcedureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2945172077:(e,t)=>new hb.IfcProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null),4208778838:(e,t)=>new hb.IfcProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),103090709:(e,t)=>new hb.IfcProject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),653396225:(e,t)=>new hb.IfcProjectLibrary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new zb(t[8].value):null),871118103:(e,t)=>new hb.IfcPropertyBoundedValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?tD(3,t[3]):null,t[4]?new zb(t[4].value):null,t[5]?tD(3,t[5]):null),4166981789:(e,t)=>new hb.IfcPropertyEnumeratedValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?new zb(t[3].value):null),2752243245:(e,t)=>new hb.IfcPropertyListValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?new zb(t[3].value):null),941946838:(e,t)=>new hb.IfcPropertyReferenceValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?new hb.IfcText(t[2].value):null,t[3]?new zb(t[3].value):null),1451395588:(e,t)=>new hb.IfcPropertySet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),492091185:(e,t)=>new hb.IfcPropertySetTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5]?new hb.IfcIdentifier(t[5].value):null,t[6].map((e=>new zb(e.value)))),3650150729:(e,t)=>new hb.IfcPropertySingleValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?tD(3,t[2]):null,t[3]?new zb(t[3].value):null),110355661:(e,t)=>new hb.IfcPropertyTableValue(e,new hb.IfcIdentifier(t[0].value),t[1]?new hb.IfcText(t[1].value):null,t[2]?t[2].map((e=>tD(3,e))):null,t[3]?t[3].map((e=>tD(3,e))):null,t[4]?new hb.IfcText(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3521284610:(e,t)=>new hb.IfcPropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),2770003689:(e,t)=>new hb.IfcRectangleHollowProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value),new hb.IfcPositiveLengthMeasure(t[5].value),t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null),2798486643:(e,t)=>new hb.IfcRectangularPyramid(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),3454111270:(e,t)=>new hb.IfcRectangularTrimmedSurface(e,new zb(t[0].value),new hb.IfcParameterValue(t[1].value),new hb.IfcParameterValue(t[2].value),new hb.IfcParameterValue(t[3].value),new hb.IfcParameterValue(t[4].value),new hb.IfcBoolean(t[5].value),new hb.IfcBoolean(t[6].value)),3765753017:(e,t)=>new hb.IfcReinforcementDefinitionProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5].map((e=>new zb(e.value)))),3939117080:(e,t)=>new hb.IfcRelAssigns(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]),1683148259:(e,t)=>new hb.IfcRelAssignsToActor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2495723537:(e,t)=>new hb.IfcRelAssignsToControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1307041759:(e,t)=>new hb.IfcRelAssignsToGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1027710054:(e,t)=>new hb.IfcRelAssignsToGroupByFactor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),new hb.IfcRatioMeasure(t[7].value)),4278684876:(e,t)=>new hb.IfcRelAssignsToProcess(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value),t[7]?new zb(t[7].value):null),2857406711:(e,t)=>new hb.IfcRelAssignsToProduct(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),205026976:(e,t)=>new hb.IfcRelAssignsToResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5],new zb(t[6].value)),1865459582:(e,t)=>new hb.IfcRelAssociates(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value)))),4095574036:(e,t)=>new hb.IfcRelAssociatesApproval(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),919958153:(e,t)=>new hb.IfcRelAssociatesClassification(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2728634034:(e,t)=>new hb.IfcRelAssociatesConstraint(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),t[5]?new hb.IfcLabel(t[5].value):null,new zb(t[6].value)),982818633:(e,t)=>new hb.IfcRelAssociatesDocument(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3840914261:(e,t)=>new hb.IfcRelAssociatesLibrary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),2655215786:(e,t)=>new hb.IfcRelAssociatesMaterial(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),1033248425:(e,t)=>new hb.IfcRelAssociatesProfileDef(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),826625072:(e,t)=>new hb.IfcRelConnects(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1204542856:(e,t)=>new hb.IfcRelConnectsElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value)),3945020480:(e,t)=>new hb.IfcRelConnectsPathElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9],t[10]),4201705270:(e,t)=>new hb.IfcRelConnectsPortToElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),3190031847:(e,t)=>new hb.IfcRelConnectsPorts(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null),2127690289:(e,t)=>new hb.IfcRelConnectsStructuralActivity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1638771189:(e,t)=>new hb.IfcRelConnectsStructuralMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null),504942748:(e,t)=>new hb.IfcRelConnectsWithEccentricity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null,t[9]?new zb(t[9].value):null,new zb(t[10].value)),3678494232:(e,t)=>new hb.IfcRelConnectsWithRealizingElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new zb(t[4].value):null,new zb(t[5].value),new zb(t[6].value),t[7].map((e=>new zb(e.value))),t[8]?new hb.IfcLabel(t[8].value):null),3242617779:(e,t)=>new hb.IfcRelContainedInSpatialStructure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),886880790:(e,t)=>new hb.IfcRelCoversBldgElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2802773753:(e,t)=>new hb.IfcRelCoversSpaces(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2565941209:(e,t)=>new hb.IfcRelDeclares(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),2551354335:(e,t)=>new hb.IfcRelDecomposes(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),693640335:(e,t)=>new hb.IfcRelDefines(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null),1462361463:(e,t)=>new hb.IfcRelDefinesByObject(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4186316022:(e,t)=>new hb.IfcRelDefinesByProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),307848117:(e,t)=>new hb.IfcRelDefinesByTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),781010003:(e,t)=>new hb.IfcRelDefinesByType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),3940055652:(e,t)=>new hb.IfcRelFillsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),279856033:(e,t)=>new hb.IfcRelFlowControlElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),427948657:(e,t)=>new hb.IfcRelInterferesElements(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new hb.IfcIdentifier(t[8].value):null,new hb.IfcLogical(t[9].value)),3268803585:(e,t)=>new hb.IfcRelNests(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),1441486842:(e,t)=>new hb.IfcRelPositions(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),750771296:(e,t)=>new hb.IfcRelProjectsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),1245217292:(e,t)=>new hb.IfcRelReferencedInSpatialStructure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4].map((e=>new zb(e.value))),new zb(t[5].value)),4122056220:(e,t)=>new hb.IfcRelSequence(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcLabel(t[8].value):null),366585022:(e,t)=>new hb.IfcRelServicesBuildings(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),3451746338:(e,t)=>new hb.IfcRelSpaceBoundary(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8]),3523091289:(e,t)=>new hb.IfcRelSpaceBoundary1stLevel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null),1521410863:(e,t)=>new hb.IfcRelSpaceBoundary2ndLevel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value),t[6]?new zb(t[6].value):null,t[7],t[8],t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),1401173127:(e,t)=>new hb.IfcRelVoidsElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),new zb(t[5].value)),816062949:(e,t)=>new hb.IfcReparametrisedCompositeCurveSegment(e,t[0],new hb.IfcBoolean(t[1].value),new zb(t[2].value),new hb.IfcParameterValue(t[3].value)),2914609552:(e,t)=>new hb.IfcResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null),1856042241:(e,t)=>new hb.IfcRevolvedAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value)),3243963512:(e,t)=>new hb.IfcRevolvedAreaSolidTapered(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcPlaneAngleMeasure(t[3].value),new zb(t[4].value)),4158566097:(e,t)=>new hb.IfcRightCircularCone(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),3626867408:(e,t)=>new hb.IfcRightCircularCylinder(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),1862484736:(e,t)=>new hb.IfcSectionedSolid(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1290935644:(e,t)=>new hb.IfcSectionedSolidHorizontal(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),1356537516:(e,t)=>new hb.IfcSectionedSurface(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value)))),3663146110:(e,t)=>new hb.IfcSimplePropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5]?new hb.IfcLabel(t[5].value):null,t[6]?new hb.IfcLabel(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new hb.IfcLabel(t[10].value):null,t[11]),1412071761:(e,t)=>new hb.IfcSpatialElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null),710998568:(e,t)=>new hb.IfcSpatialElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2706606064:(e,t)=>new hb.IfcSpatialStructureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),3893378262:(e,t)=>new hb.IfcSpatialStructureElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),463610769:(e,t)=>new hb.IfcSpatialZone(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),2481509218:(e,t)=>new hb.IfcSpatialZoneType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),451544542:(e,t)=>new hb.IfcSphere(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),4015995234:(e,t)=>new hb.IfcSphericalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),2735484536:(e,t)=>new hb.IfcSpiral(e,t[0]?new zb(t[0].value):null),3544373492:(e,t)=>new hb.IfcStructuralActivity(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3136571912:(e,t)=>new hb.IfcStructuralItem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),530289379:(e,t)=>new hb.IfcStructuralMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3689010777:(e,t)=>new hb.IfcStructuralReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),3979015343:(e,t)=>new hb.IfcStructuralSurfaceMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null),2218152070:(e,t)=>new hb.IfcStructuralSurfaceMemberVarying(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null),603775116:(e,t)=>new hb.IfcStructuralSurfaceReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),4095615324:(e,t)=>new hb.IfcSubContractResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),699246055:(e,t)=>new hb.IfcSurfaceCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2028607225:(e,t)=>new hb.IfcSurfaceCurveSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),2809605785:(e,t)=>new hb.IfcSurfaceOfLinearExtrusion(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),new hb.IfcLengthMeasure(t[3].value)),4124788165:(e,t)=>new hb.IfcSurfaceOfRevolution(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value)),1580310250:(e,t)=>new hb.IfcSystemFurnitureElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3473067441:(e,t)=>new hb.IfcTask(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,new hb.IfcBoolean(t[9].value),t[10]?new hb.IfcInteger(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]),3206491090:(e,t)=>new hb.IfcTaskType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),2387106220:(e,t)=>new hb.IfcTessellatedFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null),782932809:(e,t)=>new hb.IfcThirdOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null),1935646853:(e,t)=>new hb.IfcToroidalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),3665877780:(e,t)=>new hb.IfcTransportationDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2916149573:(e,t)=>new hb.IfcTriangulatedFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2]?t[2].map((e=>new hb.IfcParameterValue(e.value))):null,t[3].map((e=>new hb.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new hb.IfcPositiveInteger(e.value))):null),1229763772:(e,t)=>new hb.IfcTriangulatedIrregularNetwork(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2]?t[2].map((e=>new hb.IfcParameterValue(e.value))):null,t[3].map((e=>new hb.IfcPositiveInteger(e.value))),t[4]?t[4].map((e=>new hb.IfcPositiveInteger(e.value))):null,t[5].map((e=>new hb.IfcInteger(e.value)))),3651464721:(e,t)=>new hb.IfcVehicleType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),336235671:(e,t)=>new hb.IfcWindowLiningProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new hb.IfcNonNegativeLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNormalisedRatioMeasure(t[8].value):null,t[9]?new hb.IfcNormalisedRatioMeasure(t[9].value):null,t[10]?new hb.IfcNormalisedRatioMeasure(t[10].value):null,t[11]?new hb.IfcNormalisedRatioMeasure(t[11].value):null,t[12]?new zb(t[12].value):null,t[13]?new hb.IfcLengthMeasure(t[13].value):null,t[14]?new hb.IfcLengthMeasure(t[14].value):null,t[15]?new hb.IfcLengthMeasure(t[15].value):null),512836454:(e,t)=>new hb.IfcWindowPanelProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5],t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),2296667514:(e,t)=>new hb.IfcActor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,new zb(t[5].value)),1635779807:(e,t)=>new hb.IfcAdvancedBrep(e,new zb(t[0].value)),2603310189:(e,t)=>new hb.IfcAdvancedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),1674181508:(e,t)=>new hb.IfcAnnotation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),2887950389:(e,t)=>new hb.IfcBSplineSurface(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value)),167062518:(e,t)=>new hb.IfcBSplineSurfaceWithKnots(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9].map((e=>new hb.IfcParameterValue(e.value))),t[10].map((e=>new hb.IfcParameterValue(e.value))),t[11]),1334484129:(e,t)=>new hb.IfcBlock(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value),new hb.IfcPositiveLengthMeasure(t[3].value)),3649129432:(e,t)=>new hb.IfcBooleanClippingResult(e,t[0],new zb(t[1].value),new zb(t[2].value)),1260505505:(e,t)=>new hb.IfcBoundedCurve(e),3124254112:(e,t)=>new hb.IfcBuildingStorey(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcLengthMeasure(t[9].value):null),1626504194:(e,t)=>new hb.IfcBuiltElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2197970202:(e,t)=>new hb.IfcChimneyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2937912522:(e,t)=>new hb.IfcCircleHollowProfileDef(e,t[0],t[1]?new hb.IfcLabel(t[1].value):null,t[2]?new zb(t[2].value):null,new hb.IfcPositiveLengthMeasure(t[3].value),new hb.IfcPositiveLengthMeasure(t[4].value)),3893394355:(e,t)=>new hb.IfcCivilElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3497074424:(e,t)=>new hb.IfcClothoid(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value)),300633059:(e,t)=>new hb.IfcColumnType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3875453745:(e,t)=>new hb.IfcComplexPropertyTemplate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?t[6].map((e=>new zb(e.value))):null),3732776249:(e,t)=>new hb.IfcCompositeCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),15328376:(e,t)=>new hb.IfcCompositeCurveOnSurface(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),2510884976:(e,t)=>new hb.IfcConic(e,new zb(t[0].value)),2185764099:(e,t)=>new hb.IfcConstructionEquipmentResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),4105962743:(e,t)=>new hb.IfcConstructionMaterialResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),1525564444:(e,t)=>new hb.IfcConstructionProductResourceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?new hb.IfcIdentifier(t[6].value):null,t[7]?new hb.IfcText(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?t[9].map((e=>new zb(e.value))):null,t[10]?new zb(t[10].value):null,t[11]),2559216714:(e,t)=>new hb.IfcConstructionResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),3293443760:(e,t)=>new hb.IfcControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null),2000195564:(e,t)=>new hb.IfcCosineSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null),3895139033:(e,t)=>new hb.IfcCostItem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null),1419761937:(e,t)=>new hb.IfcCostSchedule(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcDateTime(t[8].value):null,t[9]?new hb.IfcDateTime(t[9].value):null),4189326743:(e,t)=>new hb.IfcCourseType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1916426348:(e,t)=>new hb.IfcCoveringType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3295246426:(e,t)=>new hb.IfcCrewResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1457835157:(e,t)=>new hb.IfcCurtainWallType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1213902940:(e,t)=>new hb.IfcCylindricalSurface(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),1306400036:(e,t)=>new hb.IfcDeepFoundationType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),4234616927:(e,t)=>new hb.IfcDirectrixDerivedReferenceSweptAreaSolid(e,new zb(t[0].value),t[1]?new zb(t[1].value):null,new zb(t[2].value),t[3]?tD(3,t[3]):null,t[4]?tD(3,t[4]):null,new zb(t[5].value)),3256556792:(e,t)=>new hb.IfcDistributionElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3849074793:(e,t)=>new hb.IfcDistributionFlowElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2963535650:(e,t)=>new hb.IfcDoorLiningProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5]?new hb.IfcNonNegativeLengthMeasure(t[5].value):null,t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcNonNegativeLengthMeasure(t[7].value):null,t[8]?new hb.IfcNonNegativeLengthMeasure(t[8].value):null,t[9]?new hb.IfcLengthMeasure(t[9].value):null,t[10]?new hb.IfcLengthMeasure(t[10].value):null,t[11]?new hb.IfcLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new zb(t[14].value):null,t[15]?new hb.IfcLengthMeasure(t[15].value):null,t[16]?new hb.IfcLengthMeasure(t[16].value):null),1714330368:(e,t)=>new hb.IfcDoorPanelProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcPositiveLengthMeasure(t[4].value):null,t[5],t[6]?new hb.IfcNormalisedRatioMeasure(t[6].value):null,t[7],t[8]?new zb(t[8].value):null),2323601079:(e,t)=>new hb.IfcDoorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcBoolean(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null),445594917:(e,t)=>new hb.IfcDraughtingPreDefinedColour(e,new hb.IfcLabel(t[0].value)),4006246654:(e,t)=>new hb.IfcDraughtingPreDefinedCurveFont(e,new hb.IfcLabel(t[0].value)),1758889154:(e,t)=>new hb.IfcElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4123344466:(e,t)=>new hb.IfcElementAssembly(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8],t[9]),2397081782:(e,t)=>new hb.IfcElementAssemblyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1623761950:(e,t)=>new hb.IfcElementComponent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2590856083:(e,t)=>new hb.IfcElementComponentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1704287377:(e,t)=>new hb.IfcEllipse(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value),new hb.IfcPositiveLengthMeasure(t[2].value)),2107101300:(e,t)=>new hb.IfcEnergyConversionDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),132023988:(e,t)=>new hb.IfcEngineType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3174744832:(e,t)=>new hb.IfcEvaporativeCoolerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3390157468:(e,t)=>new hb.IfcEvaporatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4148101412:(e,t)=>new hb.IfcEvent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7],t[8],t[9]?new hb.IfcLabel(t[9].value):null,t[10]?new zb(t[10].value):null),2853485674:(e,t)=>new hb.IfcExternalSpatialStructureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null),807026263:(e,t)=>new hb.IfcFacetedBrep(e,new zb(t[0].value)),3737207727:(e,t)=>new hb.IfcFacetedBrepWithVoids(e,new zb(t[0].value),t[1].map((e=>new zb(e.value)))),24185140:(e,t)=>new hb.IfcFacility(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),1310830890:(e,t)=>new hb.IfcFacilityPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),4228831410:(e,t)=>new hb.IfcFacilityPartCommon(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),647756555:(e,t)=>new hb.IfcFastener(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2489546625:(e,t)=>new hb.IfcFastenerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2827207264:(e,t)=>new hb.IfcFeatureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2143335405:(e,t)=>new hb.IfcFeatureElementAddition(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1287392070:(e,t)=>new hb.IfcFeatureElementSubtraction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3907093117:(e,t)=>new hb.IfcFlowControllerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3198132628:(e,t)=>new hb.IfcFlowFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3815607619:(e,t)=>new hb.IfcFlowMeterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1482959167:(e,t)=>new hb.IfcFlowMovingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1834744321:(e,t)=>new hb.IfcFlowSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1339347760:(e,t)=>new hb.IfcFlowStorageDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2297155007:(e,t)=>new hb.IfcFlowTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),3009222698:(e,t)=>new hb.IfcFlowTreatmentDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1893162501:(e,t)=>new hb.IfcFootingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),263784265:(e,t)=>new hb.IfcFurnishingElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1509553395:(e,t)=>new hb.IfcFurniture(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3493046030:(e,t)=>new hb.IfcGeographicElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4230923436:(e,t)=>new hb.IfcGeotechnicalElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1594536857:(e,t)=>new hb.IfcGeotechnicalStratum(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2898700619:(e,t)=>new hb.IfcGradientCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value),new zb(t[2].value),t[3]?new zb(t[3].value):null),2706460486:(e,t)=>new hb.IfcGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),1251058090:(e,t)=>new hb.IfcHeatExchangerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1806887404:(e,t)=>new hb.IfcHumidifierType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2568555532:(e,t)=>new hb.IfcImpactProtectionDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3948183225:(e,t)=>new hb.IfcImpactProtectionDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2571569899:(e,t)=>new hb.IfcIndexedPolyCurve(e,new zb(t[0].value),t[1]?t[1].map((e=>tD(3,e))):null,new hb.IfcLogical(t[2].value)),3946677679:(e,t)=>new hb.IfcInterceptorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3113134337:(e,t)=>new hb.IfcIntersectionCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),2391368822:(e,t)=>new hb.IfcInventory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcDate(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null),4288270099:(e,t)=>new hb.IfcJunctionBoxType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),679976338:(e,t)=>new hb.IfcKerbType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,new hb.IfcBoolean(t[9].value)),3827777499:(e,t)=>new hb.IfcLaborResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1051575348:(e,t)=>new hb.IfcLampType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1161773419:(e,t)=>new hb.IfcLightFixtureType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2176059722:(e,t)=>new hb.IfcLinearElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1770583370:(e,t)=>new hb.IfcLiquidTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),525669439:(e,t)=>new hb.IfcMarineFacility(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),976884017:(e,t)=>new hb.IfcMarinePart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),377706215:(e,t)=>new hb.IfcMechanicalFastener(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]),2108223431:(e,t)=>new hb.IfcMechanicalFastenerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null),1114901282:(e,t)=>new hb.IfcMedicalDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3181161470:(e,t)=>new hb.IfcMemberType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1950438474:(e,t)=>new hb.IfcMobileTelecommunicationsApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),710110818:(e,t)=>new hb.IfcMooringDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),977012517:(e,t)=>new hb.IfcMotorConnectionType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),506776471:(e,t)=>new hb.IfcNavigationElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4143007308:(e,t)=>new hb.IfcOccupant(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,new zb(t[5].value),t[6]),3588315303:(e,t)=>new hb.IfcOpeningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2837617999:(e,t)=>new hb.IfcOutletType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),514975943:(e,t)=>new hb.IfcPavementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2382730787:(e,t)=>new hb.IfcPerformanceHistory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcLabel(t[6].value),t[7]),3566463478:(e,t)=>new hb.IfcPermeableCoveringProperties(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4],t[5],t[6]?new hb.IfcPositiveLengthMeasure(t[6].value):null,t[7]?new hb.IfcPositiveLengthMeasure(t[7].value):null,t[8]?new zb(t[8].value):null),3327091369:(e,t)=>new hb.IfcPermit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),1158309216:(e,t)=>new hb.IfcPileType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),804291784:(e,t)=>new hb.IfcPipeFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4231323485:(e,t)=>new hb.IfcPipeSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4017108033:(e,t)=>new hb.IfcPlateType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2839578677:(e,t)=>new hb.IfcPolygonalFaceSet(e,new zb(t[0].value),t[1]?new hb.IfcBoolean(t[1].value):null,t[2].map((e=>new zb(e.value))),t[3]?t[3].map((e=>new hb.IfcPositiveInteger(e.value))):null),3724593414:(e,t)=>new hb.IfcPolyline(e,t[0].map((e=>new zb(e.value)))),3740093272:(e,t)=>new hb.IfcPort(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1946335990:(e,t)=>new hb.IfcPositioningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),2744685151:(e,t)=>new hb.IfcProcedure(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]),2904328755:(e,t)=>new hb.IfcProjectOrder(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),3651124850:(e,t)=>new hb.IfcProjectionElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1842657554:(e,t)=>new hb.IfcProtectiveDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2250791053:(e,t)=>new hb.IfcPumpType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1763565496:(e,t)=>new hb.IfcRailType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2893384427:(e,t)=>new hb.IfcRailingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3992365140:(e,t)=>new hb.IfcRailway(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),1891881377:(e,t)=>new hb.IfcRailwayPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),2324767716:(e,t)=>new hb.IfcRampFlightType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1469900589:(e,t)=>new hb.IfcRampType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),683857671:(e,t)=>new hb.IfcRationalBSplineSurfaceWithKnots(e,new hb.IfcInteger(t[0].value),new hb.IfcInteger(t[1].value),t[2].map((e=>new zb(e.value))),t[3],new hb.IfcLogical(t[4].value),new hb.IfcLogical(t[5].value),new hb.IfcLogical(t[6].value),t[7].map((e=>new hb.IfcInteger(e.value))),t[8].map((e=>new hb.IfcInteger(e.value))),t[9].map((e=>new hb.IfcParameterValue(e.value))),t[10].map((e=>new hb.IfcParameterValue(e.value))),t[11],t[12].map((e=>new hb.IfcReal(e.value)))),4021432810:(e,t)=>new hb.IfcReferent(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),3027567501:(e,t)=>new hb.IfcReinforcingElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),964333572:(e,t)=>new hb.IfcReinforcingElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),2320036040:(e,t)=>new hb.IfcReinforcingMesh(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcAreaMeasure(t[13].value):null,t[14]?new hb.IfcAreaMeasure(t[14].value):null,t[15]?new hb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null,t[17]),2310774935:(e,t)=>new hb.IfcReinforcingMeshType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13]?new hb.IfcPositiveLengthMeasure(t[13].value):null,t[14]?new hb.IfcAreaMeasure(t[14].value):null,t[15]?new hb.IfcAreaMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null,t[17]?new hb.IfcPositiveLengthMeasure(t[17].value):null,t[18]?new hb.IfcLabel(t[18].value):null,t[19]?t[19].map((e=>tD(3,e))):null),3818125796:(e,t)=>new hb.IfcRelAdheresToElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),160246688:(e,t)=>new hb.IfcRelAggregates(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,new zb(t[4].value),t[5].map((e=>new zb(e.value)))),146592293:(e,t)=>new hb.IfcRoad(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),550521510:(e,t)=>new hb.IfcRoadPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),2781568857:(e,t)=>new hb.IfcRoofType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1768891740:(e,t)=>new hb.IfcSanitaryTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2157484638:(e,t)=>new hb.IfcSeamCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2]),3649235739:(e,t)=>new hb.IfcSecondOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),544395925:(e,t)=>new hb.IfcSegmentedReferenceCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value),new zb(t[2].value),t[3]?new zb(t[3].value):null),1027922057:(e,t)=>new hb.IfcSeventhOrderPolynomialSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null,t[4]?new hb.IfcLengthMeasure(t[4].value):null,t[5]?new hb.IfcLengthMeasure(t[5].value):null,t[6]?new hb.IfcLengthMeasure(t[6].value):null,t[7]?new hb.IfcLengthMeasure(t[7].value):null,t[8]?new hb.IfcLengthMeasure(t[8].value):null),4074543187:(e,t)=>new hb.IfcShadingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),33720170:(e,t)=>new hb.IfcSign(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3599934289:(e,t)=>new hb.IfcSignType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1894708472:(e,t)=>new hb.IfcSignalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),42703149:(e,t)=>new hb.IfcSineSpiral(e,t[0]?new zb(t[0].value):null,new hb.IfcLengthMeasure(t[1].value),t[2]?new hb.IfcLengthMeasure(t[2].value):null,t[3]?new hb.IfcLengthMeasure(t[3].value):null),4097777520:(e,t)=>new hb.IfcSite(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcCompoundPlaneAngleMeasure(t[9]):null,t[10]?new hb.IfcCompoundPlaneAngleMeasure(t[10]):null,t[11]?new hb.IfcLengthMeasure(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null,t[13]?new zb(t[13].value):null),2533589738:(e,t)=>new hb.IfcSlabType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1072016465:(e,t)=>new hb.IfcSolarDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3856911033:(e,t)=>new hb.IfcSpace(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]?new hb.IfcLengthMeasure(t[10].value):null),1305183839:(e,t)=>new hb.IfcSpaceHeaterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3812236995:(e,t)=>new hb.IfcSpaceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcLabel(t[10].value):null),3112655638:(e,t)=>new hb.IfcStackTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1039846685:(e,t)=>new hb.IfcStairFlightType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),338393293:(e,t)=>new hb.IfcStairType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),682877961:(e,t)=>new hb.IfcStructuralAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null),1179482911:(e,t)=>new hb.IfcStructuralConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),1004757350:(e,t)=>new hb.IfcStructuralCurveAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),4243806635:(e,t)=>new hb.IfcStructuralCurveConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,new zb(t[8].value)),214636428:(e,t)=>new hb.IfcStructuralCurveMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2445595289:(e,t)=>new hb.IfcStructuralCurveMemberVarying(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],new zb(t[8].value)),2757150158:(e,t)=>new hb.IfcStructuralCurveReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]),1807405624:(e,t)=>new hb.IfcStructuralLinearAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1252848954:(e,t)=>new hb.IfcStructuralLoadGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new hb.IfcRatioMeasure(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null),2082059205:(e,t)=>new hb.IfcStructuralPointAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null),734778138:(e,t)=>new hb.IfcStructuralPointConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null),1235345126:(e,t)=>new hb.IfcStructuralPointReaction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8]),2986769608:(e,t)=>new hb.IfcStructuralResultGroup(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,new hb.IfcBoolean(t[7].value)),3657597509:(e,t)=>new hb.IfcStructuralSurfaceAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1975003073:(e,t)=>new hb.IfcStructuralSurfaceConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null),148013059:(e,t)=>new hb.IfcSubContractResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),3101698114:(e,t)=>new hb.IfcSurfaceFeature(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2315554128:(e,t)=>new hb.IfcSwitchingDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2254336722:(e,t)=>new hb.IfcSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null),413509423:(e,t)=>new hb.IfcSystemFurnitureElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),5716631:(e,t)=>new hb.IfcTankType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3824725483:(e,t)=>new hb.IfcTendon(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcForceMeasure(t[12].value):null,t[13]?new hb.IfcPressureMeasure(t[13].value):null,t[14]?new hb.IfcNormalisedRatioMeasure(t[14].value):null,t[15]?new hb.IfcPositiveLengthMeasure(t[15].value):null,t[16]?new hb.IfcPositiveLengthMeasure(t[16].value):null),2347447852:(e,t)=>new hb.IfcTendonAnchor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3081323446:(e,t)=>new hb.IfcTendonAnchorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3663046924:(e,t)=>new hb.IfcTendonConduit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2281632017:(e,t)=>new hb.IfcTendonConduitType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2415094496:(e,t)=>new hb.IfcTendonType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null),618700268:(e,t)=>new hb.IfcTrackElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1692211062:(e,t)=>new hb.IfcTransformerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2097647324:(e,t)=>new hb.IfcTransportElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1953115116:(e,t)=>new hb.IfcTransportationDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3593883385:(e,t)=>new hb.IfcTrimmedCurve(e,new zb(t[0].value),t[1].map((e=>new zb(e.value))),t[2].map((e=>new zb(e.value))),new hb.IfcBoolean(t[3].value),t[4]),1600972822:(e,t)=>new hb.IfcTubeBundleType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1911125066:(e,t)=>new hb.IfcUnitaryEquipmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),728799441:(e,t)=>new hb.IfcValveType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),840318589:(e,t)=>new hb.IfcVehicle(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1530820697:(e,t)=>new hb.IfcVibrationDamper(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3956297820:(e,t)=>new hb.IfcVibrationDamperType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2391383451:(e,t)=>new hb.IfcVibrationIsolator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3313531582:(e,t)=>new hb.IfcVibrationIsolatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2769231204:(e,t)=>new hb.IfcVirtualElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),926996030:(e,t)=>new hb.IfcVoidingFeature(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1898987631:(e,t)=>new hb.IfcWallType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1133259667:(e,t)=>new hb.IfcWasteTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4009809668:(e,t)=>new hb.IfcWindowType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10],t[11]?new hb.IfcBoolean(t[11].value):null,t[12]?new hb.IfcLabel(t[12].value):null),4088093105:(e,t)=>new hb.IfcWorkCalendar(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]),1028945134:(e,t)=>new hb.IfcWorkControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null),4218914973:(e,t)=>new hb.IfcWorkPlan(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null,t[13]),3342526732:(e,t)=>new hb.IfcWorkSchedule(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,new hb.IfcDateTime(t[6].value),t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcDuration(t[9].value):null,t[10]?new hb.IfcDuration(t[10].value):null,new hb.IfcDateTime(t[11].value),t[12]?new hb.IfcDateTime(t[12].value):null,t[13]),1033361043:(e,t)=>new hb.IfcZone(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null),3821786052:(e,t)=>new hb.IfcActionRequest(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6],t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcText(t[8].value):null),1411407467:(e,t)=>new hb.IfcAirTerminalBoxType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3352864051:(e,t)=>new hb.IfcAirTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1871374353:(e,t)=>new hb.IfcAirToAirHeatRecoveryType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4266260250:(e,t)=>new hb.IfcAlignmentCant(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new hb.IfcPositiveLengthMeasure(t[7].value)),1545765605:(e,t)=>new hb.IfcAlignmentHorizontal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),317615605:(e,t)=>new hb.IfcAlignmentSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value)),1662888072:(e,t)=>new hb.IfcAlignmentVertical(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),3460190687:(e,t)=>new hb.IfcAsset(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?new zb(t[8].value):null,t[9]?new zb(t[9].value):null,t[10]?new zb(t[10].value):null,t[11]?new zb(t[11].value):null,t[12]?new hb.IfcDate(t[12].value):null,t[13]?new zb(t[13].value):null),1532957894:(e,t)=>new hb.IfcAudioVisualApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1967976161:(e,t)=>new hb.IfcBSplineCurve(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value)),2461110595:(e,t)=>new hb.IfcBSplineCurveWithKnots(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value),t[5].map((e=>new hb.IfcInteger(e.value))),t[6].map((e=>new hb.IfcParameterValue(e.value))),t[7]),819618141:(e,t)=>new hb.IfcBeamType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3649138523:(e,t)=>new hb.IfcBearingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),231477066:(e,t)=>new hb.IfcBoilerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1136057603:(e,t)=>new hb.IfcBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),644574406:(e,t)=>new hb.IfcBridge(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]),963979645:(e,t)=>new hb.IfcBridgePart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9],t[10]),4031249490:(e,t)=>new hb.IfcBuilding(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8],t[9]?new hb.IfcLengthMeasure(t[9].value):null,t[10]?new hb.IfcLengthMeasure(t[10].value):null,t[11]?new zb(t[11].value):null),2979338954:(e,t)=>new hb.IfcBuildingElementPart(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),39481116:(e,t)=>new hb.IfcBuildingElementPartType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1909888760:(e,t)=>new hb.IfcBuildingElementProxyType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1177604601:(e,t)=>new hb.IfcBuildingSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),1876633798:(e,t)=>new hb.IfcBuiltElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3862327254:(e,t)=>new hb.IfcBuiltSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new hb.IfcLabel(t[6].value):null),2188180465:(e,t)=>new hb.IfcBurnerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),395041908:(e,t)=>new hb.IfcCableCarrierFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3293546465:(e,t)=>new hb.IfcCableCarrierSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2674252688:(e,t)=>new hb.IfcCableFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1285652485:(e,t)=>new hb.IfcCableSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3203706013:(e,t)=>new hb.IfcCaissonFoundationType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2951183804:(e,t)=>new hb.IfcChillerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3296154744:(e,t)=>new hb.IfcChimney(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2611217952:(e,t)=>new hb.IfcCircle(e,new zb(t[0].value),new hb.IfcPositiveLengthMeasure(t[1].value)),1677625105:(e,t)=>new hb.IfcCivilElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2301859152:(e,t)=>new hb.IfcCoilType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),843113511:(e,t)=>new hb.IfcColumn(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),400855858:(e,t)=>new hb.IfcCommunicationsApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3850581409:(e,t)=>new hb.IfcCompressorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2816379211:(e,t)=>new hb.IfcCondenserType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3898045240:(e,t)=>new hb.IfcConstructionEquipmentResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),1060000209:(e,t)=>new hb.IfcConstructionMaterialResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),488727124:(e,t)=>new hb.IfcConstructionProductResource(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcIdentifier(t[5].value):null,t[6]?new hb.IfcText(t[6].value):null,t[7]?new zb(t[7].value):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null,t[10]),2940368186:(e,t)=>new hb.IfcConveyorSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),335055490:(e,t)=>new hb.IfcCooledBeamType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2954562838:(e,t)=>new hb.IfcCoolingTowerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1502416096:(e,t)=>new hb.IfcCourse(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1973544240:(e,t)=>new hb.IfcCovering(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3495092785:(e,t)=>new hb.IfcCurtainWall(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3961806047:(e,t)=>new hb.IfcDamperType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3426335179:(e,t)=>new hb.IfcDeepFoundation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1335981549:(e,t)=>new hb.IfcDiscreteAccessory(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2635815018:(e,t)=>new hb.IfcDiscreteAccessoryType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),479945903:(e,t)=>new hb.IfcDistributionBoardType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1599208980:(e,t)=>new hb.IfcDistributionChamberElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2063403501:(e,t)=>new hb.IfcDistributionControlElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null),1945004755:(e,t)=>new hb.IfcDistributionElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3040386961:(e,t)=>new hb.IfcDistributionFlowElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3041715199:(e,t)=>new hb.IfcDistributionPort(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7],t[8],t[9]),3205830791:(e,t)=>new hb.IfcDistributionSystem(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]),395920057:(e,t)=>new hb.IfcDoor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new hb.IfcLabel(t[12].value):null),869906466:(e,t)=>new hb.IfcDuctFittingType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3760055223:(e,t)=>new hb.IfcDuctSegmentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2030761528:(e,t)=>new hb.IfcDuctSilencerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3071239417:(e,t)=>new hb.IfcEarthworksCut(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1077100507:(e,t)=>new hb.IfcEarthworksElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3376911765:(e,t)=>new hb.IfcEarthworksFill(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),663422040:(e,t)=>new hb.IfcElectricApplianceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2417008758:(e,t)=>new hb.IfcElectricDistributionBoardType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3277789161:(e,t)=>new hb.IfcElectricFlowStorageDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2142170206:(e,t)=>new hb.IfcElectricFlowTreatmentDeviceType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1534661035:(e,t)=>new hb.IfcElectricGeneratorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1217240411:(e,t)=>new hb.IfcElectricMotorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),712377611:(e,t)=>new hb.IfcElectricTimeControlType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1658829314:(e,t)=>new hb.IfcEnergyConversionDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2814081492:(e,t)=>new hb.IfcEngine(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3747195512:(e,t)=>new hb.IfcEvaporativeCooler(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),484807127:(e,t)=>new hb.IfcEvaporator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1209101575:(e,t)=>new hb.IfcExternalSpatialElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]),346874300:(e,t)=>new hb.IfcFanType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1810631287:(e,t)=>new hb.IfcFilterType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4222183408:(e,t)=>new hb.IfcFireSuppressionTerminalType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2058353004:(e,t)=>new hb.IfcFlowController(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4278956645:(e,t)=>new hb.IfcFlowFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),4037862832:(e,t)=>new hb.IfcFlowInstrumentType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),2188021234:(e,t)=>new hb.IfcFlowMeter(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3132237377:(e,t)=>new hb.IfcFlowMovingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),987401354:(e,t)=>new hb.IfcFlowSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),707683696:(e,t)=>new hb.IfcFlowStorageDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2223149337:(e,t)=>new hb.IfcFlowTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3508470533:(e,t)=>new hb.IfcFlowTreatmentDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),900683007:(e,t)=>new hb.IfcFooting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2713699986:(e,t)=>new hb.IfcGeotechnicalAssembly(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),3009204131:(e,t)=>new hb.IfcGrid(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7].map((e=>new zb(e.value))),t[8].map((e=>new zb(e.value))),t[9]?t[9].map((e=>new zb(e.value))):null,t[10]),3319311131:(e,t)=>new hb.IfcHeatExchanger(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2068733104:(e,t)=>new hb.IfcHumidifier(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4175244083:(e,t)=>new hb.IfcInterceptor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2176052936:(e,t)=>new hb.IfcJunctionBox(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2696325953:(e,t)=>new hb.IfcKerb(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,new hb.IfcBoolean(t[8].value)),76236018:(e,t)=>new hb.IfcLamp(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),629592764:(e,t)=>new hb.IfcLightFixture(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1154579445:(e,t)=>new hb.IfcLinearPositioningElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null),1638804497:(e,t)=>new hb.IfcLiquidTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1437502449:(e,t)=>new hb.IfcMedicalDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1073191201:(e,t)=>new hb.IfcMember(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2078563270:(e,t)=>new hb.IfcMobileTelecommunicationsAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),234836483:(e,t)=>new hb.IfcMooringDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2474470126:(e,t)=>new hb.IfcMotorConnection(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2182337498:(e,t)=>new hb.IfcNavigationElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),144952367:(e,t)=>new hb.IfcOuterBoundaryCurve(e,t[0].map((e=>new zb(e.value))),new hb.IfcLogical(t[1].value)),3694346114:(e,t)=>new hb.IfcOutlet(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1383356374:(e,t)=>new hb.IfcPavement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1687234759:(e,t)=>new hb.IfcPile(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8],t[9]),310824031:(e,t)=>new hb.IfcPipeFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3612865200:(e,t)=>new hb.IfcPipeSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3171933400:(e,t)=>new hb.IfcPlate(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),738039164:(e,t)=>new hb.IfcProtectiveDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),655969474:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnitType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),90941305:(e,t)=>new hb.IfcPump(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3290496277:(e,t)=>new hb.IfcRail(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2262370178:(e,t)=>new hb.IfcRailing(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3024970846:(e,t)=>new hb.IfcRamp(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3283111854:(e,t)=>new hb.IfcRampFlight(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1232101972:(e,t)=>new hb.IfcRationalBSplineCurveWithKnots(e,new hb.IfcInteger(t[0].value),t[1].map((e=>new zb(e.value))),t[2],new hb.IfcLogical(t[3].value),new hb.IfcLogical(t[4].value),t[5].map((e=>new hb.IfcInteger(e.value))),t[6].map((e=>new hb.IfcParameterValue(e.value))),t[7],t[8].map((e=>new hb.IfcReal(e.value)))),3798194928:(e,t)=>new hb.IfcReinforcedSoil(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),979691226:(e,t)=>new hb.IfcReinforcingBar(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10]?new hb.IfcAreaMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12],t[13]),2572171363:(e,t)=>new hb.IfcReinforcingBarType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9],t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcAreaMeasure(t[11].value):null,t[12]?new hb.IfcPositiveLengthMeasure(t[12].value):null,t[13],t[14]?new hb.IfcLabel(t[14].value):null,t[15]?t[15].map((e=>tD(3,e))):null),2016517767:(e,t)=>new hb.IfcRoof(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3053780830:(e,t)=>new hb.IfcSanitaryTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1783015770:(e,t)=>new hb.IfcSensorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1329646415:(e,t)=>new hb.IfcShadingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),991950508:(e,t)=>new hb.IfcSignal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1529196076:(e,t)=>new hb.IfcSlab(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3420628829:(e,t)=>new hb.IfcSolarDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1999602285:(e,t)=>new hb.IfcSpaceHeater(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1404847402:(e,t)=>new hb.IfcStackTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),331165859:(e,t)=>new hb.IfcStair(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4252922144:(e,t)=>new hb.IfcStairFlight(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcInteger(t[8].value):null,t[9]?new hb.IfcInteger(t[9].value):null,t[10]?new hb.IfcPositiveLengthMeasure(t[10].value):null,t[11]?new hb.IfcPositiveLengthMeasure(t[11].value):null,t[12]),2515109513:(e,t)=>new hb.IfcStructuralAnalysisModel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6]?new zb(t[6].value):null,t[7]?t[7].map((e=>new zb(e.value))):null,t[8]?t[8].map((e=>new zb(e.value))):null,t[9]?new zb(t[9].value):null),385403989:(e,t)=>new hb.IfcStructuralLoadCase(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5],t[6],t[7],t[8]?new hb.IfcRatioMeasure(t[8].value):null,t[9]?new hb.IfcLabel(t[9].value):null,t[10]?t[10].map((e=>new hb.IfcRatioMeasure(e.value))):null),1621171031:(e,t)=>new hb.IfcStructuralPlanarAction(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,new zb(t[7].value),t[8],t[9]?new hb.IfcBoolean(t[9].value):null,t[10],t[11]),1162798199:(e,t)=>new hb.IfcSwitchingDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),812556717:(e,t)=>new hb.IfcTank(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3425753595:(e,t)=>new hb.IfcTrackElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3825984169:(e,t)=>new hb.IfcTransformer(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1620046519:(e,t)=>new hb.IfcTransportElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3026737570:(e,t)=>new hb.IfcTubeBundle(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3179687236:(e,t)=>new hb.IfcUnitaryControlElementType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),4292641817:(e,t)=>new hb.IfcUnitaryEquipment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4207607924:(e,t)=>new hb.IfcValve(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2391406946:(e,t)=>new hb.IfcWall(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3512223829:(e,t)=>new hb.IfcWallStandardCase(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4237592921:(e,t)=>new hb.IfcWasteTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3304561284:(e,t)=>new hb.IfcWindow(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]?new hb.IfcPositiveLengthMeasure(t[8].value):null,t[9]?new hb.IfcPositiveLengthMeasure(t[9].value):null,t[10],t[11],t[12]?new hb.IfcLabel(t[12].value):null),2874132201:(e,t)=>new hb.IfcActuatorType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),1634111441:(e,t)=>new hb.IfcAirTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),177149247:(e,t)=>new hb.IfcAirTerminalBox(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2056796094:(e,t)=>new hb.IfcAirToAirHeatRecovery(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3001207471:(e,t)=>new hb.IfcAlarmType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),325726236:(e,t)=>new hb.IfcAlignment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]),277319702:(e,t)=>new hb.IfcAudioVisualAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),753842376:(e,t)=>new hb.IfcBeam(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4196446775:(e,t)=>new hb.IfcBearing(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),32344328:(e,t)=>new hb.IfcBoiler(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3314249567:(e,t)=>new hb.IfcBorehole(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1095909175:(e,t)=>new hb.IfcBuildingElementProxy(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2938176219:(e,t)=>new hb.IfcBurner(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),635142910:(e,t)=>new hb.IfcCableCarrierFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3758799889:(e,t)=>new hb.IfcCableCarrierSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1051757585:(e,t)=>new hb.IfcCableFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4217484030:(e,t)=>new hb.IfcCableSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3999819293:(e,t)=>new hb.IfcCaissonFoundation(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3902619387:(e,t)=>new hb.IfcChiller(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),639361253:(e,t)=>new hb.IfcCoil(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3221913625:(e,t)=>new hb.IfcCommunicationsAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3571504051:(e,t)=>new hb.IfcCompressor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2272882330:(e,t)=>new hb.IfcCondenser(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),578613899:(e,t)=>new hb.IfcControllerType(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcIdentifier(t[4].value):null,t[5]?t[5].map((e=>new zb(e.value))):null,t[6]?t[6].map((e=>new zb(e.value))):null,t[7]?new hb.IfcLabel(t[7].value):null,t[8]?new hb.IfcLabel(t[8].value):null,t[9]),3460952963:(e,t)=>new hb.IfcConveyorSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4136498852:(e,t)=>new hb.IfcCooledBeam(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3640358203:(e,t)=>new hb.IfcCoolingTower(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4074379575:(e,t)=>new hb.IfcDamper(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3693000487:(e,t)=>new hb.IfcDistributionBoard(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1052013943:(e,t)=>new hb.IfcDistributionChamberElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),562808652:(e,t)=>new hb.IfcDistributionCircuit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new hb.IfcLabel(t[5].value):null,t[6]),1062813311:(e,t)=>new hb.IfcDistributionControlElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),342316401:(e,t)=>new hb.IfcDuctFitting(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3518393246:(e,t)=>new hb.IfcDuctSegment(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1360408905:(e,t)=>new hb.IfcDuctSilencer(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1904799276:(e,t)=>new hb.IfcElectricAppliance(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),862014818:(e,t)=>new hb.IfcElectricDistributionBoard(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3310460725:(e,t)=>new hb.IfcElectricFlowStorageDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),24726584:(e,t)=>new hb.IfcElectricFlowTreatmentDevice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),264262732:(e,t)=>new hb.IfcElectricGenerator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),402227799:(e,t)=>new hb.IfcElectricMotor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1003880860:(e,t)=>new hb.IfcElectricTimeControl(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3415622556:(e,t)=>new hb.IfcFan(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),819412036:(e,t)=>new hb.IfcFilter(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),1426591983:(e,t)=>new hb.IfcFireSuppressionTerminal(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),182646315:(e,t)=>new hb.IfcFlowInstrument(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),2680139844:(e,t)=>new hb.IfcGeomodel(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),1971632696:(e,t)=>new hb.IfcGeoslice(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null),2295281155:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnit(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4086658281:(e,t)=>new hb.IfcSensor(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),630975310:(e,t)=>new hb.IfcUnitaryControlElement(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),4288193352:(e,t)=>new hb.IfcActuator(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),3087945054:(e,t)=>new hb.IfcAlarm(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8]),25142252:(e,t)=>new hb.IfcController(e,new hb.IfcGloballyUniqueId(t[0].value),t[1]?new zb(t[1].value):null,t[2]?new hb.IfcLabel(t[2].value):null,t[3]?new hb.IfcText(t[3].value):null,t[4]?new hb.IfcLabel(t[4].value):null,t[5]?new zb(t[5].value):null,t[6]?new zb(t[6].value):null,t[7]?new hb.IfcIdentifier(t[7].value):null,t[8])},qb[3]={618182010:[912023232,3355820592],2879124712:[536804194,3752311538,3633395639],411424972:[602808272],4037036970:[2069777674,1387855156,3367102660,1560379544],1387855156:[2069777674],2859738748:[1981873012,775493141,2732653382,45288368,2614616156],2614616156:[45288368],1959218052:[2251480897,3368373690],1785450214:[3057273783],1466758467:[3843373140],4294318154:[1154170062,747523909,2655187982],3200245327:[3732053477,647927063,3452421091,3548104201,1040185647,2242383968],760658860:[2852063980,3708119e3,1838606355,164193824,552965576,2235152071,3303938423,1847252529,248100487],248100487:[1847252529],2235152071:[552965576],1507914824:[3404854881,3079605661,1303795690],1918398963:[2713554722,2889183280,3050246964,448429030],3701648758:[2624227202,388784114,178086475],2483315170:[3021840470,825690147,2405470396,3252649465,2691318326,931644368,2093928680,2044713172,2226359599],2226359599:[825690147,2405470396,3252649465,2691318326,931644368,2093928680,2044713172],677532197:[4006246654,2559016684,445594917,759155922,1983826977,1775413392,3727388367,3570813810,3510044353,2367409068,1105321065,776857604,3264961684,3285139300,3611470254,1210645708,3465909080,2133299955,1437953363,2552916305,1742049831,280115917,1640371178,2636378356,597895409,3905492369,616511568,626085974,1351298697,1878645084,846575682,1607154358,3303107099],2022622350:[1304840413],3119450353:[738692330,3800577675,1447204868,1300840506],2095639259:[673634403,2022407955],3958567839:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464,2529465313,182550632,2998442950,3632507154,1485152156,3150382593,1310608509,2705031697,3798115385],986844984:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612,2598011224,4165799628,2042790032,1580146022,3778827333,2802850158,3265635763,297599258,3710013099],1076942058:[3049322572,2830218821,1735638870,4240577450,3982875396],3377609919:[4142052618,3448662350],3008791417:[2347385850,315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,1229763772,2916149573,2387106220,2294589976,178912537,901063453,1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214,723233188,4124623270,4212018352,816062949,2485617015,823603102,1509187699,1123145078,1423911732,4022376103,2165702409,2067069095,603570806,1663979128,3425423356,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190,2453401579,2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756,1377556343,3958052878],2439245199:[1608871552,2943643501,148025276,1411181986,853536259,1437805879,770865208,539742890,3869604511],2341007311:[781010003,307848117,4186316022,1462361463,693640335,160246688,3818125796,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080,478536968,3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518,1680319473,Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433,1628702193,219451334],1054537805:[1042787934,1585845231,211053100,1236880293,2771591690,1549132990],3982875396:[1735638870,4240577450],2273995522:[2609359061,4219587988],2162789131:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697,609421318,3478079324],609421318:[2934153892,1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356,2525727697],2525727697:[1190533807,1597423693,1973038258,2473145415,2668620305,1595516126,3408363356],2830218821:[3049322572],846575682:[1878645084],626085974:[597895409,3905492369,616511568],1549132990:[2771591690],280115917:[3465909080,2133299955,1437953363,2552916305,1742049831],222769930:[1010789467],3101149627:[3413951693,3741457305],1377556343:[2519244187,1472233963,2759199220,2924175390,1008929658,803316827,1809719519,3406155212,3008276851,2556980723,2233826070,1029017970,476780140,3900360178,2205249479,2665983363,370225590,1907098498,2799835756],2799835756:[1907098498],3798115385:[2705031697],1310608509:[3150382593],3264961684:[776857604],370225590:[2205249479,2665983363],2889183280:[2713554722],3632507154:[2998442950],3900360178:[2233826070,1029017970,476780140],297599258:[2802850158,3265635763],2556980723:[3406155212,3008276851],1809719519:[803316827],3008276851:[3406155212],3448662350:[4142052618],2453401579:[315944413,374418227,2047409740,32440307,2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb,2601014836,1334484129,451544542,3626867408,4158566097,2798486643,2506170314,1416205885,3331915920,3486308946,3749851601,59481748,2059837836,1675464909,574549367,2581212453,3649129432,2736907675,669184980,1417489154,3124975700,4282788508,2839578677,1229763772,2916149573,2387106220,2294589976,178912537,901063453,1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584,2513912981,1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214,723233188,4124623270,4212018352,816062949,2485617015,823603102,1509187699,1123145078,1423911732,4022376103,2165702409,2067069095,603570806,1663979128,3425423356,2740243338,3125803723,4261334040,2004835150,3422422726,1520743889,4266656042,2604431987,125510826,1402838566,2713105998,2775532180,812098782,987898635,3590301190],3590301190:[987898635],812098782:[2713105998,2775532180],1437953363:[3465909080,2133299955],1402838566:[3422422726,1520743889,4266656042,2604431987,125510826],1520743889:[3422422726],1008929658:[1472233963,2759199220,2924175390],3079605661:[3404854881],219451334:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077,3888040117,653396225,103090709,3419103109,1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433,1628702193],2529465313:[572779678,1484403080,2835456948,2937912522,1383045692,2898889636,3207858831,2543172580,427810014,2715220739,3071757647,2770003689,2778083089,3615266464],2004835150:[3425423356,2740243338,3125803723,4261334040],1663979128:[603570806],2067069095:[1123145078,1423911732,4022376103,2165702409],3727388367:[4006246654,2559016684,445594917,759155922,1983826977,1775413392],3778827333:[4165799628,2042790032,1580146022],1775413392:[1983826977],2598011224:[2542286263,110355661,3650150729,941946838,2752243245,4166981789,871118103,3692461612],1680319473:[3875453745,3663146110,3521284610,492091185,1482703590,1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900,3357820518],3357820518:[1451395588,3566463478,1714330368,2963535650,512836454,336235671,3765753017,3967405729,1883228015,2090586900],1482703590:[3875453745,3663146110,3521284610,492091185],2090586900:[1883228015],3615266464:[2770003689,2778083089],478536968:[781010003,307848117,4186316022,1462361463,693640335,160246688,3818125796,1401173127,750771296,3268803585,2551354335,2565941209,1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856,826625072,1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036,1865459582,205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259,3939117080],823603102:[4212018352,816062949,2485617015],3692461612:[110355661,3650150729,941946838,2752243245,4166981789,871118103],723233188:[1290935644,1862484736,3737207727,807026263,2603310189,1635779807,1425443689,2147822146,1096409881,1260650574,3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953,2247615214],2473145415:[1973038258],1597423693:[1190533807],2513912981:[1356537516,1213902940,1935646853,4015995234,220341763,2777663545,683857671,167062518,2887950389,3454111270,2629017746,2827736869,4182860854,4124788165,2809605785,230924584],2247615214:[3243963512,1856042241,2804161546,477187591,2028607225,4234616927,2652556860,593015953],1260650574:[1096409881],230924584:[4124788165,2809605785],901063453:[2839578677,1229763772,2916149573,2387106220,2294589976,178912537],4282788508:[3124975700],1628702193:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495,3698973494,2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511,2347495698,3206491090,569719735,4024345920,3736923433],3736923433:[3206491090,569719735,4024345920],2347495698:[2481509218,3812236995,3893378262,710998568,2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223,339256511],3698973494:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380,2574617495],2736907675:[3649129432],4182860854:[683857671,167062518,2887950389,3454111270,2629017746,2827736869],574549367:[2059837836,1675464909],59481748:[1416205885,3331915920,3486308946,3749851601],3749851601:[3486308946],3331915920:[1416205885],1383045692:[2937912522],2485617015:[816062949],2574617495:[1525564444,4105962743,2185764099,4095615324,428585644,1815067380],3419103109:[653396225,103090709],2506170314:[1334484129,451544542,3626867408,4158566097,2798486643],2601014836:[2611217952,1704287377,2510884976,1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249,1260505505,2157484638,3113134337,699246055,42703149,1027922057,3649235739,2000195564,3497074424,782932809,2735484536,3381221214,1682466193,2485787929,3505215534,3388369263,590820931,Wb],593015953:[2028607225,4234616927,2652556860],339256511:[2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625,2590856083,2397081782,578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793,3256556792,3893394355,1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202,1626504194,2097647324,3651464721,3665877780,4095422895,1580310250,1268542332,4238390223],2777663545:[1213902940,1935646853,4015995234,220341763],477187591:[2804161546],2652556860:[4234616927],4238390223:[1580310250,1268542332],178912537:[2294589976],1425443689:[3737207727,807026263,2603310189,1635779807],3888040117:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822,2706460486,3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033,3293443760,4143007308,2296667514,488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714,2914609552,325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761,4208778838,2744685151,4148101412,Qb,2945172077],590820931:[2485787929,3505215534,3388369263],759155922:[445594917],2559016684:[4006246654],3967405729:[3566463478,1714330368,2963535650,512836454,336235671,3765753017],2945172077:[2744685151,4148101412,Qb],4208778838:[325726236,1154579445,kb,4021432810,1946335990,3041715199,Vb,1662888072,317615605,1545765605,4266260250,2176059722,25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466,1758889154,1674181508,1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379,3136571912,1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777,3544373492,1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064,1412071761],3521284610:[3875453745,3663146110],3939117080:[205026976,2857406711,4278684876,1027710054,1307041759,2495723537,1683148259],1307041759:[1027710054],1865459582:[1033248425,2655215786,3840914261,982818633,2728634034,919958153,4095574036],826625072:[1521410863,3523091289,3451746338,366585022,4122056220,1245217292,1441486842,427948657,279856033,3940055652,2802773753,886880790,3242617779,504942748,1638771189,2127690289,3190031847,4201705270,3678494232,3945020480,1204542856],1204542856:[3678494232,3945020480],1638771189:[504942748],2551354335:[160246688,3818125796,1401173127,750771296,3268803585],693640335:[781010003,307848117,4186316022,1462361463],3451746338:[1521410863,3523091289],3523091289:[1521410863],2914609552:[488727124,1060000209,3898045240,148013059,3827777499,3295246426,2559216714],1856042241:[3243963512],1862484736:[1290935644],1412071761:[1209101575,2853485674,463610769,Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112,2706606064],710998568:[2481509218,3812236995,3893378262],2706606064:[Gb,jb,963979645,550521510,1891881377,976884017,4228831410,1310830890,4031249490,644574406,146592293,3992365140,525669439,24185140,3124254112],3893378262:[3812236995],2735484536:[42703149,1027922057,3649235739,2000195564,3497074424,782932809],3544373492:[1621171031,3657597509,2082059205,1807405624,1004757350,682877961,1235345126,2757150158,603775116,3689010777],3136571912:[1975003073,734778138,4243806635,1179482911,2445595289,214636428,2218152070,3979015343,530289379],530289379:[2445595289,214636428,2218152070,3979015343],3689010777:[1235345126,2757150158,603775116],3979015343:[2218152070],699246055:[2157484638,3113134337],2387106220:[2839578677,1229763772,2916149573],3665877780:[2097647324,3651464721],2916149573:[1229763772],2296667514:[4143007308],1635779807:[2603310189],2887950389:[683857671,167062518],167062518:[683857671],1260505505:[1232101972,2461110595,1967976161,3593883385,3724593414,2571569899,544395925,2898700619,144952367,1136057603,15328376,3732776249],1626504194:[1909888760,3649138523,819618141,4009809668,1898987631,618700268,338393293,1039846685,2533589738,4074543187,2781568857,1469900589,2324767716,2893384427,1763565496,4017108033,514975943,506776471,710110818,3181161470,679976338,1893162501,2323601079,3203706013,1158309216,1306400036,1457835157,1916426348,4189326743,300633059,2197970202],3732776249:[544395925,2898700619,144952367,1136057603,15328376],15328376:[144952367,1136057603],2510884976:[2611217952,1704287377],2559216714:[488727124,1060000209,3898045240,148013059,3827777499,3295246426],3293443760:[3821786052,3342526732,4218914973,1028945134,4088093105,2904328755,3327091369,2382730787,1419761937,3895139033],1306400036:[3203706013,1158309216],3256556792:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832,2063403501,1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300,3849074793],3849074793:[1599208980,1810631287,2142170206,2030761528,3946677679,3009222698,4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348,2297155007,3277789161,5716631,1339347760,3760055223,2940368186,1285652485,3293546465,4231323485,1834744321,346874300,3850581409,2250791053,1482959167,869906466,2674252688,395041908,804291784,4288270099,3198132628,712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619,3907093117,1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988,2107101300],1758889154:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961,1945004755,1677625105,1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744,1876633798,2769231204,1620046519,840318589,1953115116,1971632696,2680139844,3314249567,2713699986,1594536857,4230923436,3493046030,413509423,1509553395,263784265,3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405,2827207264,1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555,1623761950,4123344466],1623761950:[1335981549,2979338954,2391383451,1530820697,33720170,979691226,3663046924,2347447852,Ob,2320036040,3027567501,377706215,2568555532,647756555],2590856083:[2635815018,39481116,3313531582,3956297820,3599934289,2572171363,2415094496,2281632017,3081323446,2310774935,964333572,2108223431,3948183225,2489546625],2107101300:[1217240411,1534661035,2954562838,335055490,2816379211,2301859152,2951183804,2188180465,231477066,1871374353,1911125066,1600972822,1692211062,1072016465,977012517,1806887404,1251058090,3390157468,3174744832,132023988],2853485674:[1209101575],807026263:[3737207727],24185140:[4031249490,644574406,146592293,3992365140,525669439],1310830890:[963979645,550521510,1891881377,976884017,4228831410],2827207264:[3101698114,3071239417,926996030,3588315303,1287392070,3651124850,2143335405],2143335405:[3651124850],1287392070:[3071239417,926996030,3588315303],3907093117:[712377611,2417008758,479945903,3961806047,1411407467,728799441,2315554128,1842657554,3815607619],3198132628:[869906466,2674252688,395041908,804291784,4288270099],1482959167:[346874300,3850581409,2250791053],1834744321:[3760055223,2940368186,1285652485,3293546465,4231323485],1339347760:[3277789161,5716631],2297155007:[4222183408,663422040,400855858,1532957894,3352864051,1133259667,3112655638,1305183839,1894708472,1768891740,2837617999,1950438474,1114901282,1770583370,1161773419,1051575348],3009222698:[1810631287,2142170206,2030761528,3946677679],263784265:[413509423,1509553395],4230923436:[1971632696,2680139844,3314249567,2713699986,1594536857],2706460486:[Hb,2515109513,562808652,3205830791,3862327254,1177604601,Ub,2254336722,2986769608,385403989,1252848954,2391368822],2176059722:[1662888072,317615605,1545765605,4266260250],3740093272:[3041715199],1946335990:[325726236,1154579445,kb,4021432810],3027567501:[979691226,3663046924,2347447852,Ob,2320036040],964333572:[2572171363,2415094496,2281632017,3081323446,2310774935],682877961:[1621171031,3657597509,2082059205,1807405624,1004757350],1179482911:[1975003073,734778138,4243806635],1004757350:[1807405624],214636428:[2445595289],1252848954:[385403989],3657597509:[1621171031],2254336722:[2515109513,562808652,3205830791,3862327254,1177604601,Ub],1953115116:[1620046519,840318589],1028945134:[3342526732,4218914973],1967976161:[1232101972,2461110595],2461110595:[1232101972],1136057603:[144952367],1876633798:[1095909175,4196446775,_b,3304561284,3512223829,Bb,3425753595,4252922144,331165859,Sb,1329646415,Nb,3283111854,xb,2262370178,3290496277,Lb,1383356374,2182337498,234836483,1073191201,2696325953,900683007,3798194928,3376911765,1077100507,Fb,3999819293,Mb,3426335179,3495092785,1973544240,1502416096,843113511,3296154744],3426335179:[3999819293,Mb],2063403501:[578613899,3001207471,2874132201,3179687236,1783015770,655969474,4037862832],1945004755:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315,1062813311,1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314,3040386961],3040386961:[1052013943,819412036,24726584,1360408905,4175244083,3508470533,1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018,2223149337,3310460725,Cb,707683696,3518393246,3460952963,4217484030,3758799889,3612865200,987401354,Db,3571504051,90941305,3132237377,342316401,1051757585,635142910,310824031,2176052936,4278956645,1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234,2058353004,402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492,1658829314],3205830791:[562808652],1077100507:[3798194928,3376911765],1658829314:[402227799,264262732,3640358203,4136498852,2272882330,Pb,3902619387,2938176219,32344328,2056796094,4292641817,3026737570,3825984169,3420628829,2474470126,2068733104,3319311131,484807127,3747195512,2814081492],2058353004:[1003880860,862014818,3693000487,4074379575,177149247,Rb,1162798199,738039164,2188021234],4278956645:[342316401,1051757585,635142910,310824031,2176052936],3132237377:[Db,3571504051,90941305],987401354:[3518393246,3460952963,4217484030,3758799889,3612865200],707683696:[3310460725,Cb],2223149337:[1426591983,1904799276,3221913625,277319702,1634111441,4237592921,1404847402,1999602285,991950508,3053780830,3694346114,2078563270,1437502449,1638804497,629592764,76236018],3508470533:[819412036,24726584,1360408905,4175244083],2713699986:[1971632696,2680139844,3314249567],1154579445:[325726236],2391406946:[3512223829],1062813311:[25142252,bb,4288193352,630975310,4086658281,2295281155,182646315]},Xb[3]={3630933823:[["HasExternalReference",1437805879,3,!0]],618182010:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],411424972:[["HasExternalReference",1437805879,3,!0]],130549933:[["HasExternalReferences",1437805879,3,!0],["ApprovedObjects",4095574036,5,!0],["ApprovedResources",2943643501,3,!0],["IsRelatedWith",3869604511,3,!0],["Relates",3869604511,2,!0]],1959218052:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],1466758467:[["HasCoordinateOperation",1785450214,0,!0]],602808272:[["HasExternalReference",1437805879,3,!0]],3200245327:[["ExternalReferenceForResources",1437805879,2,!0]],2242383968:[["ExternalReferenceForResources",1437805879,2,!0]],1040185647:[["ExternalReferenceForResources",1437805879,2,!0]],3548104201:[["ExternalReferenceForResources",1437805879,2,!0]],852622518:[["PartOfW",kb,9,!0],["PartOfV",kb,8,!0],["PartOfU",kb,7,!0],["HasIntersections",891718957,0,!0]],2655187982:[["LibraryInfoForObjects",3840914261,5,!0],["HasLibraryReferences",3452421091,5,!0]],3452421091:[["ExternalReferenceForResources",1437805879,2,!0],["LibraryRefForObjects",3840914261,5,!0]],760658860:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],248100487:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],3303938423:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1847252529:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialLayerSet",3303938423,0,!1]],2235152071:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],164193824:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],552965576:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialProfileSet",164193824,2,!1]],1507914824:[["AssociatedTo",2655215786,5,!0]],3368373690:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],3701648758:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],2251480897:[["HasExternalReferences",1437805879,3,!0],["PropertiesForConstraint",1608871552,2,!0]],4251960020:[["IsRelatedBy",1411181986,3,!0],["Relates",1411181986,2,!0],["Engages",101040310,1,!0]],2077209135:[["EngagedIn",101040310,0,!0]],2483315170:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2226359599:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3355820592:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],3958567839:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3843373140:[["HasCoordinateOperation",1785450214,0,!0]],986844984:[["HasExternalReferences",1437805879,3,!0]],3710013099:[["HasExternalReferences",1437805879,3,!0]],2044713172:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2093928680:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],931644368:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2691318326:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],3252649465:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],2405470396:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],825690147:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],1076942058:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3377609919:[["RepresentationsInContext",1076942058,0,!0]],3008791417:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1660063152:[["HasShapeAspects",867548509,4,!0],["MapUsage",2347385850,0,!0]],867548509:[["HasExternalReferences",1437805879,3,!0]],3982875396:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],4240577450:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2830218821:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],3958052878:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3049322572:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0]],626085974:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],912023232:[["OfPerson",2077209135,7,!0],["OfOrganization",4251960020,4,!0]],222769930:[["ToTexMap",3465909080,3,!1]],1010789467:[["ToTexMap",3465909080,3,!1]],3101149627:[["HasExternalReference",1437805879,3,!0]],1377556343:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1735638870:[["RepresentationMap",1660063152,1,!0],["LayerAssignments",2022622350,2,!0],["OfProductRepresentation",2095639259,2,!0],["OfShapeAspect",867548509,0,!0]],2799835756:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1907098498:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798115385:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1310608509:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2705031697:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],616511568:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3150382593:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],747523909:[["ClassificationForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],647927063:[["ExternalReferenceForResources",1437805879,2,!0],["ClassificationRefForObjects",919958153,5,!0],["HasReferences",647927063,3,!0]],1485152156:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],370225590:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3050246964:[["HasExternalReference",1437805879,3,!0]],2889183280:[["HasExternalReference",1437805879,3,!0]],2713554722:[["HasExternalReference",1437805879,3,!0]],3632507154:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1154170062:[["DocumentInfoForObjects",982818633,5,!0],["HasDocumentReferences",3732053477,4,!0],["IsPointedTo",770865208,3,!0],["IsPointer",770865208,2,!0]],3732053477:[["ExternalReferenceForResources",1437805879,2,!0],["DocumentRefForObjects",982818633,5,!0]],3900360178:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],476780140:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],297599258:[["HasExternalReferences",1437805879,3,!0]],2556980723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],1809719519:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],803316827:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3008276851:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],3448662350:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],2453401579:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4142052618:[["RepresentationsInContext",1076942058,0,!0],["HasSubContexts",4142052618,6,!0],["HasCoordinateOperation",1785450214,0,!0]],3590301190:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],178086475:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],812098782:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3905492369:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],3741457305:[["HasExternalReference",1437805879,3,!0]],1402838566:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],125510826:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2604431987:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4266656042:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1520743889:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3422422726:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],388784114:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],2624227202:[["PlacesObject",4208778838,5,!0],["ReferencedByPlacements",3701648758,0,!0]],1008929658:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2347385850:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1838606355:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["HasRepresentation",2022407955,3,!0],["IsRelatedWith",853536259,3,!0],["RelatesTo",853536259,2,!0]],3708119e3:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0],["ToMaterialConstituentSet",2852063980,2,!1]],2852063980:[["AssociatedTo",2655215786,5,!0],["HasExternalReferences",1437805879,3,!0],["HasProperties",3265635763,3,!0]],1303795690:[["AssociatedTo",2655215786,5,!0]],3079605661:[["AssociatedTo",2655215786,5,!0]],3404854881:[["AssociatedTo",2655215786,5,!0]],3265635763:[["HasExternalReferences",1437805879,3,!0]],2998442950:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],219451334:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0]],182550632:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2665983363:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1029017970:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2529465313:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2519244187:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3021840470:[["HasExternalReferences",1437805879,3,!0],["PartOfComplex",3021840470,2,!0]],597895409:[["IsMappedBy",280115917,0,!0],["UsedInStyles",1351298697,0,!0]],2004835150:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1663979128:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2067069095:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2165702409:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4022376103:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1423911732:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2924175390:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2775532180:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3778827333:[["HasExternalReferences",1437805879,3,!0]],673634403:[["ShapeOfProduct",4208778838,6,!0],["HasShapeAspects",867548509,4,!0]],2802850158:[["HasExternalReferences",1437805879,3,!0]],2598011224:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1680319473:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],3357820518:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1482703590:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0]],2090586900:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3615266464:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3413951693:[["HasExternalReference",1437805879,3,!0]],1580146022:[["HasExternalReferences",1437805879,3,!0]],2778083089:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2042790032:[["HasExternalReferences",1437805879,3,!0]],4165799628:[["HasExternalReferences",1437805879,3,!0]],1509187699:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],823603102:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],4124623270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3692461612:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],723233188:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2233826070:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2513912981:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2247615214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260650574:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1096409881:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],230924584:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3071757647:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],901063453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4282788508:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124975700:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2715220739:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1628702193:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0]],3736923433:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2347495698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3698973494:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],427810014:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1417489154:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2759199220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2543172580:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3406155212:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasTextureMaps",2552916305,2,!0]],669184980:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3207858831:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4261334040:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3125803723:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2740243338:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3425423356:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2736907675:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4182860854:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2581212453:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2713105998:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2898889636:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],1123145078:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],574549367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1675464909:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2059837836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],59481748:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3749851601:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3486308946:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3331915920:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1416205885:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1383045692:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2205249479:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2542286263:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2485617015:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2574617495:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],3419103109:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],1815067380:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2506170314:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2147822146:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2601014836:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2827736869:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2629017746:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4212018352:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],32440307:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],593015953:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1472233963:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1883228015:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],339256511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2777663545:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2835456948:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],4024345920:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],477187591:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2804161546:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2047409740:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],374418227:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],315944413:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2652556860:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4238390223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1268542332:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4095422895:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],987898635:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1484403080:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],178912537:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0],["HasTexCoords",222769930,1,!0]],2294589976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["ToFaceSet",2839578677,2,!0],["HasTexCoords",222769930,1,!0]],572779678:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],428585644:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1281925730:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1425443689:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3888040117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0]],590820931:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3388369263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3505215534:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2485787929:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1682466193:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],603570806:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],220341763:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3381221214:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3967405729:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],569719735:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2945172077:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],4208778838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],103090709:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],653396225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDefinedBy",4186316022,4,!0],["Declares",2565941209,4,!0]],871118103:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],4166981789:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],2752243245:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],941946838:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],1451395588:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],492091185:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["Defines",307848117,5,!0]],3650150729:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],110355661:[["HasExternalReferences",1437805879,3,!0],["PartOfPset",1451395588,4,!0],["PropertyForDependance",148025276,2,!0],["PropertyDependsOn",148025276,3,!0],["PartOfComplex",2542286263,3,!0],["HasConstraints",1608871552,3,!0],["HasApprovals",2943643501,2,!0]],3521284610:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],2770003689:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],2798486643:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3454111270:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3765753017:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3523091289:[["InnerBoundaries",3523091289,9,!0]],1521410863:[["InnerBoundaries",3523091289,9,!0],["Corresponds",1521410863,10,!0]],816062949:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["UsingCurves",3732776249,0,!0]],2914609552:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1856042241:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3243963512:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4158566097:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3626867408:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1862484736:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1290935644:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1356537516:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3663146110:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],1412071761:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],710998568:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2706606064:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],3893378262:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],463610769:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2481509218:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],451544542:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4015995234:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2735484536:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3544373492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],3136571912:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0]],530289379:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],3689010777:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],3979015343:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2218152070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],603775116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],4095615324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],699246055:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2028607225:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2809605785:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4124788165:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1580310250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3473067441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],3206491090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["OperatesOn",4278684876,6,!0]],2387106220:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],782932809:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1935646853:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3665877780:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2916149573:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],1229763772:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3651464721:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],336235671:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],512836454:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2296667514:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],1635779807:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2603310189:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1674181508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0]],2887950389:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],167062518:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1334484129:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649129432:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1260505505:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3124254112:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1626504194:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2197970202:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2937912522:[["HasExternalReference",1437805879,3,!0],["HasProperties",2802850158,3,!0]],3893394355:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3497074424:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],300633059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3875453745:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["PartOfComplexTemplate",3875453745,6,!0],["PartOfPsetTemplate",492091185,6,!0]],3732776249:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],15328376:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2510884976:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2185764099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],4105962743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],1525564444:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ResourceOf",205026976,6,!0]],2559216714:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3293443760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],2000195564:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3895139033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1419761937:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4189326743:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1916426348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3295246426:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1457835157:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1213902940:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1306400036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4234616927:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3256556792:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3849074793:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2963535650:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],1714330368:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],2323601079:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1758889154:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4123344466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2397081782:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1623761950:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2590856083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1704287377:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2107101300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],132023988:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3174744832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3390157468:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4148101412:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2853485674:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],807026263:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3737207727:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],24185140:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1310830890:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],4228831410:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],647756555:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2489546625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2827207264:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2143335405:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["ProjectsElements",750771296,5,!1]],1287392070:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],3907093117:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3198132628:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3815607619:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1482959167:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1834744321:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1339347760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2297155007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3009222698:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1893162501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],263784265:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1509553395:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3493046030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4230923436:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1594536857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2898700619:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2706460486:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],1251058090:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1806887404:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2568555532:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3948183225:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2571569899:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3946677679:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3113134337:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2391368822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],4288270099:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],679976338:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3827777499:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1051575348:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1161773419:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2176059722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1770583370:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],525669439:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],976884017:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],377706215:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2108223431:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1114901282:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3181161470:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1950438474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],710110818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],977012517:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],506776471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4143007308:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsActingUpon",1683148259,6,!0]],3588315303:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1],["HasFillings",3940055652,4,!0]],2837617999:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],514975943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2382730787:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3566463478:[["HasContext",2565941209,5,!0],["HasAssociations",1865459582,4,!0],["DefinesType",1628702193,5,!0],["IsDefinedBy",307848117,4,!0],["DefinesOccurrence",4186316022,5,!0]],3327091369:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1158309216:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],804291784:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4231323485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4017108033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2839578677:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0],["HasColours",3570813810,0,!0],["HasTextures",1437953363,1,!0]],3724593414:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3740093272:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],1946335990:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],2744685151:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsPredecessorTo",4122056220,4,!0],["IsSuccessorFrom",4122056220,5,!0],["OperatesOn",4278684876,6,!0]],2904328755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3651124850:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["ProjectsElements",750771296,5,!1]],1842657554:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2250791053:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1763565496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2893384427:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3992365140:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],1891881377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2324767716:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1469900589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],683857671:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4021432810:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],3027567501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],964333572:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2320036040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2310774935:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],146592293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],550521510:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2781568857:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1768891740:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2157484638:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3649235739:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],544395925:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1027922057:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4074543187:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],33720170:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3599934289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1894708472:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],42703149:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],4097777520:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2533589738:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1072016465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3856911033:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasCoverings",2802773753,4,!0],["BoundedBy",3451746338,4,!0]],1305183839:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3812236995:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3112655638:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1039846685:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],338393293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],682877961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1179482911:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1004757350:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],4243806635:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],214636428:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2445595289:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectedBy",1638771189,4,!0]],2757150158:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1807405624:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1252848954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],2082059205:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],734778138:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],1235345126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],2986769608:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ResultGroupFor",2515109513,8,!0]],3657597509:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1975003073:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedStructuralActivity",2127690289,4,!0],["ConnectsStructuralMembers",1638771189,5,!0]],148013059:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],3101698114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["AdheresToElement",3818125796,5,!1]],2315554128:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2254336722:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],413509423:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],5716631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3824725483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2347447852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3081323446:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3663046924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2281632017:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2415094496:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],618700268:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1692211062:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2097647324:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1953115116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3593883385:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1600972822:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1911125066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],728799441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],840318589:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1530820697:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3956297820:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2391383451:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3313531582:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2769231204:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],926996030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],1898987631:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1133259667:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4009809668:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4088093105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1028945134:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],4218914973:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],3342526732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1033361043:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],3821786052:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["Controls",2495723537,6,!0]],1411407467:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3352864051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1871374353:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4266260250:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1545765605:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],317615605:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],1662888072:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0]],3460190687:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0]],1532957894:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1967976161:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],2461110595:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],819618141:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3649138523:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],231477066:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1136057603:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],644574406:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],963979645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],4031249490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0]],2979338954:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],39481116:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1909888760:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1177604601:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],1876633798:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3862327254:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],2188180465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],395041908:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3293546465:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2674252688:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1285652485:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3203706013:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2951183804:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3296154744:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2611217952:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],1677625105:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2301859152:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],843113511:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],400855858:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3850581409:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2816379211:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3898045240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],1060000209:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],488727124:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ResourceOf",205026976,6,!0]],2940368186:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],335055490:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2954562838:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1502416096:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1973544240:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["CoversSpaces",2802773753,5,!0],["CoversElements",886880790,5,!0]],3495092785:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3961806047:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3426335179:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1335981549:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2635815018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],479945903:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1599208980:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2063403501:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1945004755:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0]],3040386961:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3041715199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedIn",4201705270,4,!0],["ConnectedFrom",3190031847,5,!0],["ConnectedTo",3190031847,4,!0]],3205830791:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],395920057:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],869906466:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3760055223:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2030761528:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3071239417:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["VoidsElements",1401173127,5,!1]],1077100507:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3376911765:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],663422040:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2417008758:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3277789161:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2142170206:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1534661035:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1217240411:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],712377611:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1658829314:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2814081492:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3747195512:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],484807127:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1209101575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainsElements",3242617779,5,!0],["ServicedBySystems",366585022,5,!0],["ReferencesElements",1245217292,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["BoundedBy",3451746338,4,!0]],346874300:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1810631287:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4222183408:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2058353004:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4278956645:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4037862832:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2188021234:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3132237377:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],987401354:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],707683696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2223149337:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3508470533:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],900683007:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2713699986:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3009204131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],3319311131:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2068733104:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4175244083:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2176052936:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2696325953:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],76236018:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],629592764:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1154579445:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],1638804497:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1437502449:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1073191201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2078563270:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],234836483:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2474470126:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2182337498:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],144952367:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3694346114:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1383356374:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1687234759:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],310824031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3612865200:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3171933400:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],738039164:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],655969474:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],90941305:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3290496277:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2262370178:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3024970846:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3283111854:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1232101972:[["LayerAssignment",2022622350,2,!0],["StyledByItem",3958052878,0,!0]],3798194928:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],979691226:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2572171363:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],2016517767:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3053780830:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1783015770:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1329646415:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],991950508:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1529196076:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3420628829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1999602285:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1404847402:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],331165859:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4252922144:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2515109513:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],385403989:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["SourceOfResultGroup",2986769608,6,!0],["LoadGroupFor",2515109513,7,!0]],1621171031:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["AssignedToStructuralItem",2127690289,5,!0]],1162798199:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],812556717:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3425753595:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3825984169:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1620046519:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3026737570:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3179687236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],4292641817:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4207607924:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2391406946:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3512223829:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4237592921:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3304561284:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2874132201:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],1634111441:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],177149247:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2056796094:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3001207471:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],325726236:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["ContainedInStructure",3242617779,4,!0],["Positions",1441486842,4,!0]],277319702:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],753842376:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],4196446775:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],32344328:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3314249567:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1095909175:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2938176219:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],635142910:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3758799889:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1051757585:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4217484030:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3999819293:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],3902619387:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],639361253:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3221913625:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3571504051:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],2272882330:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],578613899:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["Types",781010003,5,!0],["ReferencedBy",2857406711,6,!0]],3460952963:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4136498852:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3640358203:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],4074379575:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3693000487:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1052013943:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],562808652:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["IsGroupedBy",1307041759,6,!0],["ReferencedInStructures",1245217292,4,!0],["ServicesBuildings",366585022,4,!0],["ServicesFacilities",1245217292,4,!0]],1062813311:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],342316401:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3518393246:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1360408905:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1904799276:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],862014818:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3310460725:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],24726584:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],264262732:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],402227799:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1003880860:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],3415622556:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],819412036:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],1426591983:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["HasControlElements",279856033,5,!0]],182646315:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],2680139844:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],1971632696:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0]],2295281155:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4086658281:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],630975310:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],4288193352:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],3087945054:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]],25142252:[["HasAssignments",3939117080,4,!0],["Nests",3268803585,5,!0],["IsNestedBy",3268803585,4,!0],["HasContext",2565941209,5,!0],["IsDecomposedBy",160246688,4,!0],["Decomposes",160246688,5,!0],["HasAssociations",1865459582,4,!0],["IsDeclaredBy",1462361463,4,!0],["Declares",1462361463,5,!0],["IsTypedBy",781010003,4,!0],["IsDefinedBy",4186316022,4,!0],["ReferencedBy",2857406711,6,!0],["PositionedRelativeTo",1441486842,5,!0],["ReferencedInStructures",1245217292,4,!0],["FillsVoids",3940055652,5,!0],["ConnectedTo",1204542856,5,!0],["IsInterferedByElements",427948657,5,!0],["InterferesElements",427948657,4,!0],["HasProjections",750771296,4,!0],["HasOpenings",1401173127,4,!0],["IsConnectionRealization",3678494232,7,!0],["ProvidesBoundaries",3451746338,5,!0],["ConnectedFrom",1204542856,6,!0],["ContainedInStructure",3242617779,4,!0],["HasCoverings",886880790,4,!0],["HasSurfaceFeatures",3818125796,4,!0],["HasPorts",4201705270,5,!0],["AssignedToFlowElement",279856033,4,!0]]},Jb[3]={3630933823:(e,t)=>new hb.IfcActorRole(e,t[0],t[1],t[2]),618182010:(e,t)=>new hb.IfcAddress(e,t[0],t[1],t[2]),2879124712:(e,t)=>new hb.IfcAlignmentParameterSegment(e,t[0],t[1]),3633395639:(e,t)=>new hb.IfcAlignmentVerticalSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639542469:(e,t)=>new hb.IfcApplication(e,t[0],t[1],t[2],t[3]),411424972:(e,t)=>new hb.IfcAppliedValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),130549933:(e,t)=>new hb.IfcApproval(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4037036970:(e,t)=>new hb.IfcBoundaryCondition(e,t[0]),1560379544:(e,t)=>new hb.IfcBoundaryEdgeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3367102660:(e,t)=>new hb.IfcBoundaryFaceCondition(e,t[0],t[1],t[2],t[3]),1387855156:(e,t)=>new hb.IfcBoundaryNodeCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2069777674:(e,t)=>new hb.IfcBoundaryNodeConditionWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2859738748:(e,t)=>new hb.IfcConnectionGeometry(e),2614616156:(e,t)=>new hb.IfcConnectionPointGeometry(e,t[0],t[1]),2732653382:(e,t)=>new hb.IfcConnectionSurfaceGeometry(e,t[0],t[1]),775493141:(e,t)=>new hb.IfcConnectionVolumeGeometry(e,t[0],t[1]),1959218052:(e,t)=>new hb.IfcConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1785450214:(e,t)=>new hb.IfcCoordinateOperation(e,t[0],t[1]),1466758467:(e,t)=>new hb.IfcCoordinateReferenceSystem(e,t[0],t[1],t[2],t[3]),602808272:(e,t)=>new hb.IfcCostValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1765591967:(e,t)=>new hb.IfcDerivedUnit(e,t[0],t[1],t[2],t[3]),1045800335:(e,t)=>new hb.IfcDerivedUnitElement(e,t[0],t[1]),2949456006:(e,t)=>new hb.IfcDimensionalExponents(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4294318154:(e,t)=>new hb.IfcExternalInformation(e),3200245327:(e,t)=>new hb.IfcExternalReference(e,t[0],t[1],t[2]),2242383968:(e,t)=>new hb.IfcExternallyDefinedHatchStyle(e,t[0],t[1],t[2]),1040185647:(e,t)=>new hb.IfcExternallyDefinedSurfaceStyle(e,t[0],t[1],t[2]),3548104201:(e,t)=>new hb.IfcExternallyDefinedTextFont(e,t[0],t[1],t[2]),852622518:(e,t)=>new hb.IfcGridAxis(e,t[0],t[1],t[2]),3020489413:(e,t)=>new hb.IfcIrregularTimeSeriesValue(e,t[0],t[1]),2655187982:(e,t)=>new hb.IfcLibraryInformation(e,t[0],t[1],t[2],t[3],t[4],t[5]),3452421091:(e,t)=>new hb.IfcLibraryReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),4162380809:(e,t)=>new hb.IfcLightDistributionData(e,t[0],t[1],t[2]),1566485204:(e,t)=>new hb.IfcLightIntensityDistribution(e,t[0],t[1]),3057273783:(e,t)=>new hb.IfcMapConversion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1847130766:(e,t)=>new hb.IfcMaterialClassificationRelationship(e,t[0],t[1]),760658860:(e,t)=>new hb.IfcMaterialDefinition(e),248100487:(e,t)=>new hb.IfcMaterialLayer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3303938423:(e,t)=>new hb.IfcMaterialLayerSet(e,t[0],t[1],t[2]),1847252529:(e,t)=>new hb.IfcMaterialLayerWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2199411900:(e,t)=>new hb.IfcMaterialList(e,t[0]),2235152071:(e,t)=>new hb.IfcMaterialProfile(e,t[0],t[1],t[2],t[3],t[4],t[5]),164193824:(e,t)=>new hb.IfcMaterialProfileSet(e,t[0],t[1],t[2],t[3]),552965576:(e,t)=>new hb.IfcMaterialProfileWithOffsets(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1507914824:(e,t)=>new hb.IfcMaterialUsageDefinition(e),2597039031:(e,t)=>new hb.IfcMeasureWithUnit(e,t[0],t[1]),3368373690:(e,t)=>new hb.IfcMetric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2706619895:(e,t)=>new hb.IfcMonetaryUnit(e,t[0]),1918398963:(e,t)=>new hb.IfcNamedUnit(e,t[0],t[1]),3701648758:(e,t)=>new hb.IfcObjectPlacement(e,t[0]),2251480897:(e,t)=>new hb.IfcObjective(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4251960020:(e,t)=>new hb.IfcOrganization(e,t[0],t[1],t[2],t[3],t[4]),1207048766:(e,t)=>new hb.IfcOwnerHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2077209135:(e,t)=>new hb.IfcPerson(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),101040310:(e,t)=>new hb.IfcPersonAndOrganization(e,t[0],t[1],t[2]),2483315170:(e,t)=>new hb.IfcPhysicalQuantity(e,t[0],t[1]),2226359599:(e,t)=>new hb.IfcPhysicalSimpleQuantity(e,t[0],t[1],t[2]),3355820592:(e,t)=>new hb.IfcPostalAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),677532197:(e,t)=>new hb.IfcPresentationItem(e),2022622350:(e,t)=>new hb.IfcPresentationLayerAssignment(e,t[0],t[1],t[2],t[3]),1304840413:(e,t)=>new hb.IfcPresentationLayerWithStyle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3119450353:(e,t)=>new hb.IfcPresentationStyle(e,t[0]),2095639259:(e,t)=>new hb.IfcProductRepresentation(e,t[0],t[1],t[2]),3958567839:(e,t)=>new hb.IfcProfileDef(e,t[0],t[1]),3843373140:(e,t)=>new hb.IfcProjectedCRS(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),986844984:(e,t)=>new hb.IfcPropertyAbstraction(e),3710013099:(e,t)=>new hb.IfcPropertyEnumeration(e,t[0],t[1],t[2]),2044713172:(e,t)=>new hb.IfcQuantityArea(e,t[0],t[1],t[2],t[3],t[4]),2093928680:(e,t)=>new hb.IfcQuantityCount(e,t[0],t[1],t[2],t[3],t[4]),931644368:(e,t)=>new hb.IfcQuantityLength(e,t[0],t[1],t[2],t[3],t[4]),2691318326:(e,t)=>new hb.IfcQuantityNumber(e,t[0],t[1],t[2],t[3],t[4]),3252649465:(e,t)=>new hb.IfcQuantityTime(e,t[0],t[1],t[2],t[3],t[4]),2405470396:(e,t)=>new hb.IfcQuantityVolume(e,t[0],t[1],t[2],t[3],t[4]),825690147:(e,t)=>new hb.IfcQuantityWeight(e,t[0],t[1],t[2],t[3],t[4]),3915482550:(e,t)=>new hb.IfcRecurrencePattern(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2433181523:(e,t)=>new hb.IfcReference(e,t[0],t[1],t[2],t[3],t[4]),1076942058:(e,t)=>new hb.IfcRepresentation(e,t[0],t[1],t[2],t[3]),3377609919:(e,t)=>new hb.IfcRepresentationContext(e,t[0],t[1]),3008791417:(e,t)=>new hb.IfcRepresentationItem(e),1660063152:(e,t)=>new hb.IfcRepresentationMap(e,t[0],t[1]),2439245199:(e,t)=>new hb.IfcResourceLevelRelationship(e,t[0],t[1]),2341007311:(e,t)=>new hb.IfcRoot(e,t[0],t[1],t[2],t[3]),448429030:(e,t)=>new hb.IfcSIUnit(e,t[0],t[1],t[2],t[3]),1054537805:(e,t)=>new hb.IfcSchedulingTime(e,t[0],t[1],t[2]),867548509:(e,t)=>new hb.IfcShapeAspect(e,t[0],t[1],t[2],t[3],t[4]),3982875396:(e,t)=>new hb.IfcShapeModel(e,t[0],t[1],t[2],t[3]),4240577450:(e,t)=>new hb.IfcShapeRepresentation(e,t[0],t[1],t[2],t[3]),2273995522:(e,t)=>new hb.IfcStructuralConnectionCondition(e,t[0]),2162789131:(e,t)=>new hb.IfcStructuralLoad(e,t[0]),3478079324:(e,t)=>new hb.IfcStructuralLoadConfiguration(e,t[0],t[1],t[2]),609421318:(e,t)=>new hb.IfcStructuralLoadOrResult(e,t[0]),2525727697:(e,t)=>new hb.IfcStructuralLoadStatic(e,t[0]),3408363356:(e,t)=>new hb.IfcStructuralLoadTemperature(e,t[0],t[1],t[2],t[3]),2830218821:(e,t)=>new hb.IfcStyleModel(e,t[0],t[1],t[2],t[3]),3958052878:(e,t)=>new hb.IfcStyledItem(e,t[0],t[1],t[2]),3049322572:(e,t)=>new hb.IfcStyledRepresentation(e,t[0],t[1],t[2],t[3]),2934153892:(e,t)=>new hb.IfcSurfaceReinforcementArea(e,t[0],t[1],t[2],t[3]),1300840506:(e,t)=>new hb.IfcSurfaceStyle(e,t[0],t[1],t[2]),3303107099:(e,t)=>new hb.IfcSurfaceStyleLighting(e,t[0],t[1],t[2],t[3]),1607154358:(e,t)=>new hb.IfcSurfaceStyleRefraction(e,t[0],t[1]),846575682:(e,t)=>new hb.IfcSurfaceStyleShading(e,t[0],t[1]),1351298697:(e,t)=>new hb.IfcSurfaceStyleWithTextures(e,t[0]),626085974:(e,t)=>new hb.IfcSurfaceTexture(e,t[0],t[1],t[2],t[3],t[4]),985171141:(e,t)=>new hb.IfcTable(e,t[0],t[1],t[2]),2043862942:(e,t)=>new hb.IfcTableColumn(e,t[0],t[1],t[2],t[3],t[4]),531007025:(e,t)=>new hb.IfcTableRow(e,t[0],t[1]),1549132990:(e,t)=>new hb.IfcTaskTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),2771591690:(e,t)=>new hb.IfcTaskTimeRecurring(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20]),912023232:(e,t)=>new hb.IfcTelecomAddress(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1447204868:(e,t)=>new hb.IfcTextStyle(e,t[0],t[1],t[2],t[3],t[4]),2636378356:(e,t)=>new hb.IfcTextStyleForDefinedFont(e,t[0],t[1]),1640371178:(e,t)=>new hb.IfcTextStyleTextModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),280115917:(e,t)=>new hb.IfcTextureCoordinate(e,t[0]),1742049831:(e,t)=>new hb.IfcTextureCoordinateGenerator(e,t[0],t[1],t[2]),222769930:(e,t)=>new hb.IfcTextureCoordinateIndices(e,t[0],t[1]),1010789467:(e,t)=>new hb.IfcTextureCoordinateIndicesWithVoids(e,t[0],t[1],t[2]),2552916305:(e,t)=>new hb.IfcTextureMap(e,t[0],t[1],t[2]),1210645708:(e,t)=>new hb.IfcTextureVertex(e,t[0]),3611470254:(e,t)=>new hb.IfcTextureVertexList(e,t[0]),1199560280:(e,t)=>new hb.IfcTimePeriod(e,t[0],t[1]),3101149627:(e,t)=>new hb.IfcTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),581633288:(e,t)=>new hb.IfcTimeSeriesValue(e,t[0]),1377556343:(e,t)=>new hb.IfcTopologicalRepresentationItem(e),1735638870:(e,t)=>new hb.IfcTopologyRepresentation(e,t[0],t[1],t[2],t[3]),180925521:(e,t)=>new hb.IfcUnitAssignment(e,t[0]),2799835756:(e,t)=>new hb.IfcVertex(e),1907098498:(e,t)=>new hb.IfcVertexPoint(e,t[0]),891718957:(e,t)=>new hb.IfcVirtualGridIntersection(e,t[0],t[1]),1236880293:(e,t)=>new hb.IfcWorkTime(e,t[0],t[1],t[2],t[3],t[4],t[5]),3752311538:(e,t)=>new hb.IfcAlignmentCantSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),536804194:(e,t)=>new hb.IfcAlignmentHorizontalSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3869604511:(e,t)=>new hb.IfcApprovalRelationship(e,t[0],t[1],t[2],t[3]),3798115385:(e,t)=>new hb.IfcArbitraryClosedProfileDef(e,t[0],t[1],t[2]),1310608509:(e,t)=>new hb.IfcArbitraryOpenProfileDef(e,t[0],t[1],t[2]),2705031697:(e,t)=>new hb.IfcArbitraryProfileDefWithVoids(e,t[0],t[1],t[2],t[3]),616511568:(e,t)=>new hb.IfcBlobTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3150382593:(e,t)=>new hb.IfcCenterLineProfileDef(e,t[0],t[1],t[2],t[3]),747523909:(e,t)=>new hb.IfcClassification(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),647927063:(e,t)=>new hb.IfcClassificationReference(e,t[0],t[1],t[2],t[3],t[4],t[5]),3285139300:(e,t)=>new hb.IfcColourRgbList(e,t[0]),3264961684:(e,t)=>new hb.IfcColourSpecification(e,t[0]),1485152156:(e,t)=>new hb.IfcCompositeProfileDef(e,t[0],t[1],t[2],t[3]),370225590:(e,t)=>new hb.IfcConnectedFaceSet(e,t[0]),1981873012:(e,t)=>new hb.IfcConnectionCurveGeometry(e,t[0],t[1]),45288368:(e,t)=>new hb.IfcConnectionPointEccentricity(e,t[0],t[1],t[2],t[3],t[4]),3050246964:(e,t)=>new hb.IfcContextDependentUnit(e,t[0],t[1],t[2]),2889183280:(e,t)=>new hb.IfcConversionBasedUnit(e,t[0],t[1],t[2],t[3]),2713554722:(e,t)=>new hb.IfcConversionBasedUnitWithOffset(e,t[0],t[1],t[2],t[3],t[4]),539742890:(e,t)=>new hb.IfcCurrencyRelationship(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3800577675:(e,t)=>new hb.IfcCurveStyle(e,t[0],t[1],t[2],t[3],t[4]),1105321065:(e,t)=>new hb.IfcCurveStyleFont(e,t[0],t[1]),2367409068:(e,t)=>new hb.IfcCurveStyleFontAndScaling(e,t[0],t[1],t[2]),3510044353:(e,t)=>new hb.IfcCurveStyleFontPattern(e,t[0],t[1]),3632507154:(e,t)=>new hb.IfcDerivedProfileDef(e,t[0],t[1],t[2],t[3],t[4]),1154170062:(e,t)=>new hb.IfcDocumentInformation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),770865208:(e,t)=>new hb.IfcDocumentInformationRelationship(e,t[0],t[1],t[2],t[3],t[4]),3732053477:(e,t)=>new hb.IfcDocumentReference(e,t[0],t[1],t[2],t[3],t[4]),3900360178:(e,t)=>new hb.IfcEdge(e,t[0],t[1]),476780140:(e,t)=>new hb.IfcEdgeCurve(e,t[0],t[1],t[2],t[3]),211053100:(e,t)=>new hb.IfcEventTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),297599258:(e,t)=>new hb.IfcExtendedProperties(e,t[0],t[1],t[2]),1437805879:(e,t)=>new hb.IfcExternalReferenceRelationship(e,t[0],t[1],t[2],t[3]),2556980723:(e,t)=>new hb.IfcFace(e,t[0]),1809719519:(e,t)=>new hb.IfcFaceBound(e,t[0],t[1]),803316827:(e,t)=>new hb.IfcFaceOuterBound(e,t[0],t[1]),3008276851:(e,t)=>new hb.IfcFaceSurface(e,t[0],t[1],t[2]),4219587988:(e,t)=>new hb.IfcFailureConnectionCondition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),738692330:(e,t)=>new hb.IfcFillAreaStyle(e,t[0],t[1],t[2]),3448662350:(e,t)=>new hb.IfcGeometricRepresentationContext(e,t[0],t[1],t[2],t[3],t[4],t[5]),2453401579:(e,t)=>new hb.IfcGeometricRepresentationItem(e),4142052618:(e,t)=>new hb.IfcGeometricRepresentationSubContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3590301190:(e,t)=>new hb.IfcGeometricSet(e,t[0]),178086475:(e,t)=>new hb.IfcGridPlacement(e,t[0],t[1],t[2]),812098782:(e,t)=>new hb.IfcHalfSpaceSolid(e,t[0],t[1]),3905492369:(e,t)=>new hb.IfcImageTexture(e,t[0],t[1],t[2],t[3],t[4],t[5]),3570813810:(e,t)=>new hb.IfcIndexedColourMap(e,t[0],t[1],t[2],t[3]),1437953363:(e,t)=>new hb.IfcIndexedTextureMap(e,t[0],t[1],t[2]),2133299955:(e,t)=>new hb.IfcIndexedTriangleTextureMap(e,t[0],t[1],t[2],t[3]),3741457305:(e,t)=>new hb.IfcIrregularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1585845231:(e,t)=>new hb.IfcLagTime(e,t[0],t[1],t[2],t[3],t[4]),1402838566:(e,t)=>new hb.IfcLightSource(e,t[0],t[1],t[2],t[3]),125510826:(e,t)=>new hb.IfcLightSourceAmbient(e,t[0],t[1],t[2],t[3]),2604431987:(e,t)=>new hb.IfcLightSourceDirectional(e,t[0],t[1],t[2],t[3],t[4]),4266656042:(e,t)=>new hb.IfcLightSourceGoniometric(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1520743889:(e,t)=>new hb.IfcLightSourcePositional(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3422422726:(e,t)=>new hb.IfcLightSourceSpot(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),388784114:(e,t)=>new hb.IfcLinearPlacement(e,t[0],t[1],t[2]),2624227202:(e,t)=>new hb.IfcLocalPlacement(e,t[0],t[1]),1008929658:(e,t)=>new hb.IfcLoop(e),2347385850:(e,t)=>new hb.IfcMappedItem(e,t[0],t[1]),1838606355:(e,t)=>new hb.IfcMaterial(e,t[0],t[1],t[2]),3708119e3:(e,t)=>new hb.IfcMaterialConstituent(e,t[0],t[1],t[2],t[3],t[4]),2852063980:(e,t)=>new hb.IfcMaterialConstituentSet(e,t[0],t[1],t[2]),2022407955:(e,t)=>new hb.IfcMaterialDefinitionRepresentation(e,t[0],t[1],t[2],t[3]),1303795690:(e,t)=>new hb.IfcMaterialLayerSetUsage(e,t[0],t[1],t[2],t[3],t[4]),3079605661:(e,t)=>new hb.IfcMaterialProfileSetUsage(e,t[0],t[1],t[2]),3404854881:(e,t)=>new hb.IfcMaterialProfileSetUsageTapering(e,t[0],t[1],t[2],t[3],t[4]),3265635763:(e,t)=>new hb.IfcMaterialProperties(e,t[0],t[1],t[2],t[3]),853536259:(e,t)=>new hb.IfcMaterialRelationship(e,t[0],t[1],t[2],t[3],t[4]),2998442950:(e,t)=>new hb.IfcMirroredProfileDef(e,t[0],t[1],t[2],t[3],t[4]),219451334:(e,t)=>new hb.IfcObjectDefinition(e,t[0],t[1],t[2],t[3]),182550632:(e,t)=>new hb.IfcOpenCrossProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2665983363:(e,t)=>new hb.IfcOpenShell(e,t[0]),1411181986:(e,t)=>new hb.IfcOrganizationRelationship(e,t[0],t[1],t[2],t[3]),1029017970:(e,t)=>new hb.IfcOrientedEdge(e,t[0],t[1],t[2]),2529465313:(e,t)=>new hb.IfcParameterizedProfileDef(e,t[0],t[1],t[2]),2519244187:(e,t)=>new hb.IfcPath(e,t[0]),3021840470:(e,t)=>new hb.IfcPhysicalComplexQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),597895409:(e,t)=>new hb.IfcPixelTexture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2004835150:(e,t)=>new hb.IfcPlacement(e,t[0]),1663979128:(e,t)=>new hb.IfcPlanarExtent(e,t[0],t[1]),2067069095:(e,t)=>new hb.IfcPoint(e),2165702409:(e,t)=>new hb.IfcPointByDistanceExpression(e,t[0],t[1],t[2],t[3],t[4]),4022376103:(e,t)=>new hb.IfcPointOnCurve(e,t[0],t[1]),1423911732:(e,t)=>new hb.IfcPointOnSurface(e,t[0],t[1],t[2]),2924175390:(e,t)=>new hb.IfcPolyLoop(e,t[0]),2775532180:(e,t)=>new hb.IfcPolygonalBoundedHalfSpace(e,t[0],t[1],t[2],t[3]),3727388367:(e,t)=>new hb.IfcPreDefinedItem(e,t[0]),3778827333:(e,t)=>new hb.IfcPreDefinedProperties(e),1775413392:(e,t)=>new hb.IfcPreDefinedTextFont(e,t[0]),673634403:(e,t)=>new hb.IfcProductDefinitionShape(e,t[0],t[1],t[2]),2802850158:(e,t)=>new hb.IfcProfileProperties(e,t[0],t[1],t[2],t[3]),2598011224:(e,t)=>new hb.IfcProperty(e,t[0],t[1]),1680319473:(e,t)=>new hb.IfcPropertyDefinition(e,t[0],t[1],t[2],t[3]),148025276:(e,t)=>new hb.IfcPropertyDependencyRelationship(e,t[0],t[1],t[2],t[3],t[4]),3357820518:(e,t)=>new hb.IfcPropertySetDefinition(e,t[0],t[1],t[2],t[3]),1482703590:(e,t)=>new hb.IfcPropertyTemplateDefinition(e,t[0],t[1],t[2],t[3]),2090586900:(e,t)=>new hb.IfcQuantitySet(e,t[0],t[1],t[2],t[3]),3615266464:(e,t)=>new hb.IfcRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3413951693:(e,t)=>new hb.IfcRegularTimeSeries(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1580146022:(e,t)=>new hb.IfcReinforcementBarProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),478536968:(e,t)=>new hb.IfcRelationship(e,t[0],t[1],t[2],t[3]),2943643501:(e,t)=>new hb.IfcResourceApprovalRelationship(e,t[0],t[1],t[2],t[3]),1608871552:(e,t)=>new hb.IfcResourceConstraintRelationship(e,t[0],t[1],t[2],t[3]),1042787934:(e,t)=>new hb.IfcResourceTime(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2778083089:(e,t)=>new hb.IfcRoundedRectangleProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),2042790032:(e,t)=>new hb.IfcSectionProperties(e,t[0],t[1],t[2]),4165799628:(e,t)=>new hb.IfcSectionReinforcementProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),1509187699:(e,t)=>new hb.IfcSectionedSpine(e,t[0],t[1],t[2]),823603102:(e,t)=>new hb.IfcSegment(e,t[0]),4124623270:(e,t)=>new hb.IfcShellBasedSurfaceModel(e,t[0]),3692461612:(e,t)=>new hb.IfcSimpleProperty(e,t[0],t[1]),2609359061:(e,t)=>new hb.IfcSlippageConnectionCondition(e,t[0],t[1],t[2],t[3]),723233188:(e,t)=>new hb.IfcSolidModel(e),1595516126:(e,t)=>new hb.IfcStructuralLoadLinearForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2668620305:(e,t)=>new hb.IfcStructuralLoadPlanarForce(e,t[0],t[1],t[2],t[3]),2473145415:(e,t)=>new hb.IfcStructuralLoadSingleDisplacement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1973038258:(e,t)=>new hb.IfcStructuralLoadSingleDisplacementDistortion(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1597423693:(e,t)=>new hb.IfcStructuralLoadSingleForce(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1190533807:(e,t)=>new hb.IfcStructuralLoadSingleForceWarping(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2233826070:(e,t)=>new hb.IfcSubedge(e,t[0],t[1],t[2]),2513912981:(e,t)=>new hb.IfcSurface(e),1878645084:(e,t)=>new hb.IfcSurfaceStyleRendering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2247615214:(e,t)=>new hb.IfcSweptAreaSolid(e,t[0],t[1]),1260650574:(e,t)=>new hb.IfcSweptDiskSolid(e,t[0],t[1],t[2],t[3],t[4]),1096409881:(e,t)=>new hb.IfcSweptDiskSolidPolygonal(e,t[0],t[1],t[2],t[3],t[4],t[5]),230924584:(e,t)=>new hb.IfcSweptSurface(e,t[0],t[1]),3071757647:(e,t)=>new hb.IfcTShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),901063453:(e,t)=>new hb.IfcTessellatedItem(e),4282788508:(e,t)=>new hb.IfcTextLiteral(e,t[0],t[1],t[2]),3124975700:(e,t)=>new hb.IfcTextLiteralWithExtent(e,t[0],t[1],t[2],t[3],t[4]),1983826977:(e,t)=>new hb.IfcTextStyleFontModel(e,t[0],t[1],t[2],t[3],t[4],t[5]),2715220739:(e,t)=>new hb.IfcTrapeziumProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1628702193:(e,t)=>new hb.IfcTypeObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),3736923433:(e,t)=>new hb.IfcTypeProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2347495698:(e,t)=>new hb.IfcTypeProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3698973494:(e,t)=>new hb.IfcTypeResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),427810014:(e,t)=>new hb.IfcUShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1417489154:(e,t)=>new hb.IfcVector(e,t[0],t[1]),2759199220:(e,t)=>new hb.IfcVertexLoop(e,t[0]),2543172580:(e,t)=>new hb.IfcZShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3406155212:(e,t)=>new hb.IfcAdvancedFace(e,t[0],t[1],t[2]),669184980:(e,t)=>new hb.IfcAnnotationFillArea(e,t[0],t[1]),3207858831:(e,t)=>new hb.IfcAsymmetricIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14]),4261334040:(e,t)=>new hb.IfcAxis1Placement(e,t[0],t[1]),3125803723:(e,t)=>new hb.IfcAxis2Placement2D(e,t[0],t[1]),2740243338:(e,t)=>new hb.IfcAxis2Placement3D(e,t[0],t[1],t[2]),3425423356:(e,t)=>new hb.IfcAxis2PlacementLinear(e,t[0],t[1],t[2]),2736907675:(e,t)=>new hb.IfcBooleanResult(e,t[0],t[1],t[2]),4182860854:(e,t)=>new hb.IfcBoundedSurface(e),2581212453:(e,t)=>new hb.IfcBoundingBox(e,t[0],t[1],t[2],t[3]),2713105998:(e,t)=>new hb.IfcBoxedHalfSpace(e,t[0],t[1],t[2]),2898889636:(e,t)=>new hb.IfcCShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1123145078:(e,t)=>new hb.IfcCartesianPoint(e,t[0]),574549367:(e,t)=>new hb.IfcCartesianPointList(e),1675464909:(e,t)=>new hb.IfcCartesianPointList2D(e,t[0],t[1]),2059837836:(e,t)=>new hb.IfcCartesianPointList3D(e,t[0],t[1]),59481748:(e,t)=>new hb.IfcCartesianTransformationOperator(e,t[0],t[1],t[2],t[3]),3749851601:(e,t)=>new hb.IfcCartesianTransformationOperator2D(e,t[0],t[1],t[2],t[3]),3486308946:(e,t)=>new hb.IfcCartesianTransformationOperator2DnonUniform(e,t[0],t[1],t[2],t[3],t[4]),3331915920:(e,t)=>new hb.IfcCartesianTransformationOperator3D(e,t[0],t[1],t[2],t[3],t[4]),1416205885:(e,t)=>new hb.IfcCartesianTransformationOperator3DnonUniform(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1383045692:(e,t)=>new hb.IfcCircleProfileDef(e,t[0],t[1],t[2],t[3]),2205249479:(e,t)=>new hb.IfcClosedShell(e,t[0]),776857604:(e,t)=>new hb.IfcColourRgb(e,t[0],t[1],t[2],t[3]),2542286263:(e,t)=>new hb.IfcComplexProperty(e,t[0],t[1],t[2],t[3]),2485617015:(e,t)=>new hb.IfcCompositeCurveSegment(e,t[0],t[1],t[2]),2574617495:(e,t)=>new hb.IfcConstructionResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3419103109:(e,t)=>new hb.IfcContext(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1815067380:(e,t)=>new hb.IfcCrewResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2506170314:(e,t)=>new hb.IfcCsgPrimitive3D(e,t[0]),2147822146:(e,t)=>new hb.IfcCsgSolid(e,t[0]),2601014836:(e,t)=>new hb.IfcCurve(e),2827736869:(e,t)=>new hb.IfcCurveBoundedPlane(e,t[0],t[1],t[2]),2629017746:(e,t)=>new hb.IfcCurveBoundedSurface(e,t[0],t[1],t[2]),4212018352:(e,t)=>new hb.IfcCurveSegment(e,t[0],t[1],t[2],t[3],t[4]),32440307:(e,t)=>new hb.IfcDirection(e,t[0]),593015953:(e,t)=>new hb.IfcDirectrixCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4]),1472233963:(e,t)=>new hb.IfcEdgeLoop(e,t[0]),1883228015:(e,t)=>new hb.IfcElementQuantity(e,t[0],t[1],t[2],t[3],t[4],t[5]),339256511:(e,t)=>new hb.IfcElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2777663545:(e,t)=>new hb.IfcElementarySurface(e,t[0]),2835456948:(e,t)=>new hb.IfcEllipseProfileDef(e,t[0],t[1],t[2],t[3],t[4]),4024345920:(e,t)=>new hb.IfcEventType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),477187591:(e,t)=>new hb.IfcExtrudedAreaSolid(e,t[0],t[1],t[2],t[3]),2804161546:(e,t)=>new hb.IfcExtrudedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),2047409740:(e,t)=>new hb.IfcFaceBasedSurfaceModel(e,t[0]),374418227:(e,t)=>new hb.IfcFillAreaStyleHatching(e,t[0],t[1],t[2],t[3],t[4]),315944413:(e,t)=>new hb.IfcFillAreaStyleTiles(e,t[0],t[1],t[2]),2652556860:(e,t)=>new hb.IfcFixedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),4238390223:(e,t)=>new hb.IfcFurnishingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1268542332:(e,t)=>new hb.IfcFurnitureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4095422895:(e,t)=>new hb.IfcGeographicElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),987898635:(e,t)=>new hb.IfcGeometricCurveSet(e,t[0]),1484403080:(e,t)=>new hb.IfcIShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),178912537:(e,t)=>new hb.IfcIndexedPolygonalFace(e,t[0]),2294589976:(e,t)=>new hb.IfcIndexedPolygonalFaceWithVoids(e,t[0],t[1]),3465909080:(e,t)=>new hb.IfcIndexedPolygonalTextureMap(e,t[0],t[1],t[2],t[3]),572779678:(e,t)=>new hb.IfcLShapeProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),428585644:(e,t)=>new hb.IfcLaborResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1281925730:(e,t)=>new hb.IfcLine(e,t[0],t[1]),1425443689:(e,t)=>new hb.IfcManifoldSolidBrep(e,t[0]),3888040117:(e,t)=>new hb.IfcObject(e,t[0],t[1],t[2],t[3],t[4]),590820931:(e,t)=>new hb.IfcOffsetCurve(e,t[0]),3388369263:(e,t)=>new hb.IfcOffsetCurve2D(e,t[0],t[1],t[2]),3505215534:(e,t)=>new hb.IfcOffsetCurve3D(e,t[0],t[1],t[2],t[3]),2485787929:(e,t)=>new hb.IfcOffsetCurveByDistances(e,t[0],t[1],t[2]),1682466193:(e,t)=>new hb.IfcPcurve(e,t[0],t[1]),603570806:(e,t)=>new hb.IfcPlanarBox(e,t[0],t[1],t[2]),220341763:(e,t)=>new hb.IfcPlane(e,t[0]),3381221214:(e,t)=>new hb.IfcPolynomialCurve(e,t[0],t[1],t[2],t[3]),759155922:(e,t)=>new hb.IfcPreDefinedColour(e,t[0]),2559016684:(e,t)=>new hb.IfcPreDefinedCurveFont(e,t[0]),3967405729:(e,t)=>new hb.IfcPreDefinedPropertySet(e,t[0],t[1],t[2],t[3]),569719735:(e,t)=>new hb.IfcProcedureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2945172077:(e,t)=>new hb.IfcProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),4208778838:(e,t)=>new hb.IfcProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),103090709:(e,t)=>new hb.IfcProject(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),653396225:(e,t)=>new hb.IfcProjectLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),871118103:(e,t)=>new hb.IfcPropertyBoundedValue(e,t[0],t[1],t[2],t[3],t[4],t[5]),4166981789:(e,t)=>new hb.IfcPropertyEnumeratedValue(e,t[0],t[1],t[2],t[3]),2752243245:(e,t)=>new hb.IfcPropertyListValue(e,t[0],t[1],t[2],t[3]),941946838:(e,t)=>new hb.IfcPropertyReferenceValue(e,t[0],t[1],t[2],t[3]),1451395588:(e,t)=>new hb.IfcPropertySet(e,t[0],t[1],t[2],t[3],t[4]),492091185:(e,t)=>new hb.IfcPropertySetTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3650150729:(e,t)=>new hb.IfcPropertySingleValue(e,t[0],t[1],t[2],t[3]),110355661:(e,t)=>new hb.IfcPropertyTableValue(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3521284610:(e,t)=>new hb.IfcPropertyTemplate(e,t[0],t[1],t[2],t[3]),2770003689:(e,t)=>new hb.IfcRectangleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2798486643:(e,t)=>new hb.IfcRectangularPyramid(e,t[0],t[1],t[2],t[3]),3454111270:(e,t)=>new hb.IfcRectangularTrimmedSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3765753017:(e,t)=>new hb.IfcReinforcementDefinitionProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),3939117080:(e,t)=>new hb.IfcRelAssigns(e,t[0],t[1],t[2],t[3],t[4],t[5]),1683148259:(e,t)=>new hb.IfcRelAssignsToActor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2495723537:(e,t)=>new hb.IfcRelAssignsToControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1307041759:(e,t)=>new hb.IfcRelAssignsToGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1027710054:(e,t)=>new hb.IfcRelAssignsToGroupByFactor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278684876:(e,t)=>new hb.IfcRelAssignsToProcess(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2857406711:(e,t)=>new hb.IfcRelAssignsToProduct(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),205026976:(e,t)=>new hb.IfcRelAssignsToResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1865459582:(e,t)=>new hb.IfcRelAssociates(e,t[0],t[1],t[2],t[3],t[4]),4095574036:(e,t)=>new hb.IfcRelAssociatesApproval(e,t[0],t[1],t[2],t[3],t[4],t[5]),919958153:(e,t)=>new hb.IfcRelAssociatesClassification(e,t[0],t[1],t[2],t[3],t[4],t[5]),2728634034:(e,t)=>new hb.IfcRelAssociatesConstraint(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),982818633:(e,t)=>new hb.IfcRelAssociatesDocument(e,t[0],t[1],t[2],t[3],t[4],t[5]),3840914261:(e,t)=>new hb.IfcRelAssociatesLibrary(e,t[0],t[1],t[2],t[3],t[4],t[5]),2655215786:(e,t)=>new hb.IfcRelAssociatesMaterial(e,t[0],t[1],t[2],t[3],t[4],t[5]),1033248425:(e,t)=>new hb.IfcRelAssociatesProfileDef(e,t[0],t[1],t[2],t[3],t[4],t[5]),826625072:(e,t)=>new hb.IfcRelConnects(e,t[0],t[1],t[2],t[3]),1204542856:(e,t)=>new hb.IfcRelConnectsElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3945020480:(e,t)=>new hb.IfcRelConnectsPathElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4201705270:(e,t)=>new hb.IfcRelConnectsPortToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),3190031847:(e,t)=>new hb.IfcRelConnectsPorts(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2127690289:(e,t)=>new hb.IfcRelConnectsStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5]),1638771189:(e,t)=>new hb.IfcRelConnectsStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),504942748:(e,t)=>new hb.IfcRelConnectsWithEccentricity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3678494232:(e,t)=>new hb.IfcRelConnectsWithRealizingElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3242617779:(e,t)=>new hb.IfcRelContainedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),886880790:(e,t)=>new hb.IfcRelCoversBldgElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),2802773753:(e,t)=>new hb.IfcRelCoversSpaces(e,t[0],t[1],t[2],t[3],t[4],t[5]),2565941209:(e,t)=>new hb.IfcRelDeclares(e,t[0],t[1],t[2],t[3],t[4],t[5]),2551354335:(e,t)=>new hb.IfcRelDecomposes(e,t[0],t[1],t[2],t[3]),693640335:(e,t)=>new hb.IfcRelDefines(e,t[0],t[1],t[2],t[3]),1462361463:(e,t)=>new hb.IfcRelDefinesByObject(e,t[0],t[1],t[2],t[3],t[4],t[5]),4186316022:(e,t)=>new hb.IfcRelDefinesByProperties(e,t[0],t[1],t[2],t[3],t[4],t[5]),307848117:(e,t)=>new hb.IfcRelDefinesByTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5]),781010003:(e,t)=>new hb.IfcRelDefinesByType(e,t[0],t[1],t[2],t[3],t[4],t[5]),3940055652:(e,t)=>new hb.IfcRelFillsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),279856033:(e,t)=>new hb.IfcRelFlowControlElements(e,t[0],t[1],t[2],t[3],t[4],t[5]),427948657:(e,t)=>new hb.IfcRelInterferesElements(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3268803585:(e,t)=>new hb.IfcRelNests(e,t[0],t[1],t[2],t[3],t[4],t[5]),1441486842:(e,t)=>new hb.IfcRelPositions(e,t[0],t[1],t[2],t[3],t[4],t[5]),750771296:(e,t)=>new hb.IfcRelProjectsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),1245217292:(e,t)=>new hb.IfcRelReferencedInSpatialStructure(e,t[0],t[1],t[2],t[3],t[4],t[5]),4122056220:(e,t)=>new hb.IfcRelSequence(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),366585022:(e,t)=>new hb.IfcRelServicesBuildings(e,t[0],t[1],t[2],t[3],t[4],t[5]),3451746338:(e,t)=>new hb.IfcRelSpaceBoundary(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3523091289:(e,t)=>new hb.IfcRelSpaceBoundary1stLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1521410863:(e,t)=>new hb.IfcRelSpaceBoundary2ndLevel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1401173127:(e,t)=>new hb.IfcRelVoidsElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),816062949:(e,t)=>new hb.IfcReparametrisedCompositeCurveSegment(e,t[0],t[1],t[2],t[3]),2914609552:(e,t)=>new hb.IfcResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1856042241:(e,t)=>new hb.IfcRevolvedAreaSolid(e,t[0],t[1],t[2],t[3]),3243963512:(e,t)=>new hb.IfcRevolvedAreaSolidTapered(e,t[0],t[1],t[2],t[3],t[4]),4158566097:(e,t)=>new hb.IfcRightCircularCone(e,t[0],t[1],t[2]),3626867408:(e,t)=>new hb.IfcRightCircularCylinder(e,t[0],t[1],t[2]),1862484736:(e,t)=>new hb.IfcSectionedSolid(e,t[0],t[1]),1290935644:(e,t)=>new hb.IfcSectionedSolidHorizontal(e,t[0],t[1],t[2]),1356537516:(e,t)=>new hb.IfcSectionedSurface(e,t[0],t[1],t[2]),3663146110:(e,t)=>new hb.IfcSimplePropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1412071761:(e,t)=>new hb.IfcSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),710998568:(e,t)=>new hb.IfcSpatialElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2706606064:(e,t)=>new hb.IfcSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3893378262:(e,t)=>new hb.IfcSpatialStructureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),463610769:(e,t)=>new hb.IfcSpatialZone(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2481509218:(e,t)=>new hb.IfcSpatialZoneType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),451544542:(e,t)=>new hb.IfcSphere(e,t[0],t[1]),4015995234:(e,t)=>new hb.IfcSphericalSurface(e,t[0],t[1]),2735484536:(e,t)=>new hb.IfcSpiral(e,t[0]),3544373492:(e,t)=>new hb.IfcStructuralActivity(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3136571912:(e,t)=>new hb.IfcStructuralItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),530289379:(e,t)=>new hb.IfcStructuralMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3689010777:(e,t)=>new hb.IfcStructuralReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3979015343:(e,t)=>new hb.IfcStructuralSurfaceMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2218152070:(e,t)=>new hb.IfcStructuralSurfaceMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),603775116:(e,t)=>new hb.IfcStructuralSurfaceReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4095615324:(e,t)=>new hb.IfcSubContractResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),699246055:(e,t)=>new hb.IfcSurfaceCurve(e,t[0],t[1],t[2]),2028607225:(e,t)=>new hb.IfcSurfaceCurveSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),2809605785:(e,t)=>new hb.IfcSurfaceOfLinearExtrusion(e,t[0],t[1],t[2],t[3]),4124788165:(e,t)=>new hb.IfcSurfaceOfRevolution(e,t[0],t[1],t[2]),1580310250:(e,t)=>new hb.IfcSystemFurnitureElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3473067441:(e,t)=>new hb.IfcTask(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),3206491090:(e,t)=>new hb.IfcTaskType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2387106220:(e,t)=>new hb.IfcTessellatedFaceSet(e,t[0],t[1]),782932809:(e,t)=>new hb.IfcThirdOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3],t[4]),1935646853:(e,t)=>new hb.IfcToroidalSurface(e,t[0],t[1],t[2]),3665877780:(e,t)=>new hb.IfcTransportationDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2916149573:(e,t)=>new hb.IfcTriangulatedFaceSet(e,t[0],t[1],t[2],t[3],t[4]),1229763772:(e,t)=>new hb.IfcTriangulatedIrregularNetwork(e,t[0],t[1],t[2],t[3],t[4],t[5]),3651464721:(e,t)=>new hb.IfcVehicleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),336235671:(e,t)=>new hb.IfcWindowLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),512836454:(e,t)=>new hb.IfcWindowPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2296667514:(e,t)=>new hb.IfcActor(e,t[0],t[1],t[2],t[3],t[4],t[5]),1635779807:(e,t)=>new hb.IfcAdvancedBrep(e,t[0]),2603310189:(e,t)=>new hb.IfcAdvancedBrepWithVoids(e,t[0],t[1]),1674181508:(e,t)=>new hb.IfcAnnotation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2887950389:(e,t)=>new hb.IfcBSplineSurface(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),167062518:(e,t)=>new hb.IfcBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1334484129:(e,t)=>new hb.IfcBlock(e,t[0],t[1],t[2],t[3]),3649129432:(e,t)=>new hb.IfcBooleanClippingResult(e,t[0],t[1],t[2]),1260505505:(e,t)=>new hb.IfcBoundedCurve(e),3124254112:(e,t)=>new hb.IfcBuildingStorey(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1626504194:(e,t)=>new hb.IfcBuiltElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2197970202:(e,t)=>new hb.IfcChimneyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2937912522:(e,t)=>new hb.IfcCircleHollowProfileDef(e,t[0],t[1],t[2],t[3],t[4]),3893394355:(e,t)=>new hb.IfcCivilElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3497074424:(e,t)=>new hb.IfcClothoid(e,t[0],t[1]),300633059:(e,t)=>new hb.IfcColumnType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3875453745:(e,t)=>new hb.IfcComplexPropertyTemplate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3732776249:(e,t)=>new hb.IfcCompositeCurve(e,t[0],t[1]),15328376:(e,t)=>new hb.IfcCompositeCurveOnSurface(e,t[0],t[1]),2510884976:(e,t)=>new hb.IfcConic(e,t[0]),2185764099:(e,t)=>new hb.IfcConstructionEquipmentResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4105962743:(e,t)=>new hb.IfcConstructionMaterialResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1525564444:(e,t)=>new hb.IfcConstructionProductResourceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2559216714:(e,t)=>new hb.IfcConstructionResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293443760:(e,t)=>new hb.IfcControl(e,t[0],t[1],t[2],t[3],t[4],t[5]),2000195564:(e,t)=>new hb.IfcCosineSpiral(e,t[0],t[1],t[2]),3895139033:(e,t)=>new hb.IfcCostItem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1419761937:(e,t)=>new hb.IfcCostSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4189326743:(e,t)=>new hb.IfcCourseType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1916426348:(e,t)=>new hb.IfcCoveringType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3295246426:(e,t)=>new hb.IfcCrewResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1457835157:(e,t)=>new hb.IfcCurtainWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1213902940:(e,t)=>new hb.IfcCylindricalSurface(e,t[0],t[1]),1306400036:(e,t)=>new hb.IfcDeepFoundationType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4234616927:(e,t)=>new hb.IfcDirectrixDerivedReferenceSweptAreaSolid(e,t[0],t[1],t[2],t[3],t[4],t[5]),3256556792:(e,t)=>new hb.IfcDistributionElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3849074793:(e,t)=>new hb.IfcDistributionFlowElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2963535650:(e,t)=>new hb.IfcDoorLiningProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),1714330368:(e,t)=>new hb.IfcDoorPanelProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2323601079:(e,t)=>new hb.IfcDoorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),445594917:(e,t)=>new hb.IfcDraughtingPreDefinedColour(e,t[0]),4006246654:(e,t)=>new hb.IfcDraughtingPreDefinedCurveFont(e,t[0]),1758889154:(e,t)=>new hb.IfcElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4123344466:(e,t)=>new hb.IfcElementAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2397081782:(e,t)=>new hb.IfcElementAssemblyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1623761950:(e,t)=>new hb.IfcElementComponent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2590856083:(e,t)=>new hb.IfcElementComponentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1704287377:(e,t)=>new hb.IfcEllipse(e,t[0],t[1],t[2]),2107101300:(e,t)=>new hb.IfcEnergyConversionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),132023988:(e,t)=>new hb.IfcEngineType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3174744832:(e,t)=>new hb.IfcEvaporativeCoolerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3390157468:(e,t)=>new hb.IfcEvaporatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4148101412:(e,t)=>new hb.IfcEvent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2853485674:(e,t)=>new hb.IfcExternalSpatialStructureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),807026263:(e,t)=>new hb.IfcFacetedBrep(e,t[0]),3737207727:(e,t)=>new hb.IfcFacetedBrepWithVoids(e,t[0],t[1]),24185140:(e,t)=>new hb.IfcFacility(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1310830890:(e,t)=>new hb.IfcFacilityPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4228831410:(e,t)=>new hb.IfcFacilityPartCommon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),647756555:(e,t)=>new hb.IfcFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2489546625:(e,t)=>new hb.IfcFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2827207264:(e,t)=>new hb.IfcFeatureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2143335405:(e,t)=>new hb.IfcFeatureElementAddition(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1287392070:(e,t)=>new hb.IfcFeatureElementSubtraction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3907093117:(e,t)=>new hb.IfcFlowControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3198132628:(e,t)=>new hb.IfcFlowFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3815607619:(e,t)=>new hb.IfcFlowMeterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1482959167:(e,t)=>new hb.IfcFlowMovingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1834744321:(e,t)=>new hb.IfcFlowSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1339347760:(e,t)=>new hb.IfcFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2297155007:(e,t)=>new hb.IfcFlowTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3009222698:(e,t)=>new hb.IfcFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1893162501:(e,t)=>new hb.IfcFootingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),263784265:(e,t)=>new hb.IfcFurnishingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1509553395:(e,t)=>new hb.IfcFurniture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3493046030:(e,t)=>new hb.IfcGeographicElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4230923436:(e,t)=>new hb.IfcGeotechnicalElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1594536857:(e,t)=>new hb.IfcGeotechnicalStratum(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2898700619:(e,t)=>new hb.IfcGradientCurve(e,t[0],t[1],t[2],t[3]),2706460486:(e,t)=>new hb.IfcGroup(e,t[0],t[1],t[2],t[3],t[4]),1251058090:(e,t)=>new hb.IfcHeatExchangerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1806887404:(e,t)=>new hb.IfcHumidifierType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2568555532:(e,t)=>new hb.IfcImpactProtectionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3948183225:(e,t)=>new hb.IfcImpactProtectionDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2571569899:(e,t)=>new hb.IfcIndexedPolyCurve(e,t[0],t[1],t[2]),3946677679:(e,t)=>new hb.IfcInterceptorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3113134337:(e,t)=>new hb.IfcIntersectionCurve(e,t[0],t[1],t[2]),2391368822:(e,t)=>new hb.IfcInventory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4288270099:(e,t)=>new hb.IfcJunctionBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),679976338:(e,t)=>new hb.IfcKerbType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3827777499:(e,t)=>new hb.IfcLaborResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1051575348:(e,t)=>new hb.IfcLampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1161773419:(e,t)=>new hb.IfcLightFixtureType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2176059722:(e,t)=>new hb.IfcLinearElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1770583370:(e,t)=>new hb.IfcLiquidTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),525669439:(e,t)=>new hb.IfcMarineFacility(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),976884017:(e,t)=>new hb.IfcMarinePart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),377706215:(e,t)=>new hb.IfcMechanicalFastener(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2108223431:(e,t)=>new hb.IfcMechanicalFastenerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1114901282:(e,t)=>new hb.IfcMedicalDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3181161470:(e,t)=>new hb.IfcMemberType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1950438474:(e,t)=>new hb.IfcMobileTelecommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),710110818:(e,t)=>new hb.IfcMooringDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),977012517:(e,t)=>new hb.IfcMotorConnectionType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),506776471:(e,t)=>new hb.IfcNavigationElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4143007308:(e,t)=>new hb.IfcOccupant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3588315303:(e,t)=>new hb.IfcOpeningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2837617999:(e,t)=>new hb.IfcOutletType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),514975943:(e,t)=>new hb.IfcPavementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2382730787:(e,t)=>new hb.IfcPerformanceHistory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3566463478:(e,t)=>new hb.IfcPermeableCoveringProperties(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3327091369:(e,t)=>new hb.IfcPermit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1158309216:(e,t)=>new hb.IfcPileType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),804291784:(e,t)=>new hb.IfcPipeFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4231323485:(e,t)=>new hb.IfcPipeSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4017108033:(e,t)=>new hb.IfcPlateType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2839578677:(e,t)=>new hb.IfcPolygonalFaceSet(e,t[0],t[1],t[2],t[3]),3724593414:(e,t)=>new hb.IfcPolyline(e,t[0]),3740093272:(e,t)=>new hb.IfcPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1946335990:(e,t)=>new hb.IfcPositioningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2744685151:(e,t)=>new hb.IfcProcedure(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2904328755:(e,t)=>new hb.IfcProjectOrder(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3651124850:(e,t)=>new hb.IfcProjectionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1842657554:(e,t)=>new hb.IfcProtectiveDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2250791053:(e,t)=>new hb.IfcPumpType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1763565496:(e,t)=>new hb.IfcRailType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2893384427:(e,t)=>new hb.IfcRailingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3992365140:(e,t)=>new hb.IfcRailway(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1891881377:(e,t)=>new hb.IfcRailwayPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2324767716:(e,t)=>new hb.IfcRampFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1469900589:(e,t)=>new hb.IfcRampType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),683857671:(e,t)=>new hb.IfcRationalBSplineSurfaceWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4021432810:(e,t)=>new hb.IfcReferent(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3027567501:(e,t)=>new hb.IfcReinforcingElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),964333572:(e,t)=>new hb.IfcReinforcingElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2320036040:(e,t)=>new hb.IfcReinforcingMesh(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17]),2310774935:(e,t)=>new hb.IfcReinforcingMeshType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19]),3818125796:(e,t)=>new hb.IfcRelAdheresToElement(e,t[0],t[1],t[2],t[3],t[4],t[5]),160246688:(e,t)=>new hb.IfcRelAggregates(e,t[0],t[1],t[2],t[3],t[4],t[5]),146592293:(e,t)=>new hb.IfcRoad(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),550521510:(e,t)=>new hb.IfcRoadPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2781568857:(e,t)=>new hb.IfcRoofType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1768891740:(e,t)=>new hb.IfcSanitaryTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2157484638:(e,t)=>new hb.IfcSeamCurve(e,t[0],t[1],t[2]),3649235739:(e,t)=>new hb.IfcSecondOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3]),544395925:(e,t)=>new hb.IfcSegmentedReferenceCurve(e,t[0],t[1],t[2],t[3]),1027922057:(e,t)=>new hb.IfcSeventhOrderPolynomialSpiral(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074543187:(e,t)=>new hb.IfcShadingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),33720170:(e,t)=>new hb.IfcSign(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3599934289:(e,t)=>new hb.IfcSignType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1894708472:(e,t)=>new hb.IfcSignalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),42703149:(e,t)=>new hb.IfcSineSpiral(e,t[0],t[1],t[2],t[3]),4097777520:(e,t)=>new hb.IfcSite(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2533589738:(e,t)=>new hb.IfcSlabType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1072016465:(e,t)=>new hb.IfcSolarDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3856911033:(e,t)=>new hb.IfcSpace(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1305183839:(e,t)=>new hb.IfcSpaceHeaterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3812236995:(e,t)=>new hb.IfcSpaceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3112655638:(e,t)=>new hb.IfcStackTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1039846685:(e,t)=>new hb.IfcStairFlightType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),338393293:(e,t)=>new hb.IfcStairType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),682877961:(e,t)=>new hb.IfcStructuralAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1179482911:(e,t)=>new hb.IfcStructuralConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1004757350:(e,t)=>new hb.IfcStructuralCurveAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),4243806635:(e,t)=>new hb.IfcStructuralCurveConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),214636428:(e,t)=>new hb.IfcStructuralCurveMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2445595289:(e,t)=>new hb.IfcStructuralCurveMemberVarying(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2757150158:(e,t)=>new hb.IfcStructuralCurveReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1807405624:(e,t)=>new hb.IfcStructuralLinearAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1252848954:(e,t)=>new hb.IfcStructuralLoadGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2082059205:(e,t)=>new hb.IfcStructuralPointAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),734778138:(e,t)=>new hb.IfcStructuralPointConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1235345126:(e,t)=>new hb.IfcStructuralPointReaction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2986769608:(e,t)=>new hb.IfcStructuralResultGroup(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3657597509:(e,t)=>new hb.IfcStructuralSurfaceAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1975003073:(e,t)=>new hb.IfcStructuralSurfaceConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),148013059:(e,t)=>new hb.IfcSubContractResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3101698114:(e,t)=>new hb.IfcSurfaceFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2315554128:(e,t)=>new hb.IfcSwitchingDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2254336722:(e,t)=>new hb.IfcSystem(e,t[0],t[1],t[2],t[3],t[4]),413509423:(e,t)=>new hb.IfcSystemFurnitureElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),5716631:(e,t)=>new hb.IfcTankType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3824725483:(e,t)=>new hb.IfcTendon(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16]),2347447852:(e,t)=>new hb.IfcTendonAnchor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3081323446:(e,t)=>new hb.IfcTendonAnchorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3663046924:(e,t)=>new hb.IfcTendonConduit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2281632017:(e,t)=>new hb.IfcTendonConduitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2415094496:(e,t)=>new hb.IfcTendonType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),618700268:(e,t)=>new hb.IfcTrackElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1692211062:(e,t)=>new hb.IfcTransformerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2097647324:(e,t)=>new hb.IfcTransportElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1953115116:(e,t)=>new hb.IfcTransportationDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3593883385:(e,t)=>new hb.IfcTrimmedCurve(e,t[0],t[1],t[2],t[3],t[4]),1600972822:(e,t)=>new hb.IfcTubeBundleType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1911125066:(e,t)=>new hb.IfcUnitaryEquipmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),728799441:(e,t)=>new hb.IfcValveType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),840318589:(e,t)=>new hb.IfcVehicle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1530820697:(e,t)=>new hb.IfcVibrationDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3956297820:(e,t)=>new hb.IfcVibrationDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2391383451:(e,t)=>new hb.IfcVibrationIsolator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3313531582:(e,t)=>new hb.IfcVibrationIsolatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2769231204:(e,t)=>new hb.IfcVirtualElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),926996030:(e,t)=>new hb.IfcVoidingFeature(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1898987631:(e,t)=>new hb.IfcWallType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1133259667:(e,t)=>new hb.IfcWasteTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4009809668:(e,t)=>new hb.IfcWindowType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4088093105:(e,t)=>new hb.IfcWorkCalendar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1028945134:(e,t)=>new hb.IfcWorkControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),4218914973:(e,t)=>new hb.IfcWorkPlan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),3342526732:(e,t)=>new hb.IfcWorkSchedule(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1033361043:(e,t)=>new hb.IfcZone(e,t[0],t[1],t[2],t[3],t[4],t[5]),3821786052:(e,t)=>new hb.IfcActionRequest(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1411407467:(e,t)=>new hb.IfcAirTerminalBoxType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3352864051:(e,t)=>new hb.IfcAirTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1871374353:(e,t)=>new hb.IfcAirToAirHeatRecoveryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4266260250:(e,t)=>new hb.IfcAlignmentCant(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1545765605:(e,t)=>new hb.IfcAlignmentHorizontal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),317615605:(e,t)=>new hb.IfcAlignmentSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1662888072:(e,t)=>new hb.IfcAlignmentVertical(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),3460190687:(e,t)=>new hb.IfcAsset(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),1532957894:(e,t)=>new hb.IfcAudioVisualApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1967976161:(e,t)=>new hb.IfcBSplineCurve(e,t[0],t[1],t[2],t[3],t[4]),2461110595:(e,t)=>new hb.IfcBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),819618141:(e,t)=>new hb.IfcBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3649138523:(e,t)=>new hb.IfcBearingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),231477066:(e,t)=>new hb.IfcBoilerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1136057603:(e,t)=>new hb.IfcBoundaryCurve(e,t[0],t[1]),644574406:(e,t)=>new hb.IfcBridge(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),963979645:(e,t)=>new hb.IfcBridgePart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),4031249490:(e,t)=>new hb.IfcBuilding(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),2979338954:(e,t)=>new hb.IfcBuildingElementPart(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),39481116:(e,t)=>new hb.IfcBuildingElementPartType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1909888760:(e,t)=>new hb.IfcBuildingElementProxyType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1177604601:(e,t)=>new hb.IfcBuildingSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1876633798:(e,t)=>new hb.IfcBuiltElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3862327254:(e,t)=>new hb.IfcBuiltSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),2188180465:(e,t)=>new hb.IfcBurnerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),395041908:(e,t)=>new hb.IfcCableCarrierFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3293546465:(e,t)=>new hb.IfcCableCarrierSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2674252688:(e,t)=>new hb.IfcCableFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1285652485:(e,t)=>new hb.IfcCableSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3203706013:(e,t)=>new hb.IfcCaissonFoundationType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2951183804:(e,t)=>new hb.IfcChillerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3296154744:(e,t)=>new hb.IfcChimney(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2611217952:(e,t)=>new hb.IfcCircle(e,t[0],t[1]),1677625105:(e,t)=>new hb.IfcCivilElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2301859152:(e,t)=>new hb.IfcCoilType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),843113511:(e,t)=>new hb.IfcColumn(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),400855858:(e,t)=>new hb.IfcCommunicationsApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3850581409:(e,t)=>new hb.IfcCompressorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2816379211:(e,t)=>new hb.IfcCondenserType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3898045240:(e,t)=>new hb.IfcConstructionEquipmentResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1060000209:(e,t)=>new hb.IfcConstructionMaterialResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),488727124:(e,t)=>new hb.IfcConstructionProductResource(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),2940368186:(e,t)=>new hb.IfcConveyorSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),335055490:(e,t)=>new hb.IfcCooledBeamType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2954562838:(e,t)=>new hb.IfcCoolingTowerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1502416096:(e,t)=>new hb.IfcCourse(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1973544240:(e,t)=>new hb.IfcCovering(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3495092785:(e,t)=>new hb.IfcCurtainWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3961806047:(e,t)=>new hb.IfcDamperType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3426335179:(e,t)=>new hb.IfcDeepFoundation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1335981549:(e,t)=>new hb.IfcDiscreteAccessory(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2635815018:(e,t)=>new hb.IfcDiscreteAccessoryType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),479945903:(e,t)=>new hb.IfcDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1599208980:(e,t)=>new hb.IfcDistributionChamberElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2063403501:(e,t)=>new hb.IfcDistributionControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1945004755:(e,t)=>new hb.IfcDistributionElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3040386961:(e,t)=>new hb.IfcDistributionFlowElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3041715199:(e,t)=>new hb.IfcDistributionPort(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3205830791:(e,t)=>new hb.IfcDistributionSystem(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),395920057:(e,t)=>new hb.IfcDoor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),869906466:(e,t)=>new hb.IfcDuctFittingType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3760055223:(e,t)=>new hb.IfcDuctSegmentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2030761528:(e,t)=>new hb.IfcDuctSilencerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3071239417:(e,t)=>new hb.IfcEarthworksCut(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1077100507:(e,t)=>new hb.IfcEarthworksElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3376911765:(e,t)=>new hb.IfcEarthworksFill(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),663422040:(e,t)=>new hb.IfcElectricApplianceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2417008758:(e,t)=>new hb.IfcElectricDistributionBoardType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3277789161:(e,t)=>new hb.IfcElectricFlowStorageDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2142170206:(e,t)=>new hb.IfcElectricFlowTreatmentDeviceType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1534661035:(e,t)=>new hb.IfcElectricGeneratorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1217240411:(e,t)=>new hb.IfcElectricMotorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),712377611:(e,t)=>new hb.IfcElectricTimeControlType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1658829314:(e,t)=>new hb.IfcEnergyConversionDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2814081492:(e,t)=>new hb.IfcEngine(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3747195512:(e,t)=>new hb.IfcEvaporativeCooler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),484807127:(e,t)=>new hb.IfcEvaporator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1209101575:(e,t)=>new hb.IfcExternalSpatialElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),346874300:(e,t)=>new hb.IfcFanType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1810631287:(e,t)=>new hb.IfcFilterType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4222183408:(e,t)=>new hb.IfcFireSuppressionTerminalType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2058353004:(e,t)=>new hb.IfcFlowController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4278956645:(e,t)=>new hb.IfcFlowFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),4037862832:(e,t)=>new hb.IfcFlowInstrumentType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),2188021234:(e,t)=>new hb.IfcFlowMeter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3132237377:(e,t)=>new hb.IfcFlowMovingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),987401354:(e,t)=>new hb.IfcFlowSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),707683696:(e,t)=>new hb.IfcFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2223149337:(e,t)=>new hb.IfcFlowTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3508470533:(e,t)=>new hb.IfcFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),900683007:(e,t)=>new hb.IfcFooting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2713699986:(e,t)=>new hb.IfcGeotechnicalAssembly(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),3009204131:(e,t)=>new hb.IfcGrid(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),3319311131:(e,t)=>new hb.IfcHeatExchanger(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2068733104:(e,t)=>new hb.IfcHumidifier(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4175244083:(e,t)=>new hb.IfcInterceptor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2176052936:(e,t)=>new hb.IfcJunctionBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2696325953:(e,t)=>new hb.IfcKerb(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),76236018:(e,t)=>new hb.IfcLamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),629592764:(e,t)=>new hb.IfcLightFixture(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1154579445:(e,t)=>new hb.IfcLinearPositioningElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1638804497:(e,t)=>new hb.IfcLiquidTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1437502449:(e,t)=>new hb.IfcMedicalDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1073191201:(e,t)=>new hb.IfcMember(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2078563270:(e,t)=>new hb.IfcMobileTelecommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),234836483:(e,t)=>new hb.IfcMooringDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2474470126:(e,t)=>new hb.IfcMotorConnection(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2182337498:(e,t)=>new hb.IfcNavigationElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),144952367:(e,t)=>new hb.IfcOuterBoundaryCurve(e,t[0],t[1]),3694346114:(e,t)=>new hb.IfcOutlet(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1383356374:(e,t)=>new hb.IfcPavement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1687234759:(e,t)=>new hb.IfcPile(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),310824031:(e,t)=>new hb.IfcPipeFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3612865200:(e,t)=>new hb.IfcPipeSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3171933400:(e,t)=>new hb.IfcPlate(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),738039164:(e,t)=>new hb.IfcProtectiveDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),655969474:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnitType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),90941305:(e,t)=>new hb.IfcPump(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3290496277:(e,t)=>new hb.IfcRail(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2262370178:(e,t)=>new hb.IfcRailing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3024970846:(e,t)=>new hb.IfcRamp(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3283111854:(e,t)=>new hb.IfcRampFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1232101972:(e,t)=>new hb.IfcRationalBSplineCurveWithKnots(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3798194928:(e,t)=>new hb.IfcReinforcedSoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),979691226:(e,t)=>new hb.IfcReinforcingBar(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13]),2572171363:(e,t)=>new hb.IfcReinforcingBarType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]),2016517767:(e,t)=>new hb.IfcRoof(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3053780830:(e,t)=>new hb.IfcSanitaryTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1783015770:(e,t)=>new hb.IfcSensorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1329646415:(e,t)=>new hb.IfcShadingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),991950508:(e,t)=>new hb.IfcSignal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1529196076:(e,t)=>new hb.IfcSlab(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3420628829:(e,t)=>new hb.IfcSolarDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1999602285:(e,t)=>new hb.IfcSpaceHeater(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1404847402:(e,t)=>new hb.IfcStackTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),331165859:(e,t)=>new hb.IfcStair(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4252922144:(e,t)=>new hb.IfcStairFlight(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2515109513:(e,t)=>new hb.IfcStructuralAnalysisModel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),385403989:(e,t)=>new hb.IfcStructuralLoadCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]),1621171031:(e,t)=>new hb.IfcStructuralPlanarAction(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11]),1162798199:(e,t)=>new hb.IfcSwitchingDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),812556717:(e,t)=>new hb.IfcTank(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3425753595:(e,t)=>new hb.IfcTrackElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3825984169:(e,t)=>new hb.IfcTransformer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1620046519:(e,t)=>new hb.IfcTransportElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3026737570:(e,t)=>new hb.IfcTubeBundle(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3179687236:(e,t)=>new hb.IfcUnitaryControlElementType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),4292641817:(e,t)=>new hb.IfcUnitaryEquipment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4207607924:(e,t)=>new hb.IfcValve(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2391406946:(e,t)=>new hb.IfcWall(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3512223829:(e,t)=>new hb.IfcWallStandardCase(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4237592921:(e,t)=>new hb.IfcWasteTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3304561284:(e,t)=>new hb.IfcWindow(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12]),2874132201:(e,t)=>new hb.IfcActuatorType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),1634111441:(e,t)=>new hb.IfcAirTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),177149247:(e,t)=>new hb.IfcAirTerminalBox(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2056796094:(e,t)=>new hb.IfcAirToAirHeatRecovery(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3001207471:(e,t)=>new hb.IfcAlarmType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),325726236:(e,t)=>new hb.IfcAlignment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),277319702:(e,t)=>new hb.IfcAudioVisualAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),753842376:(e,t)=>new hb.IfcBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4196446775:(e,t)=>new hb.IfcBearing(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),32344328:(e,t)=>new hb.IfcBoiler(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3314249567:(e,t)=>new hb.IfcBorehole(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1095909175:(e,t)=>new hb.IfcBuildingElementProxy(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2938176219:(e,t)=>new hb.IfcBurner(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),635142910:(e,t)=>new hb.IfcCableCarrierFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3758799889:(e,t)=>new hb.IfcCableCarrierSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1051757585:(e,t)=>new hb.IfcCableFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4217484030:(e,t)=>new hb.IfcCableSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3999819293:(e,t)=>new hb.IfcCaissonFoundation(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3902619387:(e,t)=>new hb.IfcChiller(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),639361253:(e,t)=>new hb.IfcCoil(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3221913625:(e,t)=>new hb.IfcCommunicationsAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3571504051:(e,t)=>new hb.IfcCompressor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2272882330:(e,t)=>new hb.IfcCondenser(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),578613899:(e,t)=>new hb.IfcControllerType(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9]),3460952963:(e,t)=>new hb.IfcConveyorSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4136498852:(e,t)=>new hb.IfcCooledBeam(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3640358203:(e,t)=>new hb.IfcCoolingTower(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4074379575:(e,t)=>new hb.IfcDamper(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3693000487:(e,t)=>new hb.IfcDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1052013943:(e,t)=>new hb.IfcDistributionChamberElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),562808652:(e,t)=>new hb.IfcDistributionCircuit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),1062813311:(e,t)=>new hb.IfcDistributionControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),342316401:(e,t)=>new hb.IfcDuctFitting(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3518393246:(e,t)=>new hb.IfcDuctSegment(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1360408905:(e,t)=>new hb.IfcDuctSilencer(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1904799276:(e,t)=>new hb.IfcElectricAppliance(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),862014818:(e,t)=>new hb.IfcElectricDistributionBoard(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3310460725:(e,t)=>new hb.IfcElectricFlowStorageDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),24726584:(e,t)=>new hb.IfcElectricFlowTreatmentDevice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),264262732:(e,t)=>new hb.IfcElectricGenerator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),402227799:(e,t)=>new hb.IfcElectricMotor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1003880860:(e,t)=>new hb.IfcElectricTimeControl(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3415622556:(e,t)=>new hb.IfcFan(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),819412036:(e,t)=>new hb.IfcFilter(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),1426591983:(e,t)=>new hb.IfcFireSuppressionTerminal(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),182646315:(e,t)=>new hb.IfcFlowInstrument(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),2680139844:(e,t)=>new hb.IfcGeomodel(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),1971632696:(e,t)=>new hb.IfcGeoslice(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),2295281155:(e,t)=>new hb.IfcProtectiveDeviceTrippingUnit(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4086658281:(e,t)=>new hb.IfcSensor(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),630975310:(e,t)=>new hb.IfcUnitaryControlElement(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),4288193352:(e,t)=>new hb.IfcActuator(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),3087945054:(e,t)=>new hb.IfcAlarm(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8]),25142252:(e,t)=>new hb.IfcController(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},Zb[3]={3630933823:e=>[e.Role,e.UserDefinedRole,e.Description],618182010:e=>[e.Purpose,e.Description,e.UserDefinedPurpose],2879124712:e=>[e.StartTag,e.EndTag],3633395639:e=>[e.StartTag,e.EndTag,e.StartDistAlong,e.HorizontalLength,e.StartHeight,e.StartGradient,e.EndGradient,e.RadiusOfCurvature,e.PredefinedType],639542469:e=>[e.ApplicationDeveloper,e.Version,e.ApplicationFullName,e.ApplicationIdentifier],411424972:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],130549933:e=>[e.Identifier,e.Name,e.Description,e.TimeOfApproval,e.Status,e.Level,e.Qualifier,e.RequestingApproval,e.GivingApproval],4037036970:e=>[e.Name],1560379544:e=>[e.Name,e.TranslationalStiffnessByLengthX?sD(e.TranslationalStiffnessByLengthX):null,e.TranslationalStiffnessByLengthY?sD(e.TranslationalStiffnessByLengthY):null,e.TranslationalStiffnessByLengthZ?sD(e.TranslationalStiffnessByLengthZ):null,e.RotationalStiffnessByLengthX?sD(e.RotationalStiffnessByLengthX):null,e.RotationalStiffnessByLengthY?sD(e.RotationalStiffnessByLengthY):null,e.RotationalStiffnessByLengthZ?sD(e.RotationalStiffnessByLengthZ):null],3367102660:e=>[e.Name,e.TranslationalStiffnessByAreaX?sD(e.TranslationalStiffnessByAreaX):null,e.TranslationalStiffnessByAreaY?sD(e.TranslationalStiffnessByAreaY):null,e.TranslationalStiffnessByAreaZ?sD(e.TranslationalStiffnessByAreaZ):null],1387855156:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null],2069777674:e=>[e.Name,e.TranslationalStiffnessX?sD(e.TranslationalStiffnessX):null,e.TranslationalStiffnessY?sD(e.TranslationalStiffnessY):null,e.TranslationalStiffnessZ?sD(e.TranslationalStiffnessZ):null,e.RotationalStiffnessX?sD(e.RotationalStiffnessX):null,e.RotationalStiffnessY?sD(e.RotationalStiffnessY):null,e.RotationalStiffnessZ?sD(e.RotationalStiffnessZ):null,e.WarpingStiffness?sD(e.WarpingStiffness):null],2859738748:e=>[],2614616156:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement],2732653382:e=>[e.SurfaceOnRelatingElement,e.SurfaceOnRelatedElement],775493141:e=>[e.VolumeOnRelatingElement,e.VolumeOnRelatedElement],1959218052:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade],1785450214:e=>[e.SourceCRS,e.TargetCRS],1466758467:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum],602808272:e=>[e.Name,e.Description,e.AppliedValue,e.UnitBasis,e.ApplicableDate,e.FixedUntilDate,e.Category,e.Condition,e.ArithmeticOperator,e.Components],1765591967:e=>[e.Elements,e.UnitType,e.UserDefinedType,e.Name],1045800335:e=>[e.Unit,e.Exponent],2949456006:e=>[e.LengthExponent,e.MassExponent,e.TimeExponent,e.ElectricCurrentExponent,e.ThermodynamicTemperatureExponent,e.AmountOfSubstanceExponent,e.LuminousIntensityExponent],4294318154:e=>[],3200245327:e=>[e.Location,e.Identification,e.Name],2242383968:e=>[e.Location,e.Identification,e.Name],1040185647:e=>[e.Location,e.Identification,e.Name],3548104201:e=>[e.Location,e.Identification,e.Name],852622518:e=>{var t;return[e.AxisTag,e.AxisCurve,null==(t=e.SameSense)?void 0:t.toString()]},3020489413:e=>[e.TimeStamp,e.ListValues.map((e=>sD(e)))],2655187982:e=>[e.Name,e.Version,e.Publisher,e.VersionDate,e.Location,e.Description],3452421091:e=>[e.Location,e.Identification,e.Name,e.Description,e.Language,e.ReferencedLibrary],4162380809:e=>[e.MainPlaneAngle,e.SecondaryPlaneAngle,e.LuminousIntensity],1566485204:e=>[e.LightDistributionCurve,e.DistributionData],3057273783:e=>[e.SourceCRS,e.TargetCRS,e.Eastings,e.Northings,e.OrthogonalHeight,e.XAxisAbscissa,e.XAxisOrdinate,e.Scale,e.ScaleY,e.ScaleZ],1847130766:e=>[e.MaterialClassifications,e.ClassifiedMaterial],760658860:e=>[],248100487:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority]},3303938423:e=>[e.MaterialLayers,e.LayerSetName,e.Description],1847252529:e=>{var t;return[e.Material,e.LayerThickness,null==(t=e.IsVentilated)?void 0:t.toString(),e.Name,e.Description,e.Category,e.Priority,e.OffsetDirection,e.OffsetValues]},2199411900:e=>[e.Materials],2235152071:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category],164193824:e=>[e.Name,e.Description,e.MaterialProfiles,e.CompositeProfile],552965576:e=>[e.Name,e.Description,e.Material,e.Profile,e.Priority,e.Category,e.OffsetValues],1507914824:e=>[],2597039031:e=>[sD(e.ValueComponent),e.UnitComponent],3368373690:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.Benchmark,e.ValueSource,e.DataValue,e.ReferencePath],2706619895:e=>[e.Currency],1918398963:e=>[e.Dimensions,e.UnitType],3701648758:e=>[e.PlacementRelTo],2251480897:e=>[e.Name,e.Description,e.ConstraintGrade,e.ConstraintSource,e.CreatingActor,e.CreationTime,e.UserDefinedGrade,e.BenchmarkValues,e.LogicalAggregator,e.ObjectiveQualifier,e.UserDefinedQualifier],4251960020:e=>[e.Identification,e.Name,e.Description,e.Roles,e.Addresses],1207048766:e=>[e.OwningUser,e.OwningApplication,e.State,e.ChangeAction,e.LastModifiedDate,e.LastModifyingUser,e.LastModifyingApplication,e.CreationDate],2077209135:e=>[e.Identification,e.FamilyName,e.GivenName,e.MiddleNames,e.PrefixTitles,e.SuffixTitles,e.Roles,e.Addresses],101040310:e=>[e.ThePerson,e.TheOrganization,e.Roles],2483315170:e=>[e.Name,e.Description],2226359599:e=>[e.Name,e.Description,e.Unit],3355820592:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.InternalLocation,e.AddressLines,e.PostalBox,e.Town,e.Region,e.PostalCode,e.Country],677532197:e=>[],2022622350:e=>[e.Name,e.Description,e.AssignedItems,e.Identifier],1304840413:e=>{var t,s,n;return[e.Name,e.Description,e.AssignedItems,e.Identifier,null==(t=e.LayerOn)?void 0:t.toString(),null==(s=e.LayerFrozen)?void 0:s.toString(),null==(n=e.LayerBlocked)?void 0:n.toString(),e.LayerStyles]},3119450353:e=>[e.Name],2095639259:e=>[e.Name,e.Description,e.Representations],3958567839:e=>[e.ProfileType,e.ProfileName],3843373140:e=>[e.Name,e.Description,e.GeodeticDatum,e.VerticalDatum,e.MapProjection,e.MapZone,e.MapUnit],986844984:e=>[],3710013099:e=>[e.Name,e.EnumerationValues.map((e=>sD(e))),e.Unit],2044713172:e=>[e.Name,e.Description,e.Unit,e.AreaValue,e.Formula],2093928680:e=>[e.Name,e.Description,e.Unit,e.CountValue,e.Formula],931644368:e=>[e.Name,e.Description,e.Unit,e.LengthValue,e.Formula],2691318326:e=>[e.Name,e.Description,e.Unit,e.NumberValue,e.Formula],3252649465:e=>[e.Name,e.Description,e.Unit,e.TimeValue,e.Formula],2405470396:e=>[e.Name,e.Description,e.Unit,e.VolumeValue,e.Formula],825690147:e=>[e.Name,e.Description,e.Unit,e.WeightValue,e.Formula],3915482550:e=>[e.RecurrenceType,e.DayComponent,e.WeekdayComponent,e.MonthComponent,e.Position,e.Interval,e.Occurrences,e.TimePeriods],2433181523:e=>[e.TypeIdentifier,e.AttributeIdentifier,e.InstanceName,e.ListPositions,e.InnerReference],1076942058:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3377609919:e=>[e.ContextIdentifier,e.ContextType],3008791417:e=>[],1660063152:e=>[e.MappingOrigin,e.MappedRepresentation],2439245199:e=>[e.Name,e.Description],2341007311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],448429030:e=>[e.Dimensions,e.UnitType,e.Prefix,e.Name],1054537805:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin],867548509:e=>{var t;return[e.ShapeRepresentations,e.Name,e.Description,null==(t=e.ProductDefinitional)?void 0:t.toString(),e.PartOfProductDefinitionShape]},3982875396:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],4240577450:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2273995522:e=>[e.Name],2162789131:e=>[e.Name],3478079324:e=>[e.Name,e.Values,e.Locations],609421318:e=>[e.Name],2525727697:e=>[e.Name],3408363356:e=>[e.Name,e.DeltaTConstant,e.DeltaTY,e.DeltaTZ],2830218821:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],3958052878:e=>[e.Item,e.Styles,e.Name],3049322572:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],2934153892:e=>[e.Name,e.SurfaceReinforcement1,e.SurfaceReinforcement2,e.ShearReinforcement],1300840506:e=>[e.Name,e.Side,e.Styles],3303107099:e=>[e.DiffuseTransmissionColour,e.DiffuseReflectionColour,e.TransmissionColour,e.ReflectanceColour],1607154358:e=>[e.RefractionIndex,e.DispersionFactor],846575682:e=>[e.SurfaceColour,e.Transparency],1351298697:e=>[e.Textures],626085974:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter]},985171141:e=>[e.Name,e.Rows,e.Columns],2043862942:e=>[e.Identifier,e.Name,e.Description,e.Unit,e.ReferencePath],531007025:e=>{var t;return[e.RowCells?e.RowCells.map((e=>sD(e))):null,null==(t=e.IsHeading)?void 0:t.toString()]},1549132990:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion]},2771591690:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.DurationType,e.ScheduleDuration,e.ScheduleStart,e.ScheduleFinish,e.EarlyStart,e.EarlyFinish,e.LateStart,e.LateFinish,e.FreeFloat,e.TotalFloat,null==(t=e.IsCritical)?void 0:t.toString(),e.StatusTime,e.ActualDuration,e.ActualStart,e.ActualFinish,e.RemainingTime,e.Completion,e.Recurrence]},912023232:e=>[e.Purpose,e.Description,e.UserDefinedPurpose,e.TelephoneNumbers,e.FacsimileNumbers,e.PagerNumber,e.ElectronicMailAddresses,e.WWWHomePageURL,e.MessagingIDs],1447204868:e=>{var t;return[e.Name,e.TextCharacterAppearance,e.TextStyle,e.TextFontStyle,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},2636378356:e=>[e.Colour,e.BackgroundColour],1640371178:e=>[e.TextIndent?sD(e.TextIndent):null,e.TextAlign,e.TextDecoration,e.LetterSpacing?sD(e.LetterSpacing):null,e.WordSpacing?sD(e.WordSpacing):null,e.TextTransform,e.LineHeight?sD(e.LineHeight):null],280115917:e=>[e.Maps],1742049831:e=>[e.Maps,e.Mode,e.Parameter],222769930:e=>[e.TexCoordIndex,e.TexCoordsOf],1010789467:e=>[e.TexCoordIndex,e.TexCoordsOf,e.InnerTexCoordIndices],2552916305:e=>[e.Maps,e.Vertices,e.MappedTo],1210645708:e=>[e.Coordinates],3611470254:e=>[e.TexCoordsList],1199560280:e=>[e.StartTime,e.EndTime],3101149627:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit],581633288:e=>[e.ListValues.map((e=>sD(e)))],1377556343:e=>[],1735638870:e=>[e.ContextOfItems,e.RepresentationIdentifier,e.RepresentationType,e.Items],180925521:e=>[e.Units],2799835756:e=>[],1907098498:e=>[e.VertexGeometry],891718957:e=>[e.IntersectingAxes,e.OffsetDistances],1236880293:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.RecurrencePattern,e.StartDate,e.FinishDate],3752311538:e=>[e.StartTag,e.EndTag,e.StartDistAlong,e.HorizontalLength,e.StartCantLeft,e.EndCantLeft,e.StartCantRight,e.EndCantRight,e.PredefinedType],536804194:e=>[e.StartTag,e.EndTag,e.StartPoint,e.StartDirection,e.StartRadiusOfCurvature,e.EndRadiusOfCurvature,e.SegmentLength,e.GravityCenterLineHeight,e.PredefinedType],3869604511:e=>[e.Name,e.Description,e.RelatingApproval,e.RelatedApprovals],3798115385:e=>[e.ProfileType,e.ProfileName,e.OuterCurve],1310608509:e=>[e.ProfileType,e.ProfileName,e.Curve],2705031697:e=>[e.ProfileType,e.ProfileName,e.OuterCurve,e.InnerCurves],616511568:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.RasterFormat,e.RasterCode]},3150382593:e=>[e.ProfileType,e.ProfileName,e.Curve,e.Thickness],747523909:e=>[e.Source,e.Edition,e.EditionDate,e.Name,e.Description,e.Specification,e.ReferenceTokens],647927063:e=>[e.Location,e.Identification,e.Name,e.ReferencedSource,e.Description,e.Sort],3285139300:e=>[e.ColourList],3264961684:e=>[e.Name],1485152156:e=>[e.ProfileType,e.ProfileName,e.Profiles,e.Label],370225590:e=>[e.CfsFaces],1981873012:e=>[e.CurveOnRelatingElement,e.CurveOnRelatedElement],45288368:e=>[e.PointOnRelatingElement,e.PointOnRelatedElement,e.EccentricityInX,e.EccentricityInY,e.EccentricityInZ],3050246964:e=>[e.Dimensions,e.UnitType,e.Name],2889183280:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor],2713554722:e=>[e.Dimensions,e.UnitType,e.Name,e.ConversionFactor,e.ConversionOffset],539742890:e=>[e.Name,e.Description,e.RelatingMonetaryUnit,e.RelatedMonetaryUnit,e.ExchangeRate,e.RateDateTime,e.RateSource],3800577675:e=>{var t;return[e.Name,e.CurveFont,e.CurveWidth?sD(e.CurveWidth):null,e.CurveColour,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},1105321065:e=>[e.Name,e.PatternList],2367409068:e=>[e.Name,e.CurveStyleFont,e.CurveFontScaling],3510044353:e=>[e.VisibleSegmentLength,e.InvisibleSegmentLength],3632507154:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],1154170062:e=>[e.Identification,e.Name,e.Description,e.Location,e.Purpose,e.IntendedUse,e.Scope,e.Revision,e.DocumentOwner,e.Editors,e.CreationTime,e.LastRevisionTime,e.ElectronicFormat,e.ValidFrom,e.ValidUntil,e.Confidentiality,e.Status],770865208:e=>[e.Name,e.Description,e.RelatingDocument,e.RelatedDocuments,e.RelationshipType],3732053477:e=>[e.Location,e.Identification,e.Name,e.Description,e.ReferencedDocument],3900360178:e=>[e.EdgeStart,e.EdgeEnd],476780140:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeGeometry,null==(t=e.SameSense)?void 0:t.toString()]},211053100:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ActualDate,e.EarlyDate,e.LateDate,e.ScheduleDate],297599258:e=>[e.Name,e.Description,e.Properties],1437805879:e=>[e.Name,e.Description,e.RelatingReference,e.RelatedResourceObjects],2556980723:e=>[e.Bounds],1809719519:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},803316827:e=>{var t;return[e.Bound,null==(t=e.Orientation)?void 0:t.toString()]},3008276851:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},4219587988:e=>[e.Name,e.TensionFailureX,e.TensionFailureY,e.TensionFailureZ,e.CompressionFailureX,e.CompressionFailureY,e.CompressionFailureZ],738692330:e=>{var t;return[e.Name,e.FillStyles,null==(t=e.ModelOrDraughting)?void 0:t.toString()]},3448662350:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth],2453401579:e=>[],4142052618:e=>[e.ContextIdentifier,e.ContextType,e.CoordinateSpaceDimension,e.Precision,e.WorldCoordinateSystem,e.TrueNorth,e.ParentContext,e.TargetScale,e.TargetView,e.UserDefinedTargetView],3590301190:e=>[e.Elements],178086475:e=>[e.PlacementRelTo,e.PlacementLocation,e.PlacementRefDirection],812098782:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString()]},3905492369:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.URLReference]},3570813810:e=>[e.MappedTo,e.Opacity,e.Colours,e.ColourIndex],1437953363:e=>[e.Maps,e.MappedTo,e.TexCoords],2133299955:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndex],3741457305:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.Values],1585845231:e=>[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,sD(e.LagValue),e.DurationType],1402838566:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],125510826:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity],2604431987:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Orientation],4266656042:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.ColourAppearance,e.ColourTemperature,e.LuminousFlux,e.LightEmissionSource,e.LightDistributionDataSource],1520743889:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation],3422422726:e=>[e.Name,e.LightColour,e.AmbientIntensity,e.Intensity,e.Position,e.Radius,e.ConstantAttenuation,e.DistanceAttenuation,e.QuadricAttenuation,e.Orientation,e.ConcentrationExponent,e.SpreadAngle,e.BeamWidthAngle],388784114:e=>[e.PlacementRelTo,e.RelativePlacement,e.CartesianPosition],2624227202:e=>[e.PlacementRelTo,e.RelativePlacement],1008929658:e=>[],2347385850:e=>[e.MappingSource,e.MappingTarget],1838606355:e=>[e.Name,e.Description,e.Category],3708119e3:e=>[e.Name,e.Description,e.Material,e.Fraction,e.Category],2852063980:e=>[e.Name,e.Description,e.MaterialConstituents],2022407955:e=>[e.Name,e.Description,e.Representations,e.RepresentedMaterial],1303795690:e=>[e.ForLayerSet,e.LayerSetDirection,e.DirectionSense,e.OffsetFromReferenceLine,e.ReferenceExtent],3079605661:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent],3404854881:e=>[e.ForProfileSet,e.CardinalPoint,e.ReferenceExtent,e.ForProfileEndSet,e.CardinalEndPoint],3265635763:e=>[e.Name,e.Description,e.Properties,e.Material],853536259:e=>[e.Name,e.Description,e.RelatingMaterial,e.RelatedMaterials,e.MaterialExpression],2998442950:e=>[e.ProfileType,e.ProfileName,e.ParentProfile,e.Operator,e.Label],219451334:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],182550632:e=>{var t;return[e.ProfileType,e.ProfileName,null==(t=e.HorizontalWidths)?void 0:t.toString(),e.Widths,e.Slopes,e.Tags,e.OffsetPoint]},2665983363:e=>[e.CfsFaces],1411181986:e=>[e.Name,e.Description,e.RelatingOrganization,e.RelatedOrganizations],1029017970:e=>{var t;return[e.EdgeStart,e.EdgeEnd,e.EdgeElement,null==(t=e.Orientation)?void 0:t.toString()]},2529465313:e=>[e.ProfileType,e.ProfileName,e.Position],2519244187:e=>[e.EdgeList],3021840470:e=>[e.Name,e.Description,e.HasQuantities,e.Discrimination,e.Quality,e.Usage],597895409:e=>{var t,s;return[null==(t=e.RepeatS)?void 0:t.toString(),null==(s=e.RepeatT)?void 0:s.toString(),e.Mode,e.TextureTransform,e.Parameter,e.Width,e.Height,e.ColourComponents,e.Pixel]},2004835150:e=>[e.Location],1663979128:e=>[e.SizeInX,e.SizeInY],2067069095:e=>[],2165702409:e=>[sD(e.DistanceAlong),e.OffsetLateral,e.OffsetVertical,e.OffsetLongitudinal,e.BasisCurve],4022376103:e=>[e.BasisCurve,e.PointParameter],1423911732:e=>[e.BasisSurface,e.PointParameterU,e.PointParameterV],2924175390:e=>[e.Polygon],2775532180:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Position,e.PolygonalBoundary]},3727388367:e=>[e.Name],3778827333:e=>[],1775413392:e=>[e.Name],673634403:e=>[e.Name,e.Description,e.Representations],2802850158:e=>[e.Name,e.Description,e.Properties,e.ProfileDefinition],2598011224:e=>[e.Name,e.Specification],1680319473:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],148025276:e=>[e.Name,e.Description,e.DependingProperty,e.DependantProperty,e.Expression],3357820518:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1482703590:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2090586900:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],3615266464:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim],3413951693:e=>[e.Name,e.Description,e.StartTime,e.EndTime,e.TimeSeriesDataType,e.DataOrigin,e.UserDefinedDataOrigin,e.Unit,e.TimeStep,e.Values],1580146022:e=>[e.TotalCrossSectionArea,e.SteelGrade,e.BarSurface,e.EffectiveDepth,e.NominalBarDiameter,e.BarCount],478536968:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2943643501:e=>[e.Name,e.Description,e.RelatedResourceObjects,e.RelatingApproval],1608871552:e=>[e.Name,e.Description,e.RelatingConstraint,e.RelatedResourceObjects],1042787934:e=>{var t;return[e.Name,e.DataOrigin,e.UserDefinedDataOrigin,e.ScheduleWork,e.ScheduleUsage,e.ScheduleStart,e.ScheduleFinish,e.ScheduleContour,e.LevelingDelay,null==(t=e.IsOverAllocated)?void 0:t.toString(),e.StatusTime,e.ActualWork,e.ActualUsage,e.ActualStart,e.ActualFinish,e.RemainingWork,e.RemainingUsage,e.Completion]},2778083089:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.RoundingRadius],2042790032:e=>[e.SectionType,e.StartProfile,e.EndProfile],4165799628:e=>[e.LongitudinalStartPosition,e.LongitudinalEndPosition,e.TransversePosition,e.ReinforcementRole,e.SectionDefinition,e.CrossSectionReinforcementDefinitions],1509187699:e=>[e.SpineCurve,e.CrossSections,e.CrossSectionPositions],823603102:e=>[e.Transition],4124623270:e=>[e.SbsmBoundary],3692461612:e=>[e.Name,e.Specification],2609359061:e=>[e.Name,e.SlippageX,e.SlippageY,e.SlippageZ],723233188:e=>[],1595516126:e=>[e.Name,e.LinearForceX,e.LinearForceY,e.LinearForceZ,e.LinearMomentX,e.LinearMomentY,e.LinearMomentZ],2668620305:e=>[e.Name,e.PlanarForceX,e.PlanarForceY,e.PlanarForceZ],2473145415:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ],1973038258:e=>[e.Name,e.DisplacementX,e.DisplacementY,e.DisplacementZ,e.RotationalDisplacementRX,e.RotationalDisplacementRY,e.RotationalDisplacementRZ,e.Distortion],1597423693:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ],1190533807:e=>[e.Name,e.ForceX,e.ForceY,e.ForceZ,e.MomentX,e.MomentY,e.MomentZ,e.WarpingMoment],2233826070:e=>[e.EdgeStart,e.EdgeEnd,e.ParentEdge],2513912981:e=>[],1878645084:e=>[e.SurfaceColour,e.Transparency,e.DiffuseColour,e.TransmissionColour,e.DiffuseTransmissionColour,e.ReflectionColour,e.SpecularColour,e.SpecularHighlight?sD(e.SpecularHighlight):null,e.ReflectanceMethod],2247615214:e=>[e.SweptArea,e.Position],1260650574:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam],1096409881:e=>[e.Directrix,e.Radius,e.InnerRadius,e.StartParam,e.EndParam,e.FilletRadius],230924584:e=>[e.SweptCurve,e.Position],3071757647:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.WebEdgeRadius,e.WebSlope,e.FlangeSlope],901063453:e=>[],4282788508:e=>[e.Literal,e.Placement,e.Path],3124975700:e=>[e.Literal,e.Placement,e.Path,e.Extent,e.BoxAlignment],1983826977:e=>[e.Name,e.FontFamily,e.FontStyle,e.FontVariant,e.FontWeight,sD(e.FontSize)],2715220739:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomXDim,e.TopXDim,e.YDim,e.TopXOffset],1628702193:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets],3736923433:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType],2347495698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag],3698973494:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType],427810014:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius,e.FlangeSlope],1417489154:e=>[e.Orientation,e.Magnitude],2759199220:e=>[e.LoopVertex],2543172580:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.FlangeWidth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.EdgeRadius],3406155212:e=>{var t;return[e.Bounds,e.FaceSurface,null==(t=e.SameSense)?void 0:t.toString()]},669184980:e=>[e.OuterBoundary,e.InnerBoundaries],3207858831:e=>[e.ProfileType,e.ProfileName,e.Position,e.BottomFlangeWidth,e.OverallDepth,e.WebThickness,e.BottomFlangeThickness,e.BottomFlangeFilletRadius,e.TopFlangeWidth,e.TopFlangeThickness,e.TopFlangeFilletRadius,e.BottomFlangeEdgeRadius,e.BottomFlangeSlope,e.TopFlangeEdgeRadius,e.TopFlangeSlope],4261334040:e=>[e.Location,e.Axis],3125803723:e=>[e.Location,e.RefDirection],2740243338:e=>[e.Location,e.Axis,e.RefDirection],3425423356:e=>[e.Location,e.Axis,e.RefDirection],2736907675:e=>[e.Operator,e.FirstOperand,e.SecondOperand],4182860854:e=>[],2581212453:e=>[e.Corner,e.XDim,e.YDim,e.ZDim],2713105998:e=>{var t;return[e.BaseSurface,null==(t=e.AgreementFlag)?void 0:t.toString(),e.Enclosure]},2898889636:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.WallThickness,e.Girth,e.InternalFilletRadius],1123145078:e=>[e.Coordinates],574549367:e=>[],1675464909:e=>[e.CoordList,e.TagList],2059837836:e=>[e.CoordList,e.TagList],59481748:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3749851601:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale],3486308946:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Scale2],3331915920:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3],1416205885:e=>[e.Axis1,e.Axis2,e.LocalOrigin,e.Scale,e.Axis3,e.Scale2,e.Scale3],1383045692:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius],2205249479:e=>[e.CfsFaces],776857604:e=>[e.Name,e.Red,e.Green,e.Blue],2542286263:e=>[e.Name,e.Specification,e.UsageName,e.HasProperties],2485617015:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve]},2574617495:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity],3419103109:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],1815067380:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2506170314:e=>[e.Position],2147822146:e=>[e.TreeRootExpression],2601014836:e=>[],2827736869:e=>[e.BasisSurface,e.OuterBoundary,e.InnerBoundaries],2629017746:e=>{var t;return[e.BasisSurface,e.Boundaries,null==(t=e.ImplicitOuter)?void 0:t.toString()]},4212018352:e=>[e.Transition,e.Placement,sD(e.SegmentStart),sD(e.SegmentLength),e.ParentCurve],32440307:e=>[e.DirectionRatios],593015953:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null],1472233963:e=>[e.EdgeList],1883228015:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.MethodOfMeasurement,e.Quantities],339256511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2777663545:e=>[e.Position],2835456948:e=>[e.ProfileType,e.ProfileName,e.Position,e.SemiAxis1,e.SemiAxis2],4024345920:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType],477187591:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth],2804161546:e=>[e.SweptArea,e.Position,e.ExtrudedDirection,e.Depth,e.EndSweptArea],2047409740:e=>[e.FbsmFaces],374418227:e=>[e.HatchLineAppearance,e.StartOfNextHatchLine,e.PointOfReferenceHatchLine,e.PatternStart,e.HatchLineAngle],315944413:e=>[e.TilingPattern,e.Tiles,e.TilingScale],2652556860:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.FixedReference],4238390223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1268542332:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.AssemblyPlace,e.PredefinedType],4095422895:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],987898635:e=>[e.Elements],1484403080:e=>[e.ProfileType,e.ProfileName,e.Position,e.OverallWidth,e.OverallDepth,e.WebThickness,e.FlangeThickness,e.FilletRadius,e.FlangeEdgeRadius,e.FlangeSlope],178912537:e=>[e.CoordIndex],2294589976:e=>[e.CoordIndex,e.InnerCoordIndices],3465909080:e=>[e.Maps,e.MappedTo,e.TexCoords,e.TexCoordIndices],572779678:e=>[e.ProfileType,e.ProfileName,e.Position,e.Depth,e.Width,e.Thickness,e.FilletRadius,e.EdgeRadius,e.LegSlope],428585644:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1281925730:e=>[e.Pnt,e.Dir],1425443689:e=>[e.Outer],3888040117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],590820931:e=>[e.BasisCurve],3388369263:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString()]},3505215534:e=>{var t;return[e.BasisCurve,e.Distance,null==(t=e.SelfIntersect)?void 0:t.toString(),e.RefDirection]},2485787929:e=>[e.BasisCurve,e.OffsetValues,e.Tag],1682466193:e=>[e.BasisSurface,e.ReferenceCurve],603570806:e=>[e.SizeInX,e.SizeInY,e.Placement],220341763:e=>[e.Position],3381221214:e=>[e.Position,e.CoefficientsX,e.CoefficientsY,e.CoefficientsZ],759155922:e=>[e.Name],2559016684:e=>[e.Name],3967405729:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],569719735:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType],2945172077:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],4208778838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],103090709:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],653396225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.Phase,e.RepresentationContexts,e.UnitsInContext],871118103:e=>[e.Name,e.Specification,e.UpperBoundValue?sD(e.UpperBoundValue):null,e.LowerBoundValue?sD(e.LowerBoundValue):null,e.Unit,e.SetPointValue?sD(e.SetPointValue):null],4166981789:e=>[e.Name,e.Specification,e.EnumerationValues?e.EnumerationValues.map((e=>sD(e))):null,e.EnumerationReference],2752243245:e=>[e.Name,e.Specification,e.ListValues?e.ListValues.map((e=>sD(e))):null,e.Unit],941946838:e=>[e.Name,e.Specification,e.UsageName,e.PropertyReference],1451395588:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.HasProperties],492091185:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.ApplicableEntity,e.HasPropertyTemplates],3650150729:e=>[e.Name,e.Specification,e.NominalValue?sD(e.NominalValue):null,e.Unit],110355661:e=>[e.Name,e.Specification,e.DefiningValues?e.DefiningValues.map((e=>sD(e))):null,e.DefinedValues?e.DefinedValues.map((e=>sD(e))):null,e.Expression,e.DefiningUnit,e.DefinedUnit,e.CurveInterpolation],3521284610:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],2770003689:e=>[e.ProfileType,e.ProfileName,e.Position,e.XDim,e.YDim,e.WallThickness,e.InnerFilletRadius,e.OuterFilletRadius],2798486643:e=>[e.Position,e.XLength,e.YLength,e.Height],3454111270:e=>{var t,s;return[e.BasisSurface,e.U1,e.V1,e.U2,e.V2,null==(t=e.Usense)?void 0:t.toString(),null==(s=e.Vsense)?void 0:s.toString()]},3765753017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.DefinitionType,e.ReinforcementSectionDefinitions],3939117080:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType],1683148259:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingActor,e.ActingRole],2495723537:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingControl],1307041759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup],1027710054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingGroup,e.Factor],4278684876:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProcess,e.QuantityInProcess],2857406711:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingProduct],205026976:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatedObjectsType,e.RelatingResource],1865459582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects],4095574036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingApproval],919958153:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingClassification],2728634034:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.Intent,e.RelatingConstraint],982818633:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingDocument],3840914261:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingLibrary],2655215786:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingMaterial],1033248425:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingProfileDef],826625072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1204542856:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement],3945020480:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RelatingPriorities,e.RelatedPriorities,e.RelatedConnectionType,e.RelatingConnectionType],4201705270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedElement],3190031847:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPort,e.RelatedPort,e.RealizingElement],2127690289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedStructuralActivity],1638771189:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem],504942748:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingStructuralMember,e.RelatedStructuralConnection,e.AppliedCondition,e.AdditionalConditions,e.SupportedLength,e.ConditionCoordinateSystem,e.ConnectionConstraint],3678494232:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ConnectionGeometry,e.RelatingElement,e.RelatedElement,e.RealizingElements,e.ConnectionType],3242617779:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],886880790:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedCoverings],2802773753:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedCoverings],2565941209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingContext,e.RelatedDefinitions],2551354335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],693640335:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description],1462361463:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingObject],4186316022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingPropertyDefinition],307848117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedPropertySets,e.RelatingTemplate],781010003:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedObjects,e.RelatingType],3940055652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingOpeningElement,e.RelatedBuildingElement],279856033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedControlElements,e.RelatingFlowElement],427948657:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedElement,e.InterferenceGeometry,e.InterferenceSpace,e.InterferenceType,null==(t=e.ImpliedOrder)?void 0:t.toString()]},3268803585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],1441486842:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingPositioningElement,e.RelatedProducts],750771296:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedFeatureElement],1245217292:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatedElements,e.RelatingStructure],4122056220:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingProcess,e.RelatedProcess,e.TimeLag,e.SequenceType,e.UserDefinedSequenceType],366585022:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSystem,e.RelatedBuildings],3451746338:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary],3523091289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary],1521410863:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingSpace,e.RelatedBuildingElement,e.ConnectionGeometry,e.PhysicalOrVirtualBoundary,e.InternalOrExternalBoundary,e.ParentBoundary,e.CorrespondingBoundary],1401173127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingBuildingElement,e.RelatedOpeningElement],816062949:e=>{var t;return[e.Transition,null==(t=e.SameSense)?void 0:t.toString(),e.ParentCurve,e.ParamLength]},2914609552:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription],1856042241:e=>[e.SweptArea,e.Position,e.Axis,e.Angle],3243963512:e=>[e.SweptArea,e.Position,e.Axis,e.Angle,e.EndSweptArea],4158566097:e=>[e.Position,e.Height,e.BottomRadius],3626867408:e=>[e.Position,e.Height,e.Radius],1862484736:e=>[e.Directrix,e.CrossSections],1290935644:e=>[e.Directrix,e.CrossSections,e.CrossSectionPositions],1356537516:e=>[e.Directrix,e.CrossSectionPositions,e.CrossSections],3663146110:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.TemplateType,e.PrimaryMeasureType,e.SecondaryMeasureType,e.Enumerators,e.PrimaryUnit,e.SecondaryUnit,e.Expression,e.AccessState],1412071761:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],710998568:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2706606064:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],3893378262:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],463610769:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],2481509218:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],451544542:e=>[e.Position,e.Radius],4015995234:e=>[e.Position,e.Radius],2735484536:e=>[e.Position],3544373492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3136571912:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],530289379:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3689010777:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],3979015343:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],2218152070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Thickness],603775116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],4095615324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],699246055:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2028607225:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.ReferenceSurface],2809605785:e=>[e.SweptCurve,e.Position,e.ExtrudedDirection,e.Depth],4124788165:e=>[e.SweptCurve,e.Position,e.AxisPosition],1580310250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3473067441:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Status,e.WorkMethod,null==(t=e.IsMilestone)?void 0:t.toString(),e.Priority,e.TaskTime,e.PredefinedType]},3206491090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ProcessType,e.PredefinedType,e.WorkMethod],2387106220:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString()]},782932809:e=>[e.Position,e.CubicTerm,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],1935646853:e=>[e.Position,e.MajorRadius,e.MinorRadius],3665877780:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2916149573:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Normals,e.CoordIndex,e.PnIndex]},1229763772:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Normals,e.CoordIndex,e.PnIndex,e.Flags]},3651464721:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],336235671:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.TransomThickness,e.MullionThickness,e.FirstTransomOffset,e.SecondTransomOffset,e.FirstMullionOffset,e.SecondMullionOffset,e.ShapeAspectStyle,e.LiningOffset,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],512836454:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],2296667514:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor],1635779807:e=>[e.Outer],2603310189:e=>[e.Outer,e.Voids],1674181508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],2887950389:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString()]},167062518:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec]},1334484129:e=>[e.Position,e.XLength,e.YLength,e.ZLength],3649129432:e=>[e.Operator,e.FirstOperand,e.SecondOperand],1260505505:e=>[],3124254112:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.Elevation],1626504194:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2197970202:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2937912522:e=>[e.ProfileType,e.ProfileName,e.Position,e.Radius,e.WallThickness],3893394355:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3497074424:e=>[e.Position,e.ClothoidConstant],300633059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3875453745:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.UsageName,e.TemplateType,e.HasPropertyTemplates],3732776249:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},15328376:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},2510884976:e=>[e.Position],2185764099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],4105962743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1525564444:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.Identification,e.LongDescription,e.ResourceType,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2559216714:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity],3293443760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification],2000195564:e=>[e.Position,e.CosineTerm,e.ConstantTerm],3895139033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.CostValues,e.CostQuantities],1419761937:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.SubmittedOn,e.UpdateDate],4189326743:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1916426348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3295246426:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1457835157:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1213902940:e=>[e.Position,e.Radius],1306400036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],4234616927:e=>[e.SweptArea,e.Position,e.Directrix,e.StartParam?sD(e.StartParam):null,e.EndParam?sD(e.EndParam):null,e.FixedReference],3256556792:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3849074793:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2963535650:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.LiningDepth,e.LiningThickness,e.ThresholdDepth,e.ThresholdThickness,e.TransomThickness,e.TransomOffset,e.LiningOffset,e.ThresholdOffset,e.CasingThickness,e.CasingDepth,e.ShapeAspectStyle,e.LiningToPanelOffsetX,e.LiningToPanelOffsetY],1714330368:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.PanelDepth,e.PanelOperation,e.PanelWidth,e.PanelPosition,e.ShapeAspectStyle],2323601079:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.OperationType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedOperationType]},445594917:e=>[e.Name],4006246654:e=>[e.Name],1758889154:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4123344466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.AssemblyPlace,e.PredefinedType],2397081782:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1623761950:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2590856083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1704287377:e=>[e.Position,e.SemiAxis1,e.SemiAxis2],2107101300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],132023988:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3174744832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3390157468:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4148101412:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType,e.EventTriggerType,e.UserDefinedEventTriggerType,e.EventOccurenceTime],2853485674:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName],807026263:e=>[e.Outer],3737207727:e=>[e.Outer,e.Voids],24185140:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType],1310830890:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType],4228831410:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],647756555:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2489546625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2827207264:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2143335405:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1287392070:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3907093117:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3198132628:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3815607619:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1482959167:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1834744321:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1339347760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2297155007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],3009222698:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1893162501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],263784265:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1509553395:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3493046030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4230923436:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1594536857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2898700619:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString(),e.BaseCurve,e.EndPoint]},2706460486:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],1251058090:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1806887404:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2568555532:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3948183225:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2571569899:e=>{var t;return[e.Points,e.Segments?e.Segments.map((e=>sD(e))):null,null==(t=e.SelfIntersect)?void 0:t.toString()]},3946677679:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3113134337:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],2391368822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.Jurisdiction,e.ResponsiblePersons,e.LastUpdateDate,e.CurrentValue,e.OriginalValue],4288270099:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],679976338:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,null==(t=e.Mountable)?void 0:t.toString()]},3827777499:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1051575348:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1161773419:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2176059722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1770583370:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],525669439:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],976884017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],377706215:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NominalDiameter,e.NominalLength,e.PredefinedType],2108223431:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.NominalLength],1114901282:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3181161470:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1950438474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],710110818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],977012517:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],506776471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4143007308:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheActor,e.PredefinedType],3588315303:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2837617999:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],514975943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2382730787:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LifeCyclePhase,e.PredefinedType],3566463478:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.OperationType,e.PanelPosition,e.FrameDepth,e.FrameThickness,e.ShapeAspectStyle],3327091369:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1158309216:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],804291784:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4231323485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4017108033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2839578677:e=>{var t;return[e.Coordinates,null==(t=e.Closed)?void 0:t.toString(),e.Faces,e.PnIndex]},3724593414:e=>[e.Points],3740093272:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1946335990:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],2744685151:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.PredefinedType],2904328755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],3651124850:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1842657554:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2250791053:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1763565496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2893384427:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3992365140:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],1891881377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],2324767716:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1469900589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],683857671:e=>{var t,s,n;return[e.UDegree,e.VDegree,e.ControlPointsList,e.SurfaceForm,null==(t=e.UClosed)?void 0:t.toString(),null==(s=e.VClosed)?void 0:s.toString(),null==(n=e.SelfIntersect)?void 0:n.toString(),e.UMultiplicities,e.VMultiplicities,e.UKnots,e.VKnots,e.KnotSpec,e.WeightsData]},4021432810:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],3027567501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade],964333572:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],2320036040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.PredefinedType],2310774935:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.MeshLength,e.MeshWidth,e.LongitudinalBarNominalDiameter,e.TransverseBarNominalDiameter,e.LongitudinalBarCrossSectionArea,e.TransverseBarCrossSectionArea,e.LongitudinalBarSpacing,e.TransverseBarSpacing,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],3818125796:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingElement,e.RelatedSurfaceFeatures],160246688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.RelatingObject,e.RelatedObjects],146592293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],550521510:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],2781568857:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1768891740:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2157484638:e=>[e.Curve3D,e.AssociatedGeometry,e.MasterRepresentation],3649235739:e=>[e.Position,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],544395925:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString(),e.BaseCurve,e.EndPoint]},1027922057:e=>[e.Position,e.SepticTerm,e.SexticTerm,e.QuinticTerm,e.QuarticTerm,e.CubicTerm,e.QuadraticTerm,e.LinearTerm,e.ConstantTerm],4074543187:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],33720170:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3599934289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1894708472:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],42703149:e=>[e.Position,e.SineTerm,e.LinearTerm,e.ConstantTerm],4097777520:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.RefLatitude,e.RefLongitude,e.RefElevation,e.LandTitleNumber,e.SiteAddress],2533589738:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1072016465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3856911033:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType,e.ElevationWithFlooring],1305183839:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3812236995:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.LongName],3112655638:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1039846685:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],338393293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],682877961:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},1179482911:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],1004757350:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},4243806635:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.AxisDirection],214636428:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2445595289:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType,e.Axis],2757150158:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,e.PredefinedType],1807405624:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1252848954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose],2082059205:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString()]},734778138:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition,e.ConditionCoordinateSystem],1235345126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal],2986769608:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.TheoryType,e.ResultForLoadGroup,null==(t=e.IsLinear)?void 0:t.toString()]},3657597509:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1975003073:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedCondition],148013059:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],3101698114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2315554128:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2254336722:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType],413509423:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],5716631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3824725483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.TensionForce,e.PreStress,e.FrictionCoefficient,e.AnchorageSlip,e.MinCurvatureRadius],2347447852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],3081323446:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3663046924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.PredefinedType],2281632017:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2415094496:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.SheathDiameter],618700268:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1692211062:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2097647324:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1953115116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3593883385:e=>{var t;return[e.BasisCurve,e.Trim1,e.Trim2,null==(t=e.SenseAgreement)?void 0:t.toString(),e.MasterRepresentation]},1600972822:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1911125066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],728799441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],840318589:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1530820697:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3956297820:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2391383451:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3313531582:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2769231204:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],926996030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1898987631:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1133259667:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4009809668:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.PartitioningType,null==(t=e.ParameterTakesPrecedence)?void 0:t.toString(),e.UserDefinedPartitioningType]},4088093105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.WorkingTimes,e.ExceptionTimes,e.PredefinedType],1028945134:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime],4218914973:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],3342526732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.CreationDate,e.Creators,e.Purpose,e.Duration,e.TotalFloat,e.StartTime,e.FinishTime,e.PredefinedType],1033361043:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName],3821786052:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.PredefinedType,e.Status,e.LongDescription],1411407467:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3352864051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1871374353:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4266260250:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.RailHeadDistance],1545765605:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],317615605:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.DesignParameters],1662888072:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],3460190687:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.OriginalValue,e.CurrentValue,e.TotalReplacementCost,e.Owner,e.User,e.ResponsiblePerson,e.IncorporationDate,e.DepreciatedValue],1532957894:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1967976161:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString()]},2461110595:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec]},819618141:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3649138523:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],231477066:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1136057603:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},644574406:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.PredefinedType],963979645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.UsageType,e.PredefinedType],4031249490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.CompositionType,e.ElevationOfRefHeight,e.ElevationOfTerrain,e.BuildingAddress],2979338954:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],39481116:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1909888760:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1177604601:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],1876633798:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3862327254:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.LongName],2188180465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],395041908:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3293546465:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2674252688:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1285652485:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3203706013:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2951183804:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3296154744:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2611217952:e=>[e.Position,e.Radius],1677625105:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2301859152:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],843113511:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],400855858:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3850581409:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2816379211:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3898045240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],1060000209:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],488727124:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.Identification,e.LongDescription,e.Usage,e.BaseCosts,e.BaseQuantity,e.PredefinedType],2940368186:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],335055490:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2954562838:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1502416096:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1973544240:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3495092785:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3961806047:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3426335179:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1335981549:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2635815018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],479945903:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1599208980:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2063403501:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType],1945004755:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3040386961:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3041715199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.FlowDirection,e.PredefinedType,e.SystemType],3205830791:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],395920057:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.OperationType,e.UserDefinedOperationType],869906466:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3760055223:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2030761528:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3071239417:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1077100507:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3376911765:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],663422040:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2417008758:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3277789161:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2142170206:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1534661035:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1217240411:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],712377611:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1658829314:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2814081492:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3747195512:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],484807127:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1209101575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.LongName,e.PredefinedType],346874300:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1810631287:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4222183408:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2058353004:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4278956645:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],4037862832:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],2188021234:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3132237377:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],987401354:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],707683696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2223149337:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3508470533:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],900683007:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2713699986:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],3009204131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.UAxes,e.VAxes,e.WAxes,e.PredefinedType],3319311131:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2068733104:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4175244083:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2176052936:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2696325953:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,null==(t=e.Mountable)?void 0:t.toString()]},76236018:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],629592764:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1154579445:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation],1638804497:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1437502449:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1073191201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2078563270:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],234836483:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2474470126:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2182337498:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],144952367:e=>{var t;return[e.Segments,null==(t=e.SelfIntersect)?void 0:t.toString()]},3694346114:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1383356374:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1687234759:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType,e.ConstructionType],310824031:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3612865200:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3171933400:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],738039164:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],655969474:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],90941305:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3290496277:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2262370178:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3024970846:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3283111854:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1232101972:e=>{var t,s;return[e.Degree,e.ControlPointsList,e.CurveForm,null==(t=e.ClosedCurve)?void 0:t.toString(),null==(s=e.SelfIntersect)?void 0:s.toString(),e.KnotMultiplicities,e.Knots,e.KnotSpec,e.WeightsData]},3798194928:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],979691226:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.SteelGrade,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.PredefinedType,e.BarSurface],2572171363:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType,e.NominalDiameter,e.CrossSectionArea,e.BarLength,e.BarSurface,e.BendingShapeCode,e.BendingParameters?e.BendingParameters.map((e=>sD(e))):null],2016517767:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3053780830:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1783015770:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1329646415:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],991950508:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1529196076:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3420628829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1999602285:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1404847402:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],331165859:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4252922144:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.NumberOfRisers,e.NumberOfTreads,e.RiserHeight,e.TreadLength,e.PredefinedType],2515109513:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.OrientationOf2DPlane,e.LoadedBy,e.HasResults,e.SharedPlacement],385403989:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.PredefinedType,e.ActionType,e.ActionSource,e.Coefficient,e.Purpose,e.SelfWeightCoefficients],1621171031:e=>{var t;return[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.AppliedLoad,e.GlobalOrLocal,null==(t=e.DestabilizingLoad)?void 0:t.toString(),e.ProjectedOrTrue,e.PredefinedType]},1162798199:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],812556717:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3425753595:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3825984169:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1620046519:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3026737570:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3179687236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],4292641817:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4207607924:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2391406946:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3512223829:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4237592921:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3304561284:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.OverallHeight,e.OverallWidth,e.PredefinedType,e.PartitioningType,e.UserDefinedPartitioningType],2874132201:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],1634111441:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],177149247:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2056796094:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3001207471:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],325726236:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.PredefinedType],277319702:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],753842376:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4196446775:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],32344328:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3314249567:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1095909175:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2938176219:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],635142910:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3758799889:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1051757585:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4217484030:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3999819293:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3902619387:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],639361253:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3221913625:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3571504051:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2272882330:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],578613899:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ApplicableOccurrence,e.HasPropertySets,e.RepresentationMaps,e.Tag,e.ElementType,e.PredefinedType],3460952963:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4136498852:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3640358203:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4074379575:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3693000487:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1052013943:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],562808652:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.LongName,e.PredefinedType],1062813311:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],342316401:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3518393246:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1360408905:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1904799276:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],862014818:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3310460725:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],24726584:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],264262732:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],402227799:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1003880860:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3415622556:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],819412036:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],1426591983:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],182646315:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],2680139844:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],1971632696:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag],2295281155:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4086658281:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],630975310:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],4288193352:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],3087945054:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType],25142252:e=>[e.GlobalId,e.OwnerHistory,e.Name,e.Description,e.ObjectType,e.ObjectPlacement,e.Representation,e.Tag,e.PredefinedType]},$b[3]={3699917729:e=>new hb.IfcAbsorbedDoseMeasure(e),4182062534:e=>new hb.IfcAccelerationMeasure(e),360377573:e=>new hb.IfcAmountOfSubstanceMeasure(e),632304761:e=>new hb.IfcAngularVelocityMeasure(e),3683503648:e=>new hb.IfcArcIndex(e),1500781891:e=>new hb.IfcAreaDensityMeasure(e),2650437152:e=>new hb.IfcAreaMeasure(e),2314439260:e=>new hb.IfcBinary(e),2735952531:e=>new hb.IfcBoolean(e),1867003952:e=>new hb.IfcBoxAlignment(e),1683019596:e=>new hb.IfcCardinalPointReference(e),2991860651:e=>new hb.IfcComplexNumber(e),3812528620:e=>new hb.IfcCompoundPlaneAngleMeasure(e),3238673880:e=>new hb.IfcContextDependentMeasure(e),1778710042:e=>new hb.IfcCountMeasure(e),94842927:e=>new hb.IfcCurvatureMeasure(e),937566702:e=>new hb.IfcDate(e),2195413836:e=>new hb.IfcDateTime(e),86635668:e=>new hb.IfcDayInMonthNumber(e),3701338814:e=>new hb.IfcDayInWeekNumber(e),1514641115:e=>new hb.IfcDescriptiveMeasure(e),4134073009:e=>new hb.IfcDimensionCount(e),524656162:e=>new hb.IfcDoseEquivalentMeasure(e),2541165894:e=>new hb.IfcDuration(e),69416015:e=>new hb.IfcDynamicViscosityMeasure(e),1827137117:e=>new hb.IfcElectricCapacitanceMeasure(e),3818826038:e=>new hb.IfcElectricChargeMeasure(e),2093906313:e=>new hb.IfcElectricConductanceMeasure(e),3790457270:e=>new hb.IfcElectricCurrentMeasure(e),2951915441:e=>new hb.IfcElectricResistanceMeasure(e),2506197118:e=>new hb.IfcElectricVoltageMeasure(e),2078135608:e=>new hb.IfcEnergyMeasure(e),1102727119:e=>new hb.IfcFontStyle(e),2715512545:e=>new hb.IfcFontVariant(e),2590844177:e=>new hb.IfcFontWeight(e),1361398929:e=>new hb.IfcForceMeasure(e),3044325142:e=>new hb.IfcFrequencyMeasure(e),3064340077:e=>new hb.IfcGloballyUniqueId(e),3113092358:e=>new hb.IfcHeatFluxDensityMeasure(e),1158859006:e=>new hb.IfcHeatingValueMeasure(e),983778844:e=>new hb.IfcIdentifier(e),3358199106:e=>new hb.IfcIlluminanceMeasure(e),2679005408:e=>new hb.IfcInductanceMeasure(e),1939436016:e=>new hb.IfcInteger(e),3809634241:e=>new hb.IfcIntegerCountRateMeasure(e),3686016028:e=>new hb.IfcIonConcentrationMeasure(e),3192672207:e=>new hb.IfcIsothermalMoistureCapacityMeasure(e),2054016361:e=>new hb.IfcKinematicViscosityMeasure(e),3258342251:e=>new hb.IfcLabel(e),1275358634:e=>new hb.IfcLanguageId(e),1243674935:e=>new hb.IfcLengthMeasure(e),1774176899:e=>new hb.IfcLineIndex(e),191860431:e=>new hb.IfcLinearForceMeasure(e),2128979029:e=>new hb.IfcLinearMomentMeasure(e),1307019551:e=>new hb.IfcLinearStiffnessMeasure(e),3086160713:e=>new hb.IfcLinearVelocityMeasure(e),503418787:e=>new hb.IfcLogical(e),2095003142:e=>new hb.IfcLuminousFluxMeasure(e),2755797622:e=>new hb.IfcLuminousIntensityDistributionMeasure(e),151039812:e=>new hb.IfcLuminousIntensityMeasure(e),286949696:e=>new hb.IfcMagneticFluxDensityMeasure(e),2486716878:e=>new hb.IfcMagneticFluxMeasure(e),1477762836:e=>new hb.IfcMassDensityMeasure(e),4017473158:e=>new hb.IfcMassFlowRateMeasure(e),3124614049:e=>new hb.IfcMassMeasure(e),3531705166:e=>new hb.IfcMassPerLengthMeasure(e),3341486342:e=>new hb.IfcModulusOfElasticityMeasure(e),2173214787:e=>new hb.IfcModulusOfLinearSubgradeReactionMeasure(e),1052454078:e=>new hb.IfcModulusOfRotationalSubgradeReactionMeasure(e),1753493141:e=>new hb.IfcModulusOfSubgradeReactionMeasure(e),3177669450:e=>new hb.IfcMoistureDiffusivityMeasure(e),1648970520:e=>new hb.IfcMolecularWeightMeasure(e),3114022597:e=>new hb.IfcMomentOfInertiaMeasure(e),2615040989:e=>new hb.IfcMonetaryMeasure(e),765770214:e=>new hb.IfcMonthInYearNumber(e),525895558:e=>new hb.IfcNonNegativeLengthMeasure(e),2095195183:e=>new hb.IfcNormalisedRatioMeasure(e),2395907400:e=>new hb.IfcNumericMeasure(e),929793134:e=>new hb.IfcPHMeasure(e),2260317790:e=>new hb.IfcParameterValue(e),2642773653:e=>new hb.IfcPlanarForceMeasure(e),4042175685:e=>new hb.IfcPlaneAngleMeasure(e),1790229001:e=>new hb.IfcPositiveInteger(e),2815919920:e=>new hb.IfcPositiveLengthMeasure(e),3054510233:e=>new hb.IfcPositivePlaneAngleMeasure(e),1245737093:e=>new hb.IfcPositiveRatioMeasure(e),1364037233:e=>new hb.IfcPowerMeasure(e),2169031380:e=>new hb.IfcPresentableText(e),3665567075:e=>new hb.IfcPressureMeasure(e),2798247006:e=>new hb.IfcPropertySetDefinitionSet(e),3972513137:e=>new hb.IfcRadioActivityMeasure(e),96294661:e=>new hb.IfcRatioMeasure(e),200335297:e=>new hb.IfcReal(e),2133746277:e=>new hb.IfcRotationalFrequencyMeasure(e),1755127002:e=>new hb.IfcRotationalMassMeasure(e),3211557302:e=>new hb.IfcRotationalStiffnessMeasure(e),3467162246:e=>new hb.IfcSectionModulusMeasure(e),2190458107:e=>new hb.IfcSectionalAreaIntegralMeasure(e),408310005:e=>new hb.IfcShearModulusMeasure(e),3471399674:e=>new hb.IfcSolidAngleMeasure(e),4157543285:e=>new hb.IfcSoundPowerLevelMeasure(e),846465480:e=>new hb.IfcSoundPowerMeasure(e),3457685358:e=>new hb.IfcSoundPressureLevelMeasure(e),993287707:e=>new hb.IfcSoundPressureMeasure(e),3477203348:e=>new hb.IfcSpecificHeatCapacityMeasure(e),2757832317:e=>new hb.IfcSpecularExponent(e),361837227:e=>new hb.IfcSpecularRoughness(e),58845555:e=>new hb.IfcTemperatureGradientMeasure(e),1209108979:e=>new hb.IfcTemperatureRateOfChangeMeasure(e),2801250643:e=>new hb.IfcText(e),1460886941:e=>new hb.IfcTextAlignment(e),3490877962:e=>new hb.IfcTextDecoration(e),603696268:e=>new hb.IfcTextFontName(e),296282323:e=>new hb.IfcTextTransformation(e),232962298:e=>new hb.IfcThermalAdmittanceMeasure(e),2645777649:e=>new hb.IfcThermalConductivityMeasure(e),2281867870:e=>new hb.IfcThermalExpansionCoefficientMeasure(e),857959152:e=>new hb.IfcThermalResistanceMeasure(e),2016195849:e=>new hb.IfcThermalTransmittanceMeasure(e),743184107:e=>new hb.IfcThermodynamicTemperatureMeasure(e),4075327185:e=>new hb.IfcTime(e),2726807636:e=>new hb.IfcTimeMeasure(e),2591213694:e=>new hb.IfcTimeStamp(e),1278329552:e=>new hb.IfcTorqueMeasure(e),950732822:e=>new hb.IfcURIReference(e),3345633955:e=>new hb.IfcVaporPermeabilityMeasure(e),3458127941:e=>new hb.IfcVolumeMeasure(e),2593997549:e=>new hb.IfcVolumetricFlowRateMeasure(e),51269191:e=>new hb.IfcWarpingConstantMeasure(e),1718600412:e=>new hb.IfcWarpingMomentMeasure(e)},function(e){e.IfcAbsorbedDoseMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAccelerationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAmountOfSubstanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAngularVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcArcIndex=class{constructor(e){this.value=e}};e.IfcAreaDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcAreaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBinary=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcBoolean=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcBoxAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcCardinalPointReference=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcComplexNumber=class{constructor(e){this.value=e}};e.IfcCompoundPlaneAngleMeasure=class{constructor(e){this.value=e}};e.IfcContextDependentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCountMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcCurvatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDate=class{constructor(e){this.value=e,this.type=1}};e.IfcDateTime=class{constructor(e){this.value=e,this.type=1}};e.IfcDayInMonthNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDayInWeekNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDescriptiveMeasure=class{constructor(e){this.value=e,this.type=1}};class t{constructor(e){this.type=4,this.value=parseFloat(e)}}e.IfcDimensionCount=t;e.IfcDoseEquivalentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcDuration=class{constructor(e){this.value=e,this.type=1}};e.IfcDynamicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCapacitanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricChargeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricConductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricCurrentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcElectricVoltageMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcEnergyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFontStyle=class{constructor(e){this.value=e,this.type=1}};e.IfcFontVariant=class{constructor(e){this.value=e,this.type=1}};e.IfcFontWeight=class{constructor(e){this.value=e,this.type=1}};e.IfcForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcGloballyUniqueId=class{constructor(e){this.value=e,this.type=1}};e.IfcHeatFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcHeatingValueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIdentifier=class{constructor(e){this.value=e,this.type=1}};e.IfcIlluminanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInductanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIntegerCountRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIonConcentrationMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcIsothermalMoistureCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcKinematicViscosityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLabel=class{constructor(e){this.value=e,this.type=1}};e.IfcLanguageId=class{constructor(e){this.value=e,this.type=1}};e.IfcLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLineIndex=class{constructor(e){this.value=e}};e.IfcLinearForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLinearVelocityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLogical=class{constructor(e){this.type=3,this.value="true"==e}};e.IfcLuminousFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityDistributionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcLuminousIntensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMagneticFluxMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassDensityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMassPerLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfElasticityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfLinearSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfRotationalSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcModulusOfSubgradeReactionMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMoistureDiffusivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMolecularWeightMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMomentOfInertiaMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonetaryMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcMonthInYearNumber=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNonNegativeLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNormalisedRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcNumericMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPHMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcParameterValue=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlanarForceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveInteger=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveLengthMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositivePlaneAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPositiveRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPresentableText=class{constructor(e){this.value=e,this.type=1}};e.IfcPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcPropertySetDefinitionSet=class{constructor(e){this.value=e}};e.IfcRadioActivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRatioMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcReal=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalFrequencyMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalMassMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcRotationalStiffnessMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSectionalAreaIntegralMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcShearModulusMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSolidAngleMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPowerMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureLevelMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSoundPressureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecificHeatCapacityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularExponent=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcSpecularRoughness=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureGradientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTemperatureRateOfChangeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcText=class{constructor(e){this.value=e,this.type=1}};e.IfcTextAlignment=class{constructor(e){this.value=e,this.type=1}};e.IfcTextDecoration=class{constructor(e){this.value=e,this.type=1}};e.IfcTextFontName=class{constructor(e){this.value=e,this.type=1}};e.IfcTextTransformation=class{constructor(e){this.value=e,this.type=1}};e.IfcThermalAdmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalConductivityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalExpansionCoefficientMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalResistanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermalTransmittanceMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcThermodynamicTemperatureMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTime=class{constructor(e){this.value=e,this.type=1}};e.IfcTimeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTimeStamp=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcTorqueMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcURIReference=class{constructor(e){this.value=e,this.type=1}};e.IfcVaporPermeabilityMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumeMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcVolumetricFlowRateMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingConstantMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};e.IfcWarpingMomentMeasure=class{constructor(e){this.type=4,this.value=parseFloat(e)}};class s{}s.EMAIL={type:3,value:"EMAIL"},s.FAX={type:3,value:"FAX"},s.PHONE={type:3,value:"PHONE"},s.POST={type:3,value:"POST"},s.VERBAL={type:3,value:"VERBAL"},s.USERDEFINED={type:3,value:"USERDEFINED"},s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionRequestTypeEnum=s;class n{}n.BRAKES={type:3,value:"BRAKES"},n.BUOYANCY={type:3,value:"BUOYANCY"},n.COMPLETION_G1={type:3,value:"COMPLETION_G1"},n.CREEP={type:3,value:"CREEP"},n.CURRENT={type:3,value:"CURRENT"},n.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},n.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},n.ERECTION={type:3,value:"ERECTION"},n.FIRE={type:3,value:"FIRE"},n.ICE={type:3,value:"ICE"},n.IMPACT={type:3,value:"IMPACT"},n.IMPULSE={type:3,value:"IMPULSE"},n.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},n.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},n.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},n.PROPPING={type:3,value:"PROPPING"},n.RAIN={type:3,value:"RAIN"},n.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},n.SHRINKAGE={type:3,value:"SHRINKAGE"},n.SNOW_S={type:3,value:"SNOW_S"},n.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},n.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},n.TRANSPORT={type:3,value:"TRANSPORT"},n.WAVE={type:3,value:"WAVE"},n.WIND_W={type:3,value:"WIND_W"},n.USERDEFINED={type:3,value:"USERDEFINED"},n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=n;class i{}i.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},i.PERMANENT_G={type:3,value:"PERMANENT_G"},i.VARIABLE_Q={type:3,value:"VARIABLE_Q"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=i;class a{}a.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},a.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},a.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},a.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},a.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=a;class r{}r.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},r.HOME={type:3,value:"HOME"},r.OFFICE={type:3,value:"OFFICE"},r.SITE={type:3,value:"SITE"},r.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=r;class l{}l.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},l.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},l.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=l;class o{}o.DIFFUSER={type:3,value:"DIFFUSER"},o.GRILLE={type:3,value:"GRILLE"},o.LOUVRE={type:3,value:"LOUVRE"},o.REGISTER={type:3,value:"REGISTER"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=o;class c{}c.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},c.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},c.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},c.HEATPIPE={type:3,value:"HEATPIPE"},c.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},c.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},c.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},c.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},c.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=c;class u{}u.BELL={type:3,value:"BELL"},u.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},u.LIGHT={type:3,value:"LIGHT"},u.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},u.RAILWAYCROCODILE={type:3,value:"RAILWAYCROCODILE"},u.RAILWAYDETONATOR={type:3,value:"RAILWAYDETONATOR"},u.SIREN={type:3,value:"SIREN"},u.WHISTLE={type:3,value:"WHISTLE"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=u;class h{}h.BLOSSCURVE={type:3,value:"BLOSSCURVE"},h.CONSTANTCANT={type:3,value:"CONSTANTCANT"},h.COSINECURVE={type:3,value:"COSINECURVE"},h.HELMERTCURVE={type:3,value:"HELMERTCURVE"},h.LINEARTRANSITION={type:3,value:"LINEARTRANSITION"},h.SINECURVE={type:3,value:"SINECURVE"},h.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentCantSegmentTypeEnum=h;class p{}p.BLOSSCURVE={type:3,value:"BLOSSCURVE"},p.CIRCULARARC={type:3,value:"CIRCULARARC"},p.CLOTHOID={type:3,value:"CLOTHOID"},p.COSINECURVE={type:3,value:"COSINECURVE"},p.CUBIC={type:3,value:"CUBIC"},p.HELMERTCURVE={type:3,value:"HELMERTCURVE"},p.LINE={type:3,value:"LINE"},p.SINECURVE={type:3,value:"SINECURVE"},p.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentHorizontalSegmentTypeEnum=p;class A{}A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlignmentTypeEnum=A;class d{}d.CIRCULARARC={type:3,value:"CIRCULARARC"},d.CLOTHOID={type:3,value:"CLOTHOID"},d.CONSTANTGRADIENT={type:3,value:"CONSTANTGRADIENT"},d.PARABOLICARC={type:3,value:"PARABOLICARC"},e.IfcAlignmentVerticalSegmentTypeEnum=d;class f{}f.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},f.LOADING_3D={type:3,value:"LOADING_3D"},f.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},f.USERDEFINED={type:3,value:"USERDEFINED"},f.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=f;class I{}I.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},I.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},I.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},I.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=I;class y{}y.ASBUILTAREA={type:3,value:"ASBUILTAREA"},y.ASBUILTLINE={type:3,value:"ASBUILTLINE"},y.ASBUILTPOINT={type:3,value:"ASBUILTPOINT"},y.ASSUMEDAREA={type:3,value:"ASSUMEDAREA"},y.ASSUMEDLINE={type:3,value:"ASSUMEDLINE"},y.ASSUMEDPOINT={type:3,value:"ASSUMEDPOINT"},y.NON_PHYSICAL_SIGNAL={type:3,value:"NON_PHYSICAL_SIGNAL"},y.SUPERELEVATIONEVENT={type:3,value:"SUPERELEVATIONEVENT"},y.WIDTHEVENT={type:3,value:"WIDTHEVENT"},y.USERDEFINED={type:3,value:"USERDEFINED"},y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnnotationTypeEnum=y;class m{}m.ADD={type:3,value:"ADD"},m.DIVIDE={type:3,value:"DIVIDE"},m.MULTIPLY={type:3,value:"MULTIPLY"},m.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=m;class v{}v.FACTORY={type:3,value:"FACTORY"},v.SITE={type:3,value:"SITE"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=v;class w{}w.AMPLIFIER={type:3,value:"AMPLIFIER"},w.CAMERA={type:3,value:"CAMERA"},w.COMMUNICATIONTERMINAL={type:3,value:"COMMUNICATIONTERMINAL"},w.DISPLAY={type:3,value:"DISPLAY"},w.MICROPHONE={type:3,value:"MICROPHONE"},w.PLAYER={type:3,value:"PLAYER"},w.PROJECTOR={type:3,value:"PROJECTOR"},w.RECEIVER={type:3,value:"RECEIVER"},w.RECORDINGEQUIPMENT={type:3,value:"RECORDINGEQUIPMENT"},w.SPEAKER={type:3,value:"SPEAKER"},w.SWITCHER={type:3,value:"SWITCHER"},w.TELEPHONE={type:3,value:"TELEPHONE"},w.TUNER={type:3,value:"TUNER"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=w;class g{}g.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},g.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},g.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},g.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},g.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},g.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=g;class E{}E.CONICAL_SURF={type:3,value:"CONICAL_SURF"},E.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},E.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},E.PLANE_SURF={type:3,value:"PLANE_SURF"},E.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},E.RULED_SURF={type:3,value:"RULED_SURF"},E.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},E.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},E.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},E.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},E.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=E;class T{}T.BEAM={type:3,value:"BEAM"},T.CORNICE={type:3,value:"CORNICE"},T.DIAPHRAGM={type:3,value:"DIAPHRAGM"},T.EDGEBEAM={type:3,value:"EDGEBEAM"},T.GIRDER_SEGMENT={type:3,value:"GIRDER_SEGMENT"},T.HATSTONE={type:3,value:"HATSTONE"},T.HOLLOWCORE={type:3,value:"HOLLOWCORE"},T.JOIST={type:3,value:"JOIST"},T.LINTEL={type:3,value:"LINTEL"},T.PIERCAP={type:3,value:"PIERCAP"},T.SPANDREL={type:3,value:"SPANDREL"},T.T_BEAM={type:3,value:"T_BEAM"},T.USERDEFINED={type:3,value:"USERDEFINED"},T.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=T;class b{}b.FIXED_MOVEMENT={type:3,value:"FIXED_MOVEMENT"},b.FREE_MOVEMENT={type:3,value:"FREE_MOVEMENT"},b.GUIDED_LONGITUDINAL={type:3,value:"GUIDED_LONGITUDINAL"},b.GUIDED_TRANSVERSAL={type:3,value:"GUIDED_TRANSVERSAL"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeDisplacementEnum=b;class D{}D.CYLINDRICAL={type:3,value:"CYLINDRICAL"},D.DISK={type:3,value:"DISK"},D.ELASTOMERIC={type:3,value:"ELASTOMERIC"},D.GUIDE={type:3,value:"GUIDE"},D.POT={type:3,value:"POT"},D.ROCKER={type:3,value:"ROCKER"},D.ROLLER={type:3,value:"ROLLER"},D.SPHERICAL={type:3,value:"SPHERICAL"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeEnum=D;class P{}P.EQUALTO={type:3,value:"EQUALTO"},P.GREATERTHAN={type:3,value:"GREATERTHAN"},P.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},P.INCLUDEDIN={type:3,value:"INCLUDEDIN"},P.INCLUDES={type:3,value:"INCLUDES"},P.LESSTHAN={type:3,value:"LESSTHAN"},P.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},P.NOTEQUALTO={type:3,value:"NOTEQUALTO"},P.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},P.NOTINCLUDES={type:3,value:"NOTINCLUDES"},e.IfcBenchmarkEnum=P;class R{}R.STEAM={type:3,value:"STEAM"},R.WATER={type:3,value:"WATER"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=R;class C{}C.DIFFERENCE={type:3,value:"DIFFERENCE"},C.INTERSECTION={type:3,value:"INTERSECTION"},C.UNION={type:3,value:"UNION"},e.IfcBooleanOperator=C;class _{}_.ABUTMENT={type:3,value:"ABUTMENT"},_.DECK={type:3,value:"DECK"},_.DECK_SEGMENT={type:3,value:"DECK_SEGMENT"},_.FOUNDATION={type:3,value:"FOUNDATION"},_.PIER={type:3,value:"PIER"},_.PIER_SEGMENT={type:3,value:"PIER_SEGMENT"},_.PYLON={type:3,value:"PYLON"},_.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},_.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},_.SURFACESTRUCTURE={type:3,value:"SURFACESTRUCTURE"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgePartTypeEnum=_;class B{}B.ARCHED={type:3,value:"ARCHED"},B.CABLE_STAYED={type:3,value:"CABLE_STAYED"},B.CANTILEVER={type:3,value:"CANTILEVER"},B.CULVERT={type:3,value:"CULVERT"},B.FRAMEWORK={type:3,value:"FRAMEWORK"},B.GIRDER={type:3,value:"GIRDER"},B.SUSPENSION={type:3,value:"SUSPENSION"},B.TRUSS={type:3,value:"TRUSS"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgeTypeEnum=B;class O{}O.APRON={type:3,value:"APRON"},O.ARMOURUNIT={type:3,value:"ARMOURUNIT"},O.INSULATION={type:3,value:"INSULATION"},O.PRECASTPANEL={type:3,value:"PRECASTPANEL"},O.SAFETYCAGE={type:3,value:"SAFETYCAGE"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=O;class S{}S.COMPLEX={type:3,value:"COMPLEX"},S.ELEMENT={type:3,value:"ELEMENT"},S.PARTIAL={type:3,value:"PARTIAL"},S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=S;class N{}N.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},N.FENESTRATION={type:3,value:"FENESTRATION"},N.FOUNDATION={type:3,value:"FOUNDATION"},N.LOADBEARING={type:3,value:"LOADBEARING"},N.OUTERSHELL={type:3,value:"OUTERSHELL"},N.PRESTRESSING={type:3,value:"PRESTRESSING"},N.REINFORCING={type:3,value:"REINFORCING"},N.SHADING={type:3,value:"SHADING"},N.TRANSPORT={type:3,value:"TRANSPORT"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=N;class x{}x.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},x.FENESTRATION={type:3,value:"FENESTRATION"},x.FOUNDATION={type:3,value:"FOUNDATION"},x.LOADBEARING={type:3,value:"LOADBEARING"},x.MOORING={type:3,value:"MOORING"},x.OUTERSHELL={type:3,value:"OUTERSHELL"},x.PRESTRESSING={type:3,value:"PRESTRESSING"},x.RAILWAYLINE={type:3,value:"RAILWAYLINE"},x.RAILWAYTRACK={type:3,value:"RAILWAYTRACK"},x.REINFORCING={type:3,value:"REINFORCING"},x.SHADING={type:3,value:"SHADING"},x.TRACKCIRCUIT={type:3,value:"TRACKCIRCUIT"},x.TRANSPORT={type:3,value:"TRANSPORT"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuiltSystemTypeEnum=x;class L{}L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=L;class M{}M.BEND={type:3,value:"BEND"},M.CONNECTOR={type:3,value:"CONNECTOR"},M.CROSS={type:3,value:"CROSS"},M.JUNCTION={type:3,value:"JUNCTION"},M.TEE={type:3,value:"TEE"},M.TRANSITION={type:3,value:"TRANSITION"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=M;class F{}F.CABLEBRACKET={type:3,value:"CABLEBRACKET"},F.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},F.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},F.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},F.CATENARYWIRE={type:3,value:"CATENARYWIRE"},F.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},F.DROPPER={type:3,value:"DROPPER"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=F;class H{}H.CONNECTOR={type:3,value:"CONNECTOR"},H.ENTRY={type:3,value:"ENTRY"},H.EXIT={type:3,value:"EXIT"},H.FANOUT={type:3,value:"FANOUT"},H.JUNCTION={type:3,value:"JUNCTION"},H.TRANSITION={type:3,value:"TRANSITION"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=H;class U{}U.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},U.CABLESEGMENT={type:3,value:"CABLESEGMENT"},U.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},U.CONTACTWIRESEGMENT={type:3,value:"CONTACTWIRESEGMENT"},U.CORESEGMENT={type:3,value:"CORESEGMENT"},U.FIBERSEGMENT={type:3,value:"FIBERSEGMENT"},U.FIBERTUBE={type:3,value:"FIBERTUBE"},U.OPTICALCABLESEGMENT={type:3,value:"OPTICALCABLESEGMENT"},U.STITCHWIRE={type:3,value:"STITCHWIRE"},U.WIREPAIRSEGMENT={type:3,value:"WIREPAIRSEGMENT"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=U;class G{}G.CAISSON={type:3,value:"CAISSON"},G.WELL={type:3,value:"WELL"},G.USERDEFINED={type:3,value:"USERDEFINED"},G.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCaissonFoundationTypeEnum=G;class j{}j.ADDED={type:3,value:"ADDED"},j.DELETED={type:3,value:"DELETED"},j.MODIFIED={type:3,value:"MODIFIED"},j.NOCHANGE={type:3,value:"NOCHANGE"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=j;class V{}V.AIRCOOLED={type:3,value:"AIRCOOLED"},V.HEATRECOVERY={type:3,value:"HEATRECOVERY"},V.WATERCOOLED={type:3,value:"WATERCOOLED"},V.USERDEFINED={type:3,value:"USERDEFINED"},V.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=V;class k{}k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=k;class Q{}Q.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},Q.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},Q.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},Q.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},Q.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},Q.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},Q.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},Q.USERDEFINED={type:3,value:"USERDEFINED"},Q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=Q;class W{}W.COLUMN={type:3,value:"COLUMN"},W.PIERSTEM={type:3,value:"PIERSTEM"},W.PIERSTEM_SEGMENT={type:3,value:"PIERSTEM_SEGMENT"},W.PILASTER={type:3,value:"PILASTER"},W.STANDCOLUMN={type:3,value:"STANDCOLUMN"},W.USERDEFINED={type:3,value:"USERDEFINED"},W.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=W;class z{}z.ANTENNA={type:3,value:"ANTENNA"},z.AUTOMATON={type:3,value:"AUTOMATON"},z.COMPUTER={type:3,value:"COMPUTER"},z.FAX={type:3,value:"FAX"},z.GATEWAY={type:3,value:"GATEWAY"},z.INTELLIGENTPERIPHERAL={type:3,value:"INTELLIGENTPERIPHERAL"},z.IPNETWORKEQUIPMENT={type:3,value:"IPNETWORKEQUIPMENT"},z.LINESIDEELECTRONICUNIT={type:3,value:"LINESIDEELECTRONICUNIT"},z.MODEM={type:3,value:"MODEM"},z.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},z.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},z.NETWORKHUB={type:3,value:"NETWORKHUB"},z.OPTICALLINETERMINAL={type:3,value:"OPTICALLINETERMINAL"},z.OPTICALNETWORKUNIT={type:3,value:"OPTICALNETWORKUNIT"},z.PRINTER={type:3,value:"PRINTER"},z.RADIOBLOCKCENTER={type:3,value:"RADIOBLOCKCENTER"},z.REPEATER={type:3,value:"REPEATER"},z.ROUTER={type:3,value:"ROUTER"},z.SCANNER={type:3,value:"SCANNER"},z.TELECOMMAND={type:3,value:"TELECOMMAND"},z.TELEPHONYEXCHANGE={type:3,value:"TELEPHONYEXCHANGE"},z.TRANSITIONCOMPONENT={type:3,value:"TRANSITIONCOMPONENT"},z.TRANSPONDER={type:3,value:"TRANSPONDER"},z.TRANSPORTEQUIPMENT={type:3,value:"TRANSPORTEQUIPMENT"},z.USERDEFINED={type:3,value:"USERDEFINED"},z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=z;class K{}K.P_COMPLEX={type:3,value:"P_COMPLEX"},K.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=K;class Y{}Y.BOOSTER={type:3,value:"BOOSTER"},Y.DYNAMIC={type:3,value:"DYNAMIC"},Y.HERMETIC={type:3,value:"HERMETIC"},Y.OPENTYPE={type:3,value:"OPENTYPE"},Y.RECIPROCATING={type:3,value:"RECIPROCATING"},Y.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},Y.ROTARY={type:3,value:"ROTARY"},Y.ROTARYVANE={type:3,value:"ROTARYVANE"},Y.SCROLL={type:3,value:"SCROLL"},Y.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},Y.SINGLESCREW={type:3,value:"SINGLESCREW"},Y.SINGLESTAGE={type:3,value:"SINGLESTAGE"},Y.TROCHOIDAL={type:3,value:"TROCHOIDAL"},Y.TWINSCREW={type:3,value:"TWINSCREW"},Y.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},Y.USERDEFINED={type:3,value:"USERDEFINED"},Y.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=Y;class X{}X.AIRCOOLED={type:3,value:"AIRCOOLED"},X.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},X.WATERCOOLED={type:3,value:"WATERCOOLED"},X.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},X.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},X.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},X.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},X.USERDEFINED={type:3,value:"USERDEFINED"},X.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=X;class q{}q.ATEND={type:3,value:"ATEND"},q.ATPATH={type:3,value:"ATPATH"},q.ATSTART={type:3,value:"ATSTART"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=q;class J{}J.ADVISORY={type:3,value:"ADVISORY"},J.HARD={type:3,value:"HARD"},J.SOFT={type:3,value:"SOFT"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=J;class Z{}Z.DEMOLISHING={type:3,value:"DEMOLISHING"},Z.EARTHMOVING={type:3,value:"EARTHMOVING"},Z.ERECTING={type:3,value:"ERECTING"},Z.HEATING={type:3,value:"HEATING"},Z.LIGHTING={type:3,value:"LIGHTING"},Z.PAVING={type:3,value:"PAVING"},Z.PUMPING={type:3,value:"PUMPING"},Z.TRANSPORTING={type:3,value:"TRANSPORTING"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=Z;class ${}$.AGGREGATES={type:3,value:"AGGREGATES"},$.CONCRETE={type:3,value:"CONCRETE"},$.DRYWALL={type:3,value:"DRYWALL"},$.FUEL={type:3,value:"FUEL"},$.GYPSUM={type:3,value:"GYPSUM"},$.MASONRY={type:3,value:"MASONRY"},$.METAL={type:3,value:"METAL"},$.PLASTIC={type:3,value:"PLASTIC"},$.WOOD={type:3,value:"WOOD"},$.USERDEFINED={type:3,value:"USERDEFINED"},$.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionMaterialResourceTypeEnum=$;class ee{}ee.ASSEMBLY={type:3,value:"ASSEMBLY"},ee.FORMWORK={type:3,value:"FORMWORK"},ee.USERDEFINED={type:3,value:"USERDEFINED"},ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=ee;class te{}te.FLOATING={type:3,value:"FLOATING"},te.MULTIPOSITION={type:3,value:"MULTIPOSITION"},te.PROGRAMMABLE={type:3,value:"PROGRAMMABLE"},te.PROPORTIONAL={type:3,value:"PROPORTIONAL"},te.TWOPOSITION={type:3,value:"TWOPOSITION"},te.USERDEFINED={type:3,value:"USERDEFINED"},te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcControllerTypeEnum=te;class se{}se.BELTCONVEYOR={type:3,value:"BELTCONVEYOR"},se.BUCKETCONVEYOR={type:3,value:"BUCKETCONVEYOR"},se.CHUTECONVEYOR={type:3,value:"CHUTECONVEYOR"},se.SCREWCONVEYOR={type:3,value:"SCREWCONVEYOR"},se.USERDEFINED={type:3,value:"USERDEFINED"},se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConveyorSegmentTypeEnum=se;class ne{}ne.ACTIVE={type:3,value:"ACTIVE"},ne.PASSIVE={type:3,value:"PASSIVE"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=ne;class ie{}ie.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},ie.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},ie.NATURALDRAFT={type:3,value:"NATURALDRAFT"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=ie;class ae{}ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=ae;class re{}re.BUDGET={type:3,value:"BUDGET"},re.COSTPLAN={type:3,value:"COSTPLAN"},re.ESTIMATE={type:3,value:"ESTIMATE"},re.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},re.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},re.TENDER={type:3,value:"TENDER"},re.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=re;class le{}le.ARMOUR={type:3,value:"ARMOUR"},le.BALLASTBED={type:3,value:"BALLASTBED"},le.CORE={type:3,value:"CORE"},le.FILTER={type:3,value:"FILTER"},le.PAVEMENT={type:3,value:"PAVEMENT"},le.PROTECTION={type:3,value:"PROTECTION"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCourseTypeEnum=le;class oe{}oe.CEILING={type:3,value:"CEILING"},oe.CLADDING={type:3,value:"CLADDING"},oe.COPING={type:3,value:"COPING"},oe.FLOORING={type:3,value:"FLOORING"},oe.INSULATION={type:3,value:"INSULATION"},oe.MEMBRANE={type:3,value:"MEMBRANE"},oe.MOLDING={type:3,value:"MOLDING"},oe.ROOFING={type:3,value:"ROOFING"},oe.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},oe.SLEEVING={type:3,value:"SLEEVING"},oe.TOPPING={type:3,value:"TOPPING"},oe.WRAPPING={type:3,value:"WRAPPING"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=oe;class ce{}ce.OFFICE={type:3,value:"OFFICE"},ce.SITE={type:3,value:"SITE"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=ce;class ue{}ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=ue;class he{}he.LINEAR={type:3,value:"LINEAR"},he.LOG_LINEAR={type:3,value:"LOG_LINEAR"},he.LOG_LOG={type:3,value:"LOG_LOG"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=he;class pe{}pe.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},pe.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},pe.BLASTDAMPER={type:3,value:"BLASTDAMPER"},pe.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},pe.FIREDAMPER={type:3,value:"FIREDAMPER"},pe.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},pe.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},pe.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},pe.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},pe.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},pe.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=pe;class Ae{}Ae.MEASURED={type:3,value:"MEASURED"},Ae.PREDICTED={type:3,value:"PREDICTED"},Ae.SIMULATED={type:3,value:"SIMULATED"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=Ae;class de{}de.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},de.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},de.AREADENSITYUNIT={type:3,value:"AREADENSITYUNIT"},de.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},de.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},de.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},de.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},de.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},de.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},de.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},de.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},de.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},de.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},de.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},de.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},de.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},de.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},de.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},de.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},de.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},de.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},de.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},de.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},de.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},de.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},de.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},de.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},de.PHUNIT={type:3,value:"PHUNIT"},de.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},de.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},de.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},de.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},de.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},de.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},de.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},de.SOUNDPOWERLEVELUNIT={type:3,value:"SOUNDPOWERLEVELUNIT"},de.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},de.SOUNDPRESSURELEVELUNIT={type:3,value:"SOUNDPRESSURELEVELUNIT"},de.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},de.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},de.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},de.TEMPERATURERATEOFCHANGEUNIT={type:3,value:"TEMPERATURERATEOFCHANGEUNIT"},de.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},de.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},de.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},de.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},de.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},de.TORQUEUNIT={type:3,value:"TORQUEUNIT"},de.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},de.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},de.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},de.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},de.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=de;class fe{}fe.NEGATIVE={type:3,value:"NEGATIVE"},fe.POSITIVE={type:3,value:"POSITIVE"},e.IfcDirectionSenseEnum=fe;class Ie{}Ie.ANCHORPLATE={type:3,value:"ANCHORPLATE"},Ie.BIRDPROTECTION={type:3,value:"BIRDPROTECTION"},Ie.BRACKET={type:3,value:"BRACKET"},Ie.CABLEARRANGER={type:3,value:"CABLEARRANGER"},Ie.ELASTIC_CUSHION={type:3,value:"ELASTIC_CUSHION"},Ie.EXPANSION_JOINT_DEVICE={type:3,value:"EXPANSION_JOINT_DEVICE"},Ie.FILLER={type:3,value:"FILLER"},Ie.FLASHING={type:3,value:"FLASHING"},Ie.INSULATOR={type:3,value:"INSULATOR"},Ie.LOCK={type:3,value:"LOCK"},Ie.PANEL_STRENGTHENING={type:3,value:"PANEL_STRENGTHENING"},Ie.POINTMACHINEMOUNTINGDEVICE={type:3,value:"POINTMACHINEMOUNTINGDEVICE"},Ie.POINT_MACHINE_LOCKING_DEVICE={type:3,value:"POINT_MACHINE_LOCKING_DEVICE"},Ie.RAILBRACE={type:3,value:"RAILBRACE"},Ie.RAILPAD={type:3,value:"RAILPAD"},Ie.RAIL_LUBRICATION={type:3,value:"RAIL_LUBRICATION"},Ie.RAIL_MECHANICAL_EQUIPMENT={type:3,value:"RAIL_MECHANICAL_EQUIPMENT"},Ie.SHOE={type:3,value:"SHOE"},Ie.SLIDINGCHAIR={type:3,value:"SLIDINGCHAIR"},Ie.SOUNDABSORPTION={type:3,value:"SOUNDABSORPTION"},Ie.TENSIONINGEQUIPMENT={type:3,value:"TENSIONINGEQUIPMENT"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=Ie;class ye{}ye.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ye.DISPATCHINGBOARD={type:3,value:"DISPATCHINGBOARD"},ye.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ye.DISTRIBUTIONFRAME={type:3,value:"DISTRIBUTIONFRAME"},ye.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ye.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ye.USERDEFINED={type:3,value:"USERDEFINED"},ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionBoardTypeEnum=ye;class me{}me.FORMEDDUCT={type:3,value:"FORMEDDUCT"},me.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},me.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},me.MANHOLE={type:3,value:"MANHOLE"},me.METERCHAMBER={type:3,value:"METERCHAMBER"},me.SUMP={type:3,value:"SUMP"},me.TRENCH={type:3,value:"TRENCH"},me.VALVECHAMBER={type:3,value:"VALVECHAMBER"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=me;class ve{}ve.CABLE={type:3,value:"CABLE"},ve.CABLECARRIER={type:3,value:"CABLECARRIER"},ve.DUCT={type:3,value:"DUCT"},ve.PIPE={type:3,value:"PIPE"},ve.WIRELESS={type:3,value:"WIRELESS"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ve;class we{}we.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},we.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},we.CATENARY_SYSTEM={type:3,value:"CATENARY_SYSTEM"},we.CHEMICAL={type:3,value:"CHEMICAL"},we.CHILLEDWATER={type:3,value:"CHILLEDWATER"},we.COMMUNICATION={type:3,value:"COMMUNICATION"},we.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},we.CONDENSERWATER={type:3,value:"CONDENSERWATER"},we.CONTROL={type:3,value:"CONTROL"},we.CONVEYING={type:3,value:"CONVEYING"},we.DATA={type:3,value:"DATA"},we.DISPOSAL={type:3,value:"DISPOSAL"},we.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},we.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},we.DRAINAGE={type:3,value:"DRAINAGE"},we.EARTHING={type:3,value:"EARTHING"},we.ELECTRICAL={type:3,value:"ELECTRICAL"},we.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},we.EXHAUST={type:3,value:"EXHAUST"},we.FIREPROTECTION={type:3,value:"FIREPROTECTION"},we.FIXEDTRANSMISSIONNETWORK={type:3,value:"FIXEDTRANSMISSIONNETWORK"},we.FUEL={type:3,value:"FUEL"},we.GAS={type:3,value:"GAS"},we.HAZARDOUS={type:3,value:"HAZARDOUS"},we.HEATING={type:3,value:"HEATING"},we.LIGHTING={type:3,value:"LIGHTING"},we.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},we.MOBILENETWORK={type:3,value:"MOBILENETWORK"},we.MONITORINGSYSTEM={type:3,value:"MONITORINGSYSTEM"},we.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},we.OIL={type:3,value:"OIL"},we.OPERATIONAL={type:3,value:"OPERATIONAL"},we.OPERATIONALTELEPHONYSYSTEM={type:3,value:"OPERATIONALTELEPHONYSYSTEM"},we.OVERHEAD_CONTACTLINE_SYSTEM={type:3,value:"OVERHEAD_CONTACTLINE_SYSTEM"},we.POWERGENERATION={type:3,value:"POWERGENERATION"},we.RAINWATER={type:3,value:"RAINWATER"},we.REFRIGERATION={type:3,value:"REFRIGERATION"},we.RETURN_CIRCUIT={type:3,value:"RETURN_CIRCUIT"},we.SECURITY={type:3,value:"SECURITY"},we.SEWAGE={type:3,value:"SEWAGE"},we.SIGNAL={type:3,value:"SIGNAL"},we.STORMWATER={type:3,value:"STORMWATER"},we.TELEPHONE={type:3,value:"TELEPHONE"},we.TV={type:3,value:"TV"},we.VACUUM={type:3,value:"VACUUM"},we.VENT={type:3,value:"VENT"},we.VENTILATION={type:3,value:"VENTILATION"},we.WASTEWATER={type:3,value:"WASTEWATER"},we.WATERSUPPLY={type:3,value:"WATERSUPPLY"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=we;class ge{}ge.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},ge.PERSONAL={type:3,value:"PERSONAL"},ge.PUBLIC={type:3,value:"PUBLIC"},ge.RESTRICTED={type:3,value:"RESTRICTED"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=ge;class Ee{}Ee.DRAFT={type:3,value:"DRAFT"},Ee.FINAL={type:3,value:"FINAL"},Ee.FINALDRAFT={type:3,value:"FINALDRAFT"},Ee.REVISION={type:3,value:"REVISION"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=Ee;class Te{}Te.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},Te.FIXEDPANEL={type:3,value:"FIXEDPANEL"},Te.FOLDING={type:3,value:"FOLDING"},Te.REVOLVING={type:3,value:"REVOLVING"},Te.ROLLINGUP={type:3,value:"ROLLINGUP"},Te.SLIDING={type:3,value:"SLIDING"},Te.SWINGING={type:3,value:"SWINGING"},Te.USERDEFINED={type:3,value:"USERDEFINED"},Te.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=Te;class be{}be.LEFT={type:3,value:"LEFT"},be.MIDDLE={type:3,value:"MIDDLE"},be.RIGHT={type:3,value:"RIGHT"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=be;class De{}De.ALUMINIUM={type:3,value:"ALUMINIUM"},De.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},De.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},De.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},De.PLASTIC={type:3,value:"PLASTIC"},De.STEEL={type:3,value:"STEEL"},De.WOOD={type:3,value:"WOOD"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=De;class Pe{}Pe.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Pe.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Pe.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Pe.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Pe.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Pe.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Pe.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Pe.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Pe.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Pe.REVOLVING={type:3,value:"REVOLVING"},Pe.ROLLINGUP={type:3,value:"ROLLINGUP"},Pe.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Pe.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Pe.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Pe.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Pe;class Re{}Re.BOOM_BARRIER={type:3,value:"BOOM_BARRIER"},Re.DOOR={type:3,value:"DOOR"},Re.GATE={type:3,value:"GATE"},Re.TRAPDOOR={type:3,value:"TRAPDOOR"},Re.TURNSTILE={type:3,value:"TURNSTILE"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=Re;class Ce{}Ce.DOUBLE_PANEL_DOUBLE_SWING={type:3,value:"DOUBLE_PANEL_DOUBLE_SWING"},Ce.DOUBLE_PANEL_FOLDING={type:3,value:"DOUBLE_PANEL_FOLDING"},Ce.DOUBLE_PANEL_LIFTING_VERTICAL={type:3,value:"DOUBLE_PANEL_LIFTING_VERTICAL"},Ce.DOUBLE_PANEL_SINGLE_SWING={type:3,value:"DOUBLE_PANEL_SINGLE_SWING"},Ce.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT"},Ce.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT"},Ce.DOUBLE_PANEL_SLIDING={type:3,value:"DOUBLE_PANEL_SLIDING"},Ce.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Ce.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Ce.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Ce.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Ce.LIFTING_HORIZONTAL={type:3,value:"LIFTING_HORIZONTAL"},Ce.LIFTING_VERTICAL_LEFT={type:3,value:"LIFTING_VERTICAL_LEFT"},Ce.LIFTING_VERTICAL_RIGHT={type:3,value:"LIFTING_VERTICAL_RIGHT"},Ce.REVOLVING_HORIZONTAL={type:3,value:"REVOLVING_HORIZONTAL"},Ce.REVOLVING_VERTICAL={type:3,value:"REVOLVING_VERTICAL"},Ce.ROLLINGUP={type:3,value:"ROLLINGUP"},Ce.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Ce.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Ce.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Ce.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Ce.SWING_FIXED_LEFT={type:3,value:"SWING_FIXED_LEFT"},Ce.SWING_FIXED_RIGHT={type:3,value:"SWING_FIXED_RIGHT"},Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeOperationEnum=Ce;class _e{}_e.BEND={type:3,value:"BEND"},_e.CONNECTOR={type:3,value:"CONNECTOR"},_e.ENTRY={type:3,value:"ENTRY"},_e.EXIT={type:3,value:"EXIT"},_e.JUNCTION={type:3,value:"JUNCTION"},_e.OBSTRUCTION={type:3,value:"OBSTRUCTION"},_e.TRANSITION={type:3,value:"TRANSITION"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=_e;class Be{}Be.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Be.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Be;class Oe{}Oe.FLATOVAL={type:3,value:"FLATOVAL"},Oe.RECTANGULAR={type:3,value:"RECTANGULAR"},Oe.ROUND={type:3,value:"ROUND"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=Oe;class Se{}Se.BASE_EXCAVATION={type:3,value:"BASE_EXCAVATION"},Se.CUT={type:3,value:"CUT"},Se.DREDGING={type:3,value:"DREDGING"},Se.EXCAVATION={type:3,value:"EXCAVATION"},Se.OVEREXCAVATION={type:3,value:"OVEREXCAVATION"},Se.PAVEMENTMILLING={type:3,value:"PAVEMENTMILLING"},Se.STEPEXCAVATION={type:3,value:"STEPEXCAVATION"},Se.TOPSOILREMOVAL={type:3,value:"TOPSOILREMOVAL"},Se.TRENCH={type:3,value:"TRENCH"},Se.USERDEFINED={type:3,value:"USERDEFINED"},Se.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksCutTypeEnum=Se;class Ne{}Ne.BACKFILL={type:3,value:"BACKFILL"},Ne.COUNTERWEIGHT={type:3,value:"COUNTERWEIGHT"},Ne.EMBANKMENT={type:3,value:"EMBANKMENT"},Ne.SLOPEFILL={type:3,value:"SLOPEFILL"},Ne.SUBGRADE={type:3,value:"SUBGRADE"},Ne.SUBGRADEBED={type:3,value:"SUBGRADEBED"},Ne.TRANSITIONSECTION={type:3,value:"TRANSITIONSECTION"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksFillTypeEnum=Ne;class xe{}xe.DISHWASHER={type:3,value:"DISHWASHER"},xe.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},xe.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},xe.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},xe.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},xe.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},xe.FREEZER={type:3,value:"FREEZER"},xe.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},xe.HANDDRYER={type:3,value:"HANDDRYER"},xe.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},xe.MICROWAVE={type:3,value:"MICROWAVE"},xe.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},xe.REFRIGERATOR={type:3,value:"REFRIGERATOR"},xe.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},xe.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},xe.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=xe;class Le{}Le.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},Le.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},Le.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},Le.SWITCHBOARD={type:3,value:"SWITCHBOARD"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=Le;class Me{}Me.BATTERY={type:3,value:"BATTERY"},Me.CAPACITOR={type:3,value:"CAPACITOR"},Me.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Me.COMPENSATOR={type:3,value:"COMPENSATOR"},Me.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Me.INDUCTOR={type:3,value:"INDUCTOR"},Me.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Me.RECHARGER={type:3,value:"RECHARGER"},Me.UPS={type:3,value:"UPS"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=Me;class Fe{}Fe.ELECTRONICFILTER={type:3,value:"ELECTRONICFILTER"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowTreatmentDeviceTypeEnum=Fe;class He{}He.CHP={type:3,value:"CHP"},He.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},He.STANDALONE={type:3,value:"STANDALONE"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=He;class Ue{}Ue.DC={type:3,value:"DC"},Ue.INDUCTION={type:3,value:"INDUCTION"},Ue.POLYPHASE={type:3,value:"POLYPHASE"},Ue.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},Ue.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=Ue;class Ge{}Ge.RELAY={type:3,value:"RELAY"},Ge.TIMECLOCK={type:3,value:"TIMECLOCK"},Ge.TIMEDELAY={type:3,value:"TIMEDELAY"},Ge.USERDEFINED={type:3,value:"USERDEFINED"},Ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=Ge;class je{}je.ABUTMENT={type:3,value:"ABUTMENT"},je.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},je.ARCH={type:3,value:"ARCH"},je.BEAM_GRID={type:3,value:"BEAM_GRID"},je.BRACED_FRAME={type:3,value:"BRACED_FRAME"},je.CROSS_BRACING={type:3,value:"CROSS_BRACING"},je.DECK={type:3,value:"DECK"},je.DILATATIONPANEL={type:3,value:"DILATATIONPANEL"},je.ENTRANCEWORKS={type:3,value:"ENTRANCEWORKS"},je.GIRDER={type:3,value:"GIRDER"},je.GRID={type:3,value:"GRID"},je.MAST={type:3,value:"MAST"},je.PIER={type:3,value:"PIER"},je.PYLON={type:3,value:"PYLON"},je.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY={type:3,value:"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY"},je.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},je.RIGID_FRAME={type:3,value:"RIGID_FRAME"},je.SHELTER={type:3,value:"SHELTER"},je.SIGNALASSEMBLY={type:3,value:"SIGNALASSEMBLY"},je.SLAB_FIELD={type:3,value:"SLAB_FIELD"},je.SUMPBUSTER={type:3,value:"SUMPBUSTER"},je.SUPPORTINGASSEMBLY={type:3,value:"SUPPORTINGASSEMBLY"},je.SUSPENSIONASSEMBLY={type:3,value:"SUSPENSIONASSEMBLY"},je.TRACKPANEL={type:3,value:"TRACKPANEL"},je.TRACTION_SWITCHING_ASSEMBLY={type:3,value:"TRACTION_SWITCHING_ASSEMBLY"},je.TRAFFIC_CALMING_DEVICE={type:3,value:"TRAFFIC_CALMING_DEVICE"},je.TRUSS={type:3,value:"TRUSS"},je.TURNOUTPANEL={type:3,value:"TURNOUTPANEL"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=je;class Ve{}Ve.COMPLEX={type:3,value:"COMPLEX"},Ve.ELEMENT={type:3,value:"ELEMENT"},Ve.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=Ve;class ke{}ke.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},ke.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=ke;class Qe{}Qe.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Qe.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Qe.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Qe.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Qe.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Qe.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Qe.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Qe.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Qe.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Qe.USERDEFINED={type:3,value:"USERDEFINED"},Qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Qe;class We{}We.DIRECTEXPANSION={type:3,value:"DIRECTEXPANSION"},We.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},We.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},We.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},We.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},We.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},We.USERDEFINED={type:3,value:"USERDEFINED"},We.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=We;class ze{}ze.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},ze.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},ze.EVENTRULE={type:3,value:"EVENTRULE"},ze.EVENTTIME={type:3,value:"EVENTTIME"},ze.USERDEFINED={type:3,value:"USERDEFINED"},ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=ze;class Ke{}Ke.ENDEVENT={type:3,value:"ENDEVENT"},Ke.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Ke.STARTEVENT={type:3,value:"STARTEVENT"},Ke.USERDEFINED={type:3,value:"USERDEFINED"},Ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Ke;class Ye{}Ye.EXTERNAL={type:3,value:"EXTERNAL"},Ye.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},Ye.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},Ye.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},Ye.USERDEFINED={type:3,value:"USERDEFINED"},Ye.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=Ye;class Xe{}Xe.ABOVEGROUND={type:3,value:"ABOVEGROUND"},Xe.BELOWGROUND={type:3,value:"BELOWGROUND"},Xe.JUNCTION={type:3,value:"JUNCTION"},Xe.LEVELCROSSING={type:3,value:"LEVELCROSSING"},Xe.SEGMENT={type:3,value:"SEGMENT"},Xe.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},Xe.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},Xe.TERMINAL={type:3,value:"TERMINAL"},Xe.USERDEFINED={type:3,value:"USERDEFINED"},Xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityPartCommonTypeEnum=Xe;class qe{}qe.LATERAL={type:3,value:"LATERAL"},qe.LONGITUDINAL={type:3,value:"LONGITUDINAL"},qe.REGION={type:3,value:"REGION"},qe.VERTICAL={type:3,value:"VERTICAL"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityUsageEnum=qe;class Je{}Je.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},Je.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},Je.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},Je.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},Je.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},Je.TUBEAXIAL={type:3,value:"TUBEAXIAL"},Je.VANEAXIAL={type:3,value:"VANEAXIAL"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=Je;class Ze{}Ze.GLUE={type:3,value:"GLUE"},Ze.MORTAR={type:3,value:"MORTAR"},Ze.WELD={type:3,value:"WELD"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Ze;class $e{}$e.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},$e.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},$e.ODORFILTER={type:3,value:"ODORFILTER"},$e.OILFILTER={type:3,value:"OILFILTER"},$e.STRAINER={type:3,value:"STRAINER"},$e.WATERFILTER={type:3,value:"WATERFILTER"},$e.USERDEFINED={type:3,value:"USERDEFINED"},$e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=$e;class et{}et.BREECHINGINLET={type:3,value:"BREECHINGINLET"},et.FIREHYDRANT={type:3,value:"FIREHYDRANT"},et.FIREMONITOR={type:3,value:"FIREMONITOR"},et.HOSEREEL={type:3,value:"HOSEREEL"},et.SPRINKLER={type:3,value:"SPRINKLER"},et.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},et.USERDEFINED={type:3,value:"USERDEFINED"},et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=et;class tt{}tt.SINK={type:3,value:"SINK"},tt.SOURCE={type:3,value:"SOURCE"},tt.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=tt;class st{}st.AMMETER={type:3,value:"AMMETER"},st.COMBINED={type:3,value:"COMBINED"},st.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},st.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},st.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},st.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},st.THERMOMETER={type:3,value:"THERMOMETER"},st.VOLTMETER={type:3,value:"VOLTMETER"},st.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},st.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},st.USERDEFINED={type:3,value:"USERDEFINED"},st.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=st;class nt{}nt.ENERGYMETER={type:3,value:"ENERGYMETER"},nt.GASMETER={type:3,value:"GASMETER"},nt.OILMETER={type:3,value:"OILMETER"},nt.WATERMETER={type:3,value:"WATERMETER"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=nt;class it{}it.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},it.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},it.PAD_FOOTING={type:3,value:"PAD_FOOTING"},it.PILE_CAP={type:3,value:"PILE_CAP"},it.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=it;class at{}at.BED={type:3,value:"BED"},at.CHAIR={type:3,value:"CHAIR"},at.DESK={type:3,value:"DESK"},at.FILECABINET={type:3,value:"FILECABINET"},at.SHELF={type:3,value:"SHELF"},at.SOFA={type:3,value:"SOFA"},at.TABLE={type:3,value:"TABLE"},at.TECHNICALCABINET={type:3,value:"TECHNICALCABINET"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=at;class rt{}rt.SOIL_BORING_POINT={type:3,value:"SOIL_BORING_POINT"},rt.TERRAIN={type:3,value:"TERRAIN"},rt.VEGETATION={type:3,value:"VEGETATION"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=rt;class lt{}lt.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},lt.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},lt.MODEL_VIEW={type:3,value:"MODEL_VIEW"},lt.PLAN_VIEW={type:3,value:"PLAN_VIEW"},lt.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},lt.SECTION_VIEW={type:3,value:"SECTION_VIEW"},lt.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=lt;class ot{}ot.SOLID={type:3,value:"SOLID"},ot.VOID={type:3,value:"VOID"},ot.WATER={type:3,value:"WATER"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeotechnicalStratumTypeEnum=ot;class ct{}ct.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ct.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ct;class ut{}ut.IRREGULAR={type:3,value:"IRREGULAR"},ut.RADIAL={type:3,value:"RADIAL"},ut.RECTANGULAR={type:3,value:"RECTANGULAR"},ut.TRIANGULAR={type:3,value:"TRIANGULAR"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=ut;class ht{}ht.PLATE={type:3,value:"PLATE"},ht.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},ht.TURNOUTHEATING={type:3,value:"TURNOUTHEATING"},ht.USERDEFINED={type:3,value:"USERDEFINED"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=ht;class pt{}pt.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},pt.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},pt.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},pt.ADIABATICPAN={type:3,value:"ADIABATICPAN"},pt.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},pt.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},pt.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},pt.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},pt.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},pt.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},pt.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},pt.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},pt.STEAMINJECTION={type:3,value:"STEAMINJECTION"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=pt;class At{}At.BUMPER={type:3,value:"BUMPER"},At.CRASHCUSHION={type:3,value:"CRASHCUSHION"},At.DAMPINGSYSTEM={type:3,value:"DAMPINGSYSTEM"},At.FENDER={type:3,value:"FENDER"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcImpactProtectionDeviceTypeEnum=At;class dt{}dt.CYCLONIC={type:3,value:"CYCLONIC"},dt.GREASE={type:3,value:"GREASE"},dt.OIL={type:3,value:"OIL"},dt.PETROL={type:3,value:"PETROL"},dt.USERDEFINED={type:3,value:"USERDEFINED"},dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInterceptorTypeEnum=dt;class ft{}ft.EXTERNAL={type:3,value:"EXTERNAL"},ft.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},ft.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},ft.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},ft.INTERNAL={type:3,value:"INTERNAL"},ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=ft;class It{}It.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},It.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},It.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=It;class yt{}yt.DATA={type:3,value:"DATA"},yt.POWER={type:3,value:"POWER"},yt.USERDEFINED={type:3,value:"USERDEFINED"},yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=yt;class mt{}mt.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},mt.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},mt.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},mt.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=mt;class vt{}vt.ADMINISTRATION={type:3,value:"ADMINISTRATION"},vt.CARPENTRY={type:3,value:"CARPENTRY"},vt.CLEANING={type:3,value:"CLEANING"},vt.CONCRETE={type:3,value:"CONCRETE"},vt.DRYWALL={type:3,value:"DRYWALL"},vt.ELECTRIC={type:3,value:"ELECTRIC"},vt.FINISHING={type:3,value:"FINISHING"},vt.FLOORING={type:3,value:"FLOORING"},vt.GENERAL={type:3,value:"GENERAL"},vt.HVAC={type:3,value:"HVAC"},vt.LANDSCAPING={type:3,value:"LANDSCAPING"},vt.MASONRY={type:3,value:"MASONRY"},vt.PAINTING={type:3,value:"PAINTING"},vt.PAVING={type:3,value:"PAVING"},vt.PLUMBING={type:3,value:"PLUMBING"},vt.ROOFING={type:3,value:"ROOFING"},vt.SITEGRADING={type:3,value:"SITEGRADING"},vt.STEELWORK={type:3,value:"STEELWORK"},vt.SURVEYING={type:3,value:"SURVEYING"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=vt;class wt{}wt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},wt.FLUORESCENT={type:3,value:"FLUORESCENT"},wt.HALOGEN={type:3,value:"HALOGEN"},wt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},wt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},wt.LED={type:3,value:"LED"},wt.METALHALIDE={type:3,value:"METALHALIDE"},wt.OLED={type:3,value:"OLED"},wt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=wt;class gt{}gt.AXIS1={type:3,value:"AXIS1"},gt.AXIS2={type:3,value:"AXIS2"},gt.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=gt;class Et{}Et.TYPE_A={type:3,value:"TYPE_A"},Et.TYPE_B={type:3,value:"TYPE_B"},Et.TYPE_C={type:3,value:"TYPE_C"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=Et;class Tt{}Tt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Tt.FLUORESCENT={type:3,value:"FLUORESCENT"},Tt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Tt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Tt.LIGHTEMITTINGDIODE={type:3,value:"LIGHTEMITTINGDIODE"},Tt.LOWPRESSURESODIUM={type:3,value:"LOWPRESSURESODIUM"},Tt.LOWVOLTAGEHALOGEN={type:3,value:"LOWVOLTAGEHALOGEN"},Tt.MAINVOLTAGEHALOGEN={type:3,value:"MAINVOLTAGEHALOGEN"},Tt.METALHALIDE={type:3,value:"METALHALIDE"},Tt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Tt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightEmissionSourceEnum=Tt;class bt{}bt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},bt.POINTSOURCE={type:3,value:"POINTSOURCE"},bt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=bt;class Dt{}Dt.HOSEREEL={type:3,value:"HOSEREEL"},Dt.LOADINGARM={type:3,value:"LOADINGARM"},Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLiquidTerminalTypeEnum=Dt;class Pt{}Pt.LOAD_CASE={type:3,value:"LOAD_CASE"},Pt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Pt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Pt;class Rt{}Rt.LOGICALAND={type:3,value:"LOGICALAND"},Rt.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},Rt.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},Rt.LOGICALOR={type:3,value:"LOGICALOR"},Rt.LOGICALXOR={type:3,value:"LOGICALXOR"},e.IfcLogicalOperatorEnum=Rt;class Ct{}Ct.BARRIERBEACH={type:3,value:"BARRIERBEACH"},Ct.BREAKWATER={type:3,value:"BREAKWATER"},Ct.CANAL={type:3,value:"CANAL"},Ct.DRYDOCK={type:3,value:"DRYDOCK"},Ct.FLOATINGDOCK={type:3,value:"FLOATINGDOCK"},Ct.HYDROLIFT={type:3,value:"HYDROLIFT"},Ct.JETTY={type:3,value:"JETTY"},Ct.LAUNCHRECOVERY={type:3,value:"LAUNCHRECOVERY"},Ct.MARINEDEFENCE={type:3,value:"MARINEDEFENCE"},Ct.NAVIGATIONALCHANNEL={type:3,value:"NAVIGATIONALCHANNEL"},Ct.PORT={type:3,value:"PORT"},Ct.QUAY={type:3,value:"QUAY"},Ct.REVETMENT={type:3,value:"REVETMENT"},Ct.SHIPLIFT={type:3,value:"SHIPLIFT"},Ct.SHIPLOCK={type:3,value:"SHIPLOCK"},Ct.SHIPYARD={type:3,value:"SHIPYARD"},Ct.SLIPWAY={type:3,value:"SLIPWAY"},Ct.WATERWAY={type:3,value:"WATERWAY"},Ct.WATERWAYSHIPLIFT={type:3,value:"WATERWAYSHIPLIFT"},Ct.USERDEFINED={type:3,value:"USERDEFINED"},Ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarineFacilityTypeEnum=Ct;class _t{}_t.ABOVEWATERLINE={type:3,value:"ABOVEWATERLINE"},_t.ANCHORAGE={type:3,value:"ANCHORAGE"},_t.APPROACHCHANNEL={type:3,value:"APPROACHCHANNEL"},_t.BELOWWATERLINE={type:3,value:"BELOWWATERLINE"},_t.BERTHINGSTRUCTURE={type:3,value:"BERTHINGSTRUCTURE"},_t.CHAMBER={type:3,value:"CHAMBER"},_t.CILL_LEVEL={type:3,value:"CILL_LEVEL"},_t.COPELEVEL={type:3,value:"COPELEVEL"},_t.CORE={type:3,value:"CORE"},_t.CREST={type:3,value:"CREST"},_t.GATEHEAD={type:3,value:"GATEHEAD"},_t.GUDINGSTRUCTURE={type:3,value:"GUDINGSTRUCTURE"},_t.HIGHWATERLINE={type:3,value:"HIGHWATERLINE"},_t.LANDFIELD={type:3,value:"LANDFIELD"},_t.LEEWARDSIDE={type:3,value:"LEEWARDSIDE"},_t.LOWWATERLINE={type:3,value:"LOWWATERLINE"},_t.MANUFACTURING={type:3,value:"MANUFACTURING"},_t.NAVIGATIONALAREA={type:3,value:"NAVIGATIONALAREA"},_t.PROTECTION={type:3,value:"PROTECTION"},_t.SHIPTRANSFER={type:3,value:"SHIPTRANSFER"},_t.STORAGEAREA={type:3,value:"STORAGEAREA"},_t.VEHICLESERVICING={type:3,value:"VEHICLESERVICING"},_t.WATERFIELD={type:3,value:"WATERFIELD"},_t.WEATHERSIDE={type:3,value:"WEATHERSIDE"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarinePartTypeEnum=_t;class Bt{}Bt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},Bt.BOLT={type:3,value:"BOLT"},Bt.CHAIN={type:3,value:"CHAIN"},Bt.COUPLER={type:3,value:"COUPLER"},Bt.DOWEL={type:3,value:"DOWEL"},Bt.NAIL={type:3,value:"NAIL"},Bt.NAILPLATE={type:3,value:"NAILPLATE"},Bt.RAILFASTENING={type:3,value:"RAILFASTENING"},Bt.RAILJOINT={type:3,value:"RAILJOINT"},Bt.RIVET={type:3,value:"RIVET"},Bt.ROPE={type:3,value:"ROPE"},Bt.SCREW={type:3,value:"SCREW"},Bt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},Bt.STAPLE={type:3,value:"STAPLE"},Bt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=Bt;class Ot{}Ot.AIRSTATION={type:3,value:"AIRSTATION"},Ot.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},Ot.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},Ot.OXYGENPLANT={type:3,value:"OXYGENPLANT"},Ot.VACUUMSTATION={type:3,value:"VACUUMSTATION"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=Ot;class St{}St.ARCH_SEGMENT={type:3,value:"ARCH_SEGMENT"},St.BRACE={type:3,value:"BRACE"},St.CHORD={type:3,value:"CHORD"},St.COLLAR={type:3,value:"COLLAR"},St.MEMBER={type:3,value:"MEMBER"},St.MULLION={type:3,value:"MULLION"},St.PLATE={type:3,value:"PLATE"},St.POST={type:3,value:"POST"},St.PURLIN={type:3,value:"PURLIN"},St.RAFTER={type:3,value:"RAFTER"},St.STAY_CABLE={type:3,value:"STAY_CABLE"},St.STIFFENING_RIB={type:3,value:"STIFFENING_RIB"},St.STRINGER={type:3,value:"STRINGER"},St.STRUCTURALCABLE={type:3,value:"STRUCTURALCABLE"},St.STRUT={type:3,value:"STRUT"},St.STUD={type:3,value:"STUD"},St.SUSPENDER={type:3,value:"SUSPENDER"},St.SUSPENSION_CABLE={type:3,value:"SUSPENSION_CABLE"},St.TIEBAR={type:3,value:"TIEBAR"},St.USERDEFINED={type:3,value:"USERDEFINED"},St.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=St;class Nt{}Nt.ACCESSPOINT={type:3,value:"ACCESSPOINT"},Nt.BASEBANDUNIT={type:3,value:"BASEBANDUNIT"},Nt.BASETRANSCEIVERSTATION={type:3,value:"BASETRANSCEIVERSTATION"},Nt.E_UTRAN_NODE_B={type:3,value:"E_UTRAN_NODE_B"},Nt.GATEWAY_GPRS_SUPPORT_NODE={type:3,value:"GATEWAY_GPRS_SUPPORT_NODE"},Nt.MASTERUNIT={type:3,value:"MASTERUNIT"},Nt.MOBILESWITCHINGCENTER={type:3,value:"MOBILESWITCHINGCENTER"},Nt.MSCSERVER={type:3,value:"MSCSERVER"},Nt.PACKETCONTROLUNIT={type:3,value:"PACKETCONTROLUNIT"},Nt.REMOTERADIOUNIT={type:3,value:"REMOTERADIOUNIT"},Nt.REMOTEUNIT={type:3,value:"REMOTEUNIT"},Nt.SERVICE_GPRS_SUPPORT_NODE={type:3,value:"SERVICE_GPRS_SUPPORT_NODE"},Nt.SUBSCRIBERSERVER={type:3,value:"SUBSCRIBERSERVER"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMobileTelecommunicationsApplianceTypeEnum=Nt;class xt{}xt.BOLLARD={type:3,value:"BOLLARD"},xt.LINETENSIONER={type:3,value:"LINETENSIONER"},xt.MAGNETICDEVICE={type:3,value:"MAGNETICDEVICE"},xt.MOORINGHOOKS={type:3,value:"MOORINGHOOKS"},xt.VACUUMDEVICE={type:3,value:"VACUUMDEVICE"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMooringDeviceTypeEnum=xt;class Lt{}Lt.BELTDRIVE={type:3,value:"BELTDRIVE"},Lt.COUPLING={type:3,value:"COUPLING"},Lt.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Lt;class Mt{}Mt.BEACON={type:3,value:"BEACON"},Mt.BUOY={type:3,value:"BUOY"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcNavigationElementTypeEnum=Mt;class Ft{}Ft.ACTOR={type:3,value:"ACTOR"},Ft.CONTROL={type:3,value:"CONTROL"},Ft.GROUP={type:3,value:"GROUP"},Ft.PROCESS={type:3,value:"PROCESS"},Ft.PRODUCT={type:3,value:"PRODUCT"},Ft.PROJECT={type:3,value:"PROJECT"},Ft.RESOURCE={type:3,value:"RESOURCE"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Ft;class Ht{}Ht.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ht.CODEWAIVER={type:3,value:"CODEWAIVER"},Ht.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ht.EXTERNAL={type:3,value:"EXTERNAL"},Ht.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ht.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ht.MODELVIEW={type:3,value:"MODELVIEW"},Ht.PARAMETER={type:3,value:"PARAMETER"},Ht.REQUIREMENT={type:3,value:"REQUIREMENT"},Ht.SPECIFICATION={type:3,value:"SPECIFICATION"},Ht.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ht;class Ut{}Ut.ASSIGNEE={type:3,value:"ASSIGNEE"},Ut.ASSIGNOR={type:3,value:"ASSIGNOR"},Ut.LESSEE={type:3,value:"LESSEE"},Ut.LESSOR={type:3,value:"LESSOR"},Ut.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ut.OWNER={type:3,value:"OWNER"},Ut.TENANT={type:3,value:"TENANT"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=Ut;class Gt{}Gt.OPENING={type:3,value:"OPENING"},Gt.RECESS={type:3,value:"RECESS"},Gt.USERDEFINED={type:3,value:"USERDEFINED"},Gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOpeningElementTypeEnum=Gt;class jt{}jt.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},jt.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},jt.DATAOUTLET={type:3,value:"DATAOUTLET"},jt.POWEROUTLET={type:3,value:"POWEROUTLET"},jt.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=jt;class Vt{}Vt.FLEXIBLE={type:3,value:"FLEXIBLE"},Vt.RIGID={type:3,value:"RIGID"},Vt.USERDEFINED={type:3,value:"USERDEFINED"},Vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPavementTypeEnum=Vt;class kt{}kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=kt;class Qt{}Qt.GRILL={type:3,value:"GRILL"},Qt.LOUVER={type:3,value:"LOUVER"},Qt.SCREEN={type:3,value:"SCREEN"},Qt.USERDEFINED={type:3,value:"USERDEFINED"},Qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=Qt;class Wt{}Wt.ACCESS={type:3,value:"ACCESS"},Wt.BUILDING={type:3,value:"BUILDING"},Wt.WORK={type:3,value:"WORK"},Wt.USERDEFINED={type:3,value:"USERDEFINED"},Wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=Wt;class zt{}zt.PHYSICAL={type:3,value:"PHYSICAL"},zt.VIRTUAL={type:3,value:"VIRTUAL"},zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=zt;class Kt{}Kt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},Kt.COMPOSITE={type:3,value:"COMPOSITE"},Kt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},Kt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},Kt.USERDEFINED={type:3,value:"USERDEFINED"},Kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=Kt;class Yt{}Yt.BORED={type:3,value:"BORED"},Yt.COHESION={type:3,value:"COHESION"},Yt.DRIVEN={type:3,value:"DRIVEN"},Yt.FRICTION={type:3,value:"FRICTION"},Yt.JETGROUTING={type:3,value:"JETGROUTING"},Yt.SUPPORT={type:3,value:"SUPPORT"},Yt.USERDEFINED={type:3,value:"USERDEFINED"},Yt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=Yt;class Xt{}Xt.BEND={type:3,value:"BEND"},Xt.CONNECTOR={type:3,value:"CONNECTOR"},Xt.ENTRY={type:3,value:"ENTRY"},Xt.EXIT={type:3,value:"EXIT"},Xt.JUNCTION={type:3,value:"JUNCTION"},Xt.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Xt.TRANSITION={type:3,value:"TRANSITION"},Xt.USERDEFINED={type:3,value:"USERDEFINED"},Xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=Xt;class qt{}qt.CULVERT={type:3,value:"CULVERT"},qt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},qt.GUTTER={type:3,value:"GUTTER"},qt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},qt.SPOOL={type:3,value:"SPOOL"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=qt;class Jt{}Jt.BASE_PLATE={type:3,value:"BASE_PLATE"},Jt.COVER_PLATE={type:3,value:"COVER_PLATE"},Jt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Jt.FLANGE_PLATE={type:3,value:"FLANGE_PLATE"},Jt.GUSSET_PLATE={type:3,value:"GUSSET_PLATE"},Jt.SHEET={type:3,value:"SHEET"},Jt.SPLICE_PLATE={type:3,value:"SPLICE_PLATE"},Jt.STIFFENER_PLATE={type:3,value:"STIFFENER_PLATE"},Jt.WEB_PLATE={type:3,value:"WEB_PLATE"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Jt;class Zt{}Zt.CURVE3D={type:3,value:"CURVE3D"},Zt.PCURVE_S1={type:3,value:"PCURVE_S1"},Zt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Zt;class $t{}$t.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},$t.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},$t.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},$t.CALIBRATION={type:3,value:"CALIBRATION"},$t.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},$t.SHUTDOWN={type:3,value:"SHUTDOWN"},$t.STARTUP={type:3,value:"STARTUP"},$t.USERDEFINED={type:3,value:"USERDEFINED"},$t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=$t;class es{}es.AREA={type:3,value:"AREA"},es.CURVE={type:3,value:"CURVE"},e.IfcProfileTypeEnum=es;class ts{}ts.CHANGEORDER={type:3,value:"CHANGEORDER"},ts.MAINTENANCEWORKORDER={type:3,value:"MAINTENANCEWORKORDER"},ts.MOVEORDER={type:3,value:"MOVEORDER"},ts.PURCHASEORDER={type:3,value:"PURCHASEORDER"},ts.WORKORDER={type:3,value:"WORKORDER"},ts.USERDEFINED={type:3,value:"USERDEFINED"},ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderTypeEnum=ts;class ss{}ss.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},ss.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=ss;class ns{}ns.BLISTER={type:3,value:"BLISTER"},ns.DEVIATOR={type:3,value:"DEVIATOR"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=ns;class is{}is.PSET_MATERIALDRIVEN={type:3,value:"PSET_MATERIALDRIVEN"},is.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},is.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},is.PSET_PROFILEDRIVEN={type:3,value:"PSET_PROFILEDRIVEN"},is.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},is.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},is.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},is.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},is.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=is;class as{}as.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},as.ELECTRONIC={type:3,value:"ELECTRONIC"},as.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},as.THERMAL={type:3,value:"THERMAL"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=as;class rs{}rs.ANTI_ARCING_DEVICE={type:3,value:"ANTI_ARCING_DEVICE"},rs.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},rs.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},rs.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},rs.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},rs.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},rs.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},rs.SPARKGAP={type:3,value:"SPARKGAP"},rs.VARISTOR={type:3,value:"VARISTOR"},rs.VOLTAGELIMITER={type:3,value:"VOLTAGELIMITER"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=rs;class ls{}ls.CIRCULATOR={type:3,value:"CIRCULATOR"},ls.ENDSUCTION={type:3,value:"ENDSUCTION"},ls.SPLITCASE={type:3,value:"SPLITCASE"},ls.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},ls.SUMPPUMP={type:3,value:"SUMPPUMP"},ls.VERTICALINLINE={type:3,value:"VERTICALINLINE"},ls.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=ls;class os{}os.BLADE={type:3,value:"BLADE"},os.CHECKRAIL={type:3,value:"CHECKRAIL"},os.GUARDRAIL={type:3,value:"GUARDRAIL"},os.RACKRAIL={type:3,value:"RACKRAIL"},os.RAIL={type:3,value:"RAIL"},os.STOCKRAIL={type:3,value:"STOCKRAIL"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailTypeEnum=os;class cs{}cs.BALUSTRADE={type:3,value:"BALUSTRADE"},cs.FENCE={type:3,value:"FENCE"},cs.GUARDRAIL={type:3,value:"GUARDRAIL"},cs.HANDRAIL={type:3,value:"HANDRAIL"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=cs;class us{}us.DILATATIONSUPERSTRUCTURE={type:3,value:"DILATATIONSUPERSTRUCTURE"},us.LINESIDESTRUCTURE={type:3,value:"LINESIDESTRUCTURE"},us.LINESIDESTRUCTUREPART={type:3,value:"LINESIDESTRUCTUREPART"},us.PLAINTRACKSUPERSTRUCTURE={type:3,value:"PLAINTRACKSUPERSTRUCTURE"},us.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},us.TRACKSTRUCTURE={type:3,value:"TRACKSTRUCTURE"},us.TRACKSTRUCTUREPART={type:3,value:"TRACKSTRUCTUREPART"},us.TURNOUTSUPERSTRUCTURE={type:3,value:"TURNOUTSUPERSTRUCTURE"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayPartTypeEnum=us;class hs{}hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayTypeEnum=hs;class ps{}ps.SPIRAL={type:3,value:"SPIRAL"},ps.STRAIGHT={type:3,value:"STRAIGHT"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=ps;class As{}As.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},As.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},As.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},As.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},As.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},As.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=As;class ds{}ds.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},ds.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},ds.DAILY={type:3,value:"DAILY"},ds.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},ds.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},ds.WEEKLY={type:3,value:"WEEKLY"},ds.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},ds.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=ds;class fs{}fs.BOUNDARY={type:3,value:"BOUNDARY"},fs.INTERSECTION={type:3,value:"INTERSECTION"},fs.KILOPOINT={type:3,value:"KILOPOINT"},fs.LANDMARK={type:3,value:"LANDMARK"},fs.MILEPOINT={type:3,value:"MILEPOINT"},fs.POSITION={type:3,value:"POSITION"},fs.REFERENCEMARKER={type:3,value:"REFERENCEMARKER"},fs.STATION={type:3,value:"STATION"},fs.USERDEFINED={type:3,value:"USERDEFINED"},fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReferentTypeEnum=fs;class Is{}Is.BLINN={type:3,value:"BLINN"},Is.FLAT={type:3,value:"FLAT"},Is.GLASS={type:3,value:"GLASS"},Is.MATT={type:3,value:"MATT"},Is.METAL={type:3,value:"METAL"},Is.MIRROR={type:3,value:"MIRROR"},Is.PHONG={type:3,value:"PHONG"},Is.PHYSICAL={type:3,value:"PHYSICAL"},Is.PLASTIC={type:3,value:"PLASTIC"},Is.STRAUSS={type:3,value:"STRAUSS"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Is;class ys{}ys.DYNAMICALLYCOMPACTED={type:3,value:"DYNAMICALLYCOMPACTED"},ys.GROUTED={type:3,value:"GROUTED"},ys.REPLACED={type:3,value:"REPLACED"},ys.ROLLERCOMPACTED={type:3,value:"ROLLERCOMPACTED"},ys.SURCHARGEPRELOADED={type:3,value:"SURCHARGEPRELOADED"},ys.VERTICALLYDRAINED={type:3,value:"VERTICALLYDRAINED"},ys.USERDEFINED={type:3,value:"USERDEFINED"},ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcedSoilTypeEnum=ys;class ms{}ms.ANCHORING={type:3,value:"ANCHORING"},ms.EDGE={type:3,value:"EDGE"},ms.LIGATURE={type:3,value:"LIGATURE"},ms.MAIN={type:3,value:"MAIN"},ms.PUNCHING={type:3,value:"PUNCHING"},ms.RING={type:3,value:"RING"},ms.SHEAR={type:3,value:"SHEAR"},ms.STUD={type:3,value:"STUD"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=ms;class vs{}vs.PLAIN={type:3,value:"PLAIN"},vs.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=vs;class ws{}ws.ANCHORING={type:3,value:"ANCHORING"},ws.EDGE={type:3,value:"EDGE"},ws.LIGATURE={type:3,value:"LIGATURE"},ws.MAIN={type:3,value:"MAIN"},ws.PUNCHING={type:3,value:"PUNCHING"},ws.RING={type:3,value:"RING"},ws.SHEAR={type:3,value:"SHEAR"},ws.SPACEBAR={type:3,value:"SPACEBAR"},ws.STUD={type:3,value:"STUD"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=ws;class gs{}gs.USERDEFINED={type:3,value:"USERDEFINED"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=gs;class Es{}Es.BICYCLECROSSING={type:3,value:"BICYCLECROSSING"},Es.BUS_STOP={type:3,value:"BUS_STOP"},Es.CARRIAGEWAY={type:3,value:"CARRIAGEWAY"},Es.CENTRALISLAND={type:3,value:"CENTRALISLAND"},Es.CENTRALRESERVE={type:3,value:"CENTRALRESERVE"},Es.HARDSHOULDER={type:3,value:"HARDSHOULDER"},Es.INTERSECTION={type:3,value:"INTERSECTION"},Es.LAYBY={type:3,value:"LAYBY"},Es.PARKINGBAY={type:3,value:"PARKINGBAY"},Es.PASSINGBAY={type:3,value:"PASSINGBAY"},Es.PEDESTRIAN_CROSSING={type:3,value:"PEDESTRIAN_CROSSING"},Es.RAILWAYCROSSING={type:3,value:"RAILWAYCROSSING"},Es.REFUGEISLAND={type:3,value:"REFUGEISLAND"},Es.ROADSEGMENT={type:3,value:"ROADSEGMENT"},Es.ROADSIDE={type:3,value:"ROADSIDE"},Es.ROADSIDEPART={type:3,value:"ROADSIDEPART"},Es.ROADWAYPLATEAU={type:3,value:"ROADWAYPLATEAU"},Es.ROUNDABOUT={type:3,value:"ROUNDABOUT"},Es.SHOULDER={type:3,value:"SHOULDER"},Es.SIDEWALK={type:3,value:"SIDEWALK"},Es.SOFTSHOULDER={type:3,value:"SOFTSHOULDER"},Es.TOLLPLAZA={type:3,value:"TOLLPLAZA"},Es.TRAFFICISLAND={type:3,value:"TRAFFICISLAND"},Es.TRAFFICLANE={type:3,value:"TRAFFICLANE"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadPartTypeEnum=Es;class Ts{}Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadTypeEnum=Ts;class bs{}bs.ARCHITECT={type:3,value:"ARCHITECT"},bs.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},bs.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},bs.CIVILENGINEER={type:3,value:"CIVILENGINEER"},bs.CLIENT={type:3,value:"CLIENT"},bs.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},bs.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},bs.CONSULTANT={type:3,value:"CONSULTANT"},bs.CONTRACTOR={type:3,value:"CONTRACTOR"},bs.COSTENGINEER={type:3,value:"COSTENGINEER"},bs.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},bs.ENGINEER={type:3,value:"ENGINEER"},bs.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},bs.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},bs.MANUFACTURER={type:3,value:"MANUFACTURER"},bs.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},bs.OWNER={type:3,value:"OWNER"},bs.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},bs.RESELLER={type:3,value:"RESELLER"},bs.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},bs.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},bs.SUPPLIER={type:3,value:"SUPPLIER"},bs.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=bs;class Ds{}Ds.BARREL_ROOF={type:3,value:"BARREL_ROOF"},Ds.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},Ds.DOME_ROOF={type:3,value:"DOME_ROOF"},Ds.FLAT_ROOF={type:3,value:"FLAT_ROOF"},Ds.FREEFORM={type:3,value:"FREEFORM"},Ds.GABLE_ROOF={type:3,value:"GABLE_ROOF"},Ds.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},Ds.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},Ds.HIP_ROOF={type:3,value:"HIP_ROOF"},Ds.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},Ds.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},Ds.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},Ds.SHED_ROOF={type:3,value:"SHED_ROOF"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=Ds;class Ps{}Ps.ATTO={type:3,value:"ATTO"},Ps.CENTI={type:3,value:"CENTI"},Ps.DECA={type:3,value:"DECA"},Ps.DECI={type:3,value:"DECI"},Ps.EXA={type:3,value:"EXA"},Ps.FEMTO={type:3,value:"FEMTO"},Ps.GIGA={type:3,value:"GIGA"},Ps.HECTO={type:3,value:"HECTO"},Ps.KILO={type:3,value:"KILO"},Ps.MEGA={type:3,value:"MEGA"},Ps.MICRO={type:3,value:"MICRO"},Ps.MILLI={type:3,value:"MILLI"},Ps.NANO={type:3,value:"NANO"},Ps.PETA={type:3,value:"PETA"},Ps.PICO={type:3,value:"PICO"},Ps.TERA={type:3,value:"TERA"},e.IfcSIPrefix=Ps;class Rs{}Rs.AMPERE={type:3,value:"AMPERE"},Rs.BECQUEREL={type:3,value:"BECQUEREL"},Rs.CANDELA={type:3,value:"CANDELA"},Rs.COULOMB={type:3,value:"COULOMB"},Rs.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Rs.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Rs.FARAD={type:3,value:"FARAD"},Rs.GRAM={type:3,value:"GRAM"},Rs.GRAY={type:3,value:"GRAY"},Rs.HENRY={type:3,value:"HENRY"},Rs.HERTZ={type:3,value:"HERTZ"},Rs.JOULE={type:3,value:"JOULE"},Rs.KELVIN={type:3,value:"KELVIN"},Rs.LUMEN={type:3,value:"LUMEN"},Rs.LUX={type:3,value:"LUX"},Rs.METRE={type:3,value:"METRE"},Rs.MOLE={type:3,value:"MOLE"},Rs.NEWTON={type:3,value:"NEWTON"},Rs.OHM={type:3,value:"OHM"},Rs.PASCAL={type:3,value:"PASCAL"},Rs.RADIAN={type:3,value:"RADIAN"},Rs.SECOND={type:3,value:"SECOND"},Rs.SIEMENS={type:3,value:"SIEMENS"},Rs.SIEVERT={type:3,value:"SIEVERT"},Rs.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Rs.STERADIAN={type:3,value:"STERADIAN"},Rs.TESLA={type:3,value:"TESLA"},Rs.VOLT={type:3,value:"VOLT"},Rs.WATT={type:3,value:"WATT"},Rs.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Rs;class Cs{}Cs.BATH={type:3,value:"BATH"},Cs.BIDET={type:3,value:"BIDET"},Cs.CISTERN={type:3,value:"CISTERN"},Cs.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},Cs.SHOWER={type:3,value:"SHOWER"},Cs.SINK={type:3,value:"SINK"},Cs.TOILETPAN={type:3,value:"TOILETPAN"},Cs.URINAL={type:3,value:"URINAL"},Cs.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},Cs.WCSEAT={type:3,value:"WCSEAT"},Cs.USERDEFINED={type:3,value:"USERDEFINED"},Cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=Cs;class _s{}_s.TAPERED={type:3,value:"TAPERED"},_s.UNIFORM={type:3,value:"UNIFORM"},e.IfcSectionTypeEnum=_s;class Bs{}Bs.CO2SENSOR={type:3,value:"CO2SENSOR"},Bs.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Bs.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Bs.COSENSOR={type:3,value:"COSENSOR"},Bs.EARTHQUAKESENSOR={type:3,value:"EARTHQUAKESENSOR"},Bs.FIRESENSOR={type:3,value:"FIRESENSOR"},Bs.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Bs.FOREIGNOBJECTDETECTIONSENSOR={type:3,value:"FOREIGNOBJECTDETECTIONSENSOR"},Bs.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Bs.GASSENSOR={type:3,value:"GASSENSOR"},Bs.HEATSENSOR={type:3,value:"HEATSENSOR"},Bs.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Bs.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Bs.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Bs.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Bs.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Bs.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Bs.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Bs.OBSTACLESENSOR={type:3,value:"OBSTACLESENSOR"},Bs.PHSENSOR={type:3,value:"PHSENSOR"},Bs.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Bs.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Bs.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Bs.RAINSENSOR={type:3,value:"RAINSENSOR"},Bs.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Bs.SNOWDEPTHSENSOR={type:3,value:"SNOWDEPTHSENSOR"},Bs.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Bs.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Bs.TRAINSENSOR={type:3,value:"TRAINSENSOR"},Bs.TURNOUTCLOSURESENSOR={type:3,value:"TURNOUTCLOSURESENSOR"},Bs.WHEELSENSOR={type:3,value:"WHEELSENSOR"},Bs.WINDSENSOR={type:3,value:"WINDSENSOR"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},Bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Bs;class Os{}Os.FINISH_FINISH={type:3,value:"FINISH_FINISH"},Os.FINISH_START={type:3,value:"FINISH_START"},Os.START_FINISH={type:3,value:"START_FINISH"},Os.START_START={type:3,value:"START_START"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=Os;class Ss{}Ss.AWNING={type:3,value:"AWNING"},Ss.JALOUSIE={type:3,value:"JALOUSIE"},Ss.SHUTTER={type:3,value:"SHUTTER"},Ss.USERDEFINED={type:3,value:"USERDEFINED"},Ss.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Ss;class Ns{}Ns.MARKER={type:3,value:"MARKER"},Ns.MIRROR={type:3,value:"MIRROR"},Ns.PICTORAL={type:3,value:"PICTORAL"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignTypeEnum=Ns;class xs{}xs.AUDIO={type:3,value:"AUDIO"},xs.MIXED={type:3,value:"MIXED"},xs.VISUAL={type:3,value:"VISUAL"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignalTypeEnum=xs;class Ls{}Ls.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},Ls.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},Ls.P_LISTVALUE={type:3,value:"P_LISTVALUE"},Ls.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},Ls.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},Ls.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},Ls.Q_AREA={type:3,value:"Q_AREA"},Ls.Q_COUNT={type:3,value:"Q_COUNT"},Ls.Q_LENGTH={type:3,value:"Q_LENGTH"},Ls.Q_NUMBER={type:3,value:"Q_NUMBER"},Ls.Q_TIME={type:3,value:"Q_TIME"},Ls.Q_VOLUME={type:3,value:"Q_VOLUME"},Ls.Q_WEIGHT={type:3,value:"Q_WEIGHT"},e.IfcSimplePropertyTemplateTypeEnum=Ls;class Ms{}Ms.APPROACH_SLAB={type:3,value:"APPROACH_SLAB"},Ms.BASESLAB={type:3,value:"BASESLAB"},Ms.FLOOR={type:3,value:"FLOOR"},Ms.LANDING={type:3,value:"LANDING"},Ms.PAVING={type:3,value:"PAVING"},Ms.ROOF={type:3,value:"ROOF"},Ms.SIDEWALK={type:3,value:"SIDEWALK"},Ms.TRACKSLAB={type:3,value:"TRACKSLAB"},Ms.WEARING={type:3,value:"WEARING"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Ms;class Fs{}Fs.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},Fs.SOLARPANEL={type:3,value:"SOLARPANEL"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=Fs;class Hs{}Hs.CONVECTOR={type:3,value:"CONVECTOR"},Hs.RADIATOR={type:3,value:"RADIATOR"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Hs;class Us{}Us.BERTH={type:3,value:"BERTH"},Us.EXTERNAL={type:3,value:"EXTERNAL"},Us.GFA={type:3,value:"GFA"},Us.INTERNAL={type:3,value:"INTERNAL"},Us.PARKING={type:3,value:"PARKING"},Us.SPACE={type:3,value:"SPACE"},Us.USERDEFINED={type:3,value:"USERDEFINED"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Us;class Gs{}Gs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},Gs.FIRESAFETY={type:3,value:"FIRESAFETY"},Gs.INTERFERENCE={type:3,value:"INTERFERENCE"},Gs.LIGHTING={type:3,value:"LIGHTING"},Gs.OCCUPANCY={type:3,value:"OCCUPANCY"},Gs.RESERVATION={type:3,value:"RESERVATION"},Gs.SECURITY={type:3,value:"SECURITY"},Gs.THERMAL={type:3,value:"THERMAL"},Gs.TRANSPORT={type:3,value:"TRANSPORT"},Gs.VENTILATION={type:3,value:"VENTILATION"},Gs.USERDEFINED={type:3,value:"USERDEFINED"},Gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=Gs;class js{}js.BIRDCAGE={type:3,value:"BIRDCAGE"},js.COWL={type:3,value:"COWL"},js.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=js;class Vs{}Vs.CURVED={type:3,value:"CURVED"},Vs.FREEFORM={type:3,value:"FREEFORM"},Vs.SPIRAL={type:3,value:"SPIRAL"},Vs.STRAIGHT={type:3,value:"STRAIGHT"},Vs.WINDER={type:3,value:"WINDER"},Vs.USERDEFINED={type:3,value:"USERDEFINED"},Vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Vs;class ks{}ks.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},ks.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},ks.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},ks.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},ks.LADDER={type:3,value:"LADDER"},ks.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},ks.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},ks.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},ks.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},ks.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},ks.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},ks.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},ks.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},ks.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},ks.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=ks;class Qs{}Qs.LOCKED={type:3,value:"LOCKED"},Qs.READONLY={type:3,value:"READONLY"},Qs.READONLYLOCKED={type:3,value:"READONLYLOCKED"},Qs.READWRITE={type:3,value:"READWRITE"},Qs.READWRITELOCKED={type:3,value:"READWRITELOCKED"},e.IfcStateEnum=Qs;class Ws{}Ws.CONST={type:3,value:"CONST"},Ws.DISCRETE={type:3,value:"DISCRETE"},Ws.EQUIDISTANT={type:3,value:"EQUIDISTANT"},Ws.LINEAR={type:3,value:"LINEAR"},Ws.PARABOLA={type:3,value:"PARABOLA"},Ws.POLYGONAL={type:3,value:"POLYGONAL"},Ws.SINUS={type:3,value:"SINUS"},Ws.USERDEFINED={type:3,value:"USERDEFINED"},Ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=Ws;class zs{}zs.CABLE={type:3,value:"CABLE"},zs.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},zs.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},zs.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},zs.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},zs.USERDEFINED={type:3,value:"USERDEFINED"},zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=zs;class Ks{}Ks.BILINEAR={type:3,value:"BILINEAR"},Ks.CONST={type:3,value:"CONST"},Ks.DISCRETE={type:3,value:"DISCRETE"},Ks.ISOCONTOUR={type:3,value:"ISOCONTOUR"},Ks.USERDEFINED={type:3,value:"USERDEFINED"},Ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=Ks;class Ys{}Ys.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},Ys.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},Ys.SHELL={type:3,value:"SHELL"},Ys.USERDEFINED={type:3,value:"USERDEFINED"},Ys.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=Ys;class Xs{}Xs.PURCHASE={type:3,value:"PURCHASE"},Xs.WORK={type:3,value:"WORK"},Xs.USERDEFINED={type:3,value:"USERDEFINED"},Xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=Xs;class qs{}qs.DEFECT={type:3,value:"DEFECT"},qs.HATCHMARKING={type:3,value:"HATCHMARKING"},qs.LINEMARKING={type:3,value:"LINEMARKING"},qs.MARK={type:3,value:"MARK"},qs.NONSKIDSURFACING={type:3,value:"NONSKIDSURFACING"},qs.PAVEMENTSURFACEMARKING={type:3,value:"PAVEMENTSURFACEMARKING"},qs.RUMBLESTRIP={type:3,value:"RUMBLESTRIP"},qs.SYMBOLMARKING={type:3,value:"SYMBOLMARKING"},qs.TAG={type:3,value:"TAG"},qs.TRANSVERSERUMBLESTRIP={type:3,value:"TRANSVERSERUMBLESTRIP"},qs.TREATMENT={type:3,value:"TREATMENT"},qs.USERDEFINED={type:3,value:"USERDEFINED"},qs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=qs;class Js{}Js.BOTH={type:3,value:"BOTH"},Js.NEGATIVE={type:3,value:"NEGATIVE"},Js.POSITIVE={type:3,value:"POSITIVE"},e.IfcSurfaceSide=Js;class Zs{}Zs.CONTACTOR={type:3,value:"CONTACTOR"},Zs.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Zs.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Zs.KEYPAD={type:3,value:"KEYPAD"},Zs.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Zs.RELAY={type:3,value:"RELAY"},Zs.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Zs.STARTER={type:3,value:"STARTER"},Zs.START_AND_STOP_EQUIPMENT={type:3,value:"START_AND_STOP_EQUIPMENT"},Zs.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Zs.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Zs.USERDEFINED={type:3,value:"USERDEFINED"},Zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Zs;class $s{}$s.PANEL={type:3,value:"PANEL"},$s.SUBRACK={type:3,value:"SUBRACK"},$s.WORKSURFACE={type:3,value:"WORKSURFACE"},$s.USERDEFINED={type:3,value:"USERDEFINED"},$s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSystemFurnitureElementTypeEnum=$s;class en{}en.BASIN={type:3,value:"BASIN"},en.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},en.EXPANSION={type:3,value:"EXPANSION"},en.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},en.OILRETENTIONTRAY={type:3,value:"OILRETENTIONTRAY"},en.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},en.STORAGE={type:3,value:"STORAGE"},en.VESSEL={type:3,value:"VESSEL"},en.USERDEFINED={type:3,value:"USERDEFINED"},en.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=en;class tn{}tn.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},tn.WORKTIME={type:3,value:"WORKTIME"},tn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=tn;class sn{}sn.ADJUSTMENT={type:3,value:"ADJUSTMENT"},sn.ATTENDANCE={type:3,value:"ATTENDANCE"},sn.CALIBRATION={type:3,value:"CALIBRATION"},sn.CONSTRUCTION={type:3,value:"CONSTRUCTION"},sn.DEMOLITION={type:3,value:"DEMOLITION"},sn.DISMANTLE={type:3,value:"DISMANTLE"},sn.DISPOSAL={type:3,value:"DISPOSAL"},sn.EMERGENCY={type:3,value:"EMERGENCY"},sn.INSPECTION={type:3,value:"INSPECTION"},sn.INSTALLATION={type:3,value:"INSTALLATION"},sn.LOGISTIC={type:3,value:"LOGISTIC"},sn.MAINTENANCE={type:3,value:"MAINTENANCE"},sn.MOVE={type:3,value:"MOVE"},sn.OPERATION={type:3,value:"OPERATION"},sn.REMOVAL={type:3,value:"REMOVAL"},sn.RENOVATION={type:3,value:"RENOVATION"},sn.SAFETY={type:3,value:"SAFETY"},sn.SHUTDOWN={type:3,value:"SHUTDOWN"},sn.STARTUP={type:3,value:"STARTUP"},sn.TESTING={type:3,value:"TESTING"},sn.TROUBLESHOOTING={type:3,value:"TROUBLESHOOTING"},sn.USERDEFINED={type:3,value:"USERDEFINED"},sn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=sn;class nn{}nn.COUPLER={type:3,value:"COUPLER"},nn.FIXED_END={type:3,value:"FIXED_END"},nn.TENSIONING_END={type:3,value:"TENSIONING_END"},nn.USERDEFINED={type:3,value:"USERDEFINED"},nn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=nn;class an{}an.COUPLER={type:3,value:"COUPLER"},an.DIABOLO={type:3,value:"DIABOLO"},an.DUCT={type:3,value:"DUCT"},an.GROUTING_DUCT={type:3,value:"GROUTING_DUCT"},an.TRUMPET={type:3,value:"TRUMPET"},an.USERDEFINED={type:3,value:"USERDEFINED"},an.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonConduitTypeEnum=an;class rn{}rn.BAR={type:3,value:"BAR"},rn.COATED={type:3,value:"COATED"},rn.STRAND={type:3,value:"STRAND"},rn.WIRE={type:3,value:"WIRE"},rn.USERDEFINED={type:3,value:"USERDEFINED"},rn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=rn;class ln{}ln.DOWN={type:3,value:"DOWN"},ln.LEFT={type:3,value:"LEFT"},ln.RIGHT={type:3,value:"RIGHT"},ln.UP={type:3,value:"UP"},e.IfcTextPath=ln;class on{}on.CONTINUOUS={type:3,value:"CONTINUOUS"},on.DISCRETE={type:3,value:"DISCRETE"},on.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},on.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},on.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},on.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},on.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=on;class cn{}cn.BLOCKINGDEVICE={type:3,value:"BLOCKINGDEVICE"},cn.DERAILER={type:3,value:"DERAILER"},cn.FROG={type:3,value:"FROG"},cn.HALF_SET_OF_BLADES={type:3,value:"HALF_SET_OF_BLADES"},cn.SLEEPER={type:3,value:"SLEEPER"},cn.SPEEDREGULATOR={type:3,value:"SPEEDREGULATOR"},cn.TRACKENDOFALIGNMENT={type:3,value:"TRACKENDOFALIGNMENT"},cn.VEHICLESTOP={type:3,value:"VEHICLESTOP"},cn.USERDEFINED={type:3,value:"USERDEFINED"},cn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTrackElementTypeEnum=cn;class un{}un.CHOPPER={type:3,value:"CHOPPER"},un.COMBINED={type:3,value:"COMBINED"},un.CURRENT={type:3,value:"CURRENT"},un.FREQUENCY={type:3,value:"FREQUENCY"},un.INVERTER={type:3,value:"INVERTER"},un.RECTIFIER={type:3,value:"RECTIFIER"},un.VOLTAGE={type:3,value:"VOLTAGE"},un.USERDEFINED={type:3,value:"USERDEFINED"},un.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=un;class hn{}hn.CONTINUOUS={type:3,value:"CONTINUOUS"},hn.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},hn.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},hn.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},e.IfcTransitionCode=hn;class pn{}pn.CRANEWAY={type:3,value:"CRANEWAY"},pn.ELEVATOR={type:3,value:"ELEVATOR"},pn.ESCALATOR={type:3,value:"ESCALATOR"},pn.HAULINGGEAR={type:3,value:"HAULINGGEAR"},pn.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},pn.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},pn.USERDEFINED={type:3,value:"USERDEFINED"},pn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=pn;class An{}An.CARTESIAN={type:3,value:"CARTESIAN"},An.PARAMETER={type:3,value:"PARAMETER"},An.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=An;class dn{}dn.FINNED={type:3,value:"FINNED"},dn.USERDEFINED={type:3,value:"USERDEFINED"},dn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=dn;class fn{}fn.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},fn.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},fn.AREAUNIT={type:3,value:"AREAUNIT"},fn.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},fn.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},fn.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},fn.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},fn.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},fn.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},fn.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},fn.ENERGYUNIT={type:3,value:"ENERGYUNIT"},fn.FORCEUNIT={type:3,value:"FORCEUNIT"},fn.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},fn.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},fn.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},fn.LENGTHUNIT={type:3,value:"LENGTHUNIT"},fn.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},fn.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},fn.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},fn.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},fn.MASSUNIT={type:3,value:"MASSUNIT"},fn.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},fn.POWERUNIT={type:3,value:"POWERUNIT"},fn.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},fn.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},fn.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},fn.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},fn.TIMEUNIT={type:3,value:"TIMEUNIT"},fn.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},fn.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=fn;class In{}In.ALARMPANEL={type:3,value:"ALARMPANEL"},In.BASESTATIONCONTROLLER={type:3,value:"BASESTATIONCONTROLLER"},In.COMBINED={type:3,value:"COMBINED"},In.CONTROLPANEL={type:3,value:"CONTROLPANEL"},In.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},In.HUMIDISTAT={type:3,value:"HUMIDISTAT"},In.INDICATORPANEL={type:3,value:"INDICATORPANEL"},In.MIMICPANEL={type:3,value:"MIMICPANEL"},In.THERMOSTAT={type:3,value:"THERMOSTAT"},In.WEATHERSTATION={type:3,value:"WEATHERSTATION"},In.USERDEFINED={type:3,value:"USERDEFINED"},In.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=In;class yn{}yn.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},yn.AIRHANDLER={type:3,value:"AIRHANDLER"},yn.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},yn.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},yn.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},yn.USERDEFINED={type:3,value:"USERDEFINED"},yn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=yn;class mn{}mn.AIRRELEASE={type:3,value:"AIRRELEASE"},mn.ANTIVACUUM={type:3,value:"ANTIVACUUM"},mn.CHANGEOVER={type:3,value:"CHANGEOVER"},mn.CHECK={type:3,value:"CHECK"},mn.COMMISSIONING={type:3,value:"COMMISSIONING"},mn.DIVERTING={type:3,value:"DIVERTING"},mn.DOUBLECHECK={type:3,value:"DOUBLECHECK"},mn.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},mn.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},mn.FAUCET={type:3,value:"FAUCET"},mn.FLUSHING={type:3,value:"FLUSHING"},mn.GASCOCK={type:3,value:"GASCOCK"},mn.GASTAP={type:3,value:"GASTAP"},mn.ISOLATING={type:3,value:"ISOLATING"},mn.MIXING={type:3,value:"MIXING"},mn.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},mn.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},mn.REGULATING={type:3,value:"REGULATING"},mn.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},mn.STEAMTRAP={type:3,value:"STEAMTRAP"},mn.STOPCOCK={type:3,value:"STOPCOCK"},mn.USERDEFINED={type:3,value:"USERDEFINED"},mn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=mn;class vn{}vn.CARGO={type:3,value:"CARGO"},vn.ROLLINGSTOCK={type:3,value:"ROLLINGSTOCK"},vn.VEHICLE={type:3,value:"VEHICLE"},vn.VEHICLEAIR={type:3,value:"VEHICLEAIR"},vn.VEHICLEMARINE={type:3,value:"VEHICLEMARINE"},vn.VEHICLETRACKED={type:3,value:"VEHICLETRACKED"},vn.VEHICLEWHEELED={type:3,value:"VEHICLEWHEELED"},vn.USERDEFINED={type:3,value:"USERDEFINED"},vn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVehicleTypeEnum=vn;class wn{}wn.AXIAL_YIELD={type:3,value:"AXIAL_YIELD"},wn.BENDING_YIELD={type:3,value:"BENDING_YIELD"},wn.FRICTION={type:3,value:"FRICTION"},wn.RUBBER={type:3,value:"RUBBER"},wn.SHEAR_YIELD={type:3,value:"SHEAR_YIELD"},wn.VISCOUS={type:3,value:"VISCOUS"},wn.USERDEFINED={type:3,value:"USERDEFINED"},wn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationDamperTypeEnum=wn;class gn{}gn.BASE={type:3,value:"BASE"},gn.COMPRESSION={type:3,value:"COMPRESSION"},gn.SPRING={type:3,value:"SPRING"},gn.USERDEFINED={type:3,value:"USERDEFINED"},gn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=gn;class En{}En.BOUNDARY={type:3,value:"BOUNDARY"},En.CLEARANCE={type:3,value:"CLEARANCE"},En.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},En.USERDEFINED={type:3,value:"USERDEFINED"},En.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVirtualElementTypeEnum=En;class Tn{}Tn.CHAMFER={type:3,value:"CHAMFER"},Tn.CUTOUT={type:3,value:"CUTOUT"},Tn.EDGE={type:3,value:"EDGE"},Tn.HOLE={type:3,value:"HOLE"},Tn.MITER={type:3,value:"MITER"},Tn.NOTCH={type:3,value:"NOTCH"},Tn.USERDEFINED={type:3,value:"USERDEFINED"},Tn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Tn;class bn{}bn.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},bn.MOVABLE={type:3,value:"MOVABLE"},bn.PARAPET={type:3,value:"PARAPET"},bn.PARTITIONING={type:3,value:"PARTITIONING"},bn.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},bn.POLYGONAL={type:3,value:"POLYGONAL"},bn.RETAININGWALL={type:3,value:"RETAININGWALL"},bn.SHEAR={type:3,value:"SHEAR"},bn.SOLIDWALL={type:3,value:"SOLIDWALL"},bn.STANDARD={type:3,value:"STANDARD"},bn.WAVEWALL={type:3,value:"WAVEWALL"},bn.USERDEFINED={type:3,value:"USERDEFINED"},bn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=bn;class Dn{}Dn.FLOORTRAP={type:3,value:"FLOORTRAP"},Dn.FLOORWASTE={type:3,value:"FLOORWASTE"},Dn.GULLYSUMP={type:3,value:"GULLYSUMP"},Dn.GULLYTRAP={type:3,value:"GULLYTRAP"},Dn.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Dn.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Dn.WASTETRAP={type:3,value:"WASTETRAP"},Dn.USERDEFINED={type:3,value:"USERDEFINED"},Dn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Dn;class Pn{}Pn.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Pn.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Pn.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Pn.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Pn.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Pn.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Pn.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Pn.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Pn.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Pn.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Pn.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Pn.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Pn.TOPHUNG={type:3,value:"TOPHUNG"},Pn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Pn;class Rn{}Rn.BOTTOM={type:3,value:"BOTTOM"},Rn.LEFT={type:3,value:"LEFT"},Rn.MIDDLE={type:3,value:"MIDDLE"},Rn.RIGHT={type:3,value:"RIGHT"},Rn.TOP={type:3,value:"TOP"},Rn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Rn;class Cn{}Cn.ALUMINIUM={type:3,value:"ALUMINIUM"},Cn.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Cn.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Cn.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Cn.PLASTIC={type:3,value:"PLASTIC"},Cn.STEEL={type:3,value:"STEEL"},Cn.WOOD={type:3,value:"WOOD"},Cn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Cn;class _n{}_n.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},_n.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},_n.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},_n.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},_n.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},_n.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},_n.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},_n.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},_n.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},_n.USERDEFINED={type:3,value:"USERDEFINED"},_n.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=_n;class Bn{}Bn.LIGHTDOME={type:3,value:"LIGHTDOME"},Bn.SKYLIGHT={type:3,value:"SKYLIGHT"},Bn.WINDOW={type:3,value:"WINDOW"},Bn.USERDEFINED={type:3,value:"USERDEFINED"},Bn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Bn;class On{}On.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},On.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},On.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},On.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},On.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},On.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},On.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},On.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},On.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},On.USERDEFINED={type:3,value:"USERDEFINED"},On.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=On;class Sn{}Sn.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},Sn.SECONDSHIFT={type:3,value:"SECONDSHIFT"},Sn.THIRDSHIFT={type:3,value:"THIRDSHIFT"},Sn.USERDEFINED={type:3,value:"USERDEFINED"},Sn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=Sn;class Nn{}Nn.ACTUAL={type:3,value:"ACTUAL"},Nn.BASELINE={type:3,value:"BASELINE"},Nn.PLANNED={type:3,value:"PLANNED"},Nn.USERDEFINED={type:3,value:"USERDEFINED"},Nn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Nn;class xn{}xn.ACTUAL={type:3,value:"ACTUAL"},xn.BASELINE={type:3,value:"BASELINE"},xn.PLANNED={type:3,value:"PLANNED"},xn.USERDEFINED={type:3,value:"USERDEFINED"},xn.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=xn;e.IfcActorRole=class extends Kb{constructor(e,t,s,n){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=n,this.type=3630933823}};class Ln extends Kb{constructor(e,t,s,n){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.type=618182010}}e.IfcAddress=Ln;class Mn extends Kb{constructor(e,t,s){super(e),this.StartTag=t,this.EndTag=s,this.type=2879124712}}e.IfcAlignmentParameterSegment=Mn;e.IfcAlignmentVerticalSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=n,this.HorizontalLength=i,this.StartHeight=a,this.StartGradient=r,this.EndGradient=l,this.RadiusOfCurvature=o,this.PredefinedType=c,this.type=3633395639}};e.IfcApplication=class extends Kb{constructor(e,t,s,n,i){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=n,this.ApplicationIdentifier=i,this.type=639542469}};class Fn extends Kb{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=411424972}}e.IfcAppliedValue=Fn;e.IfcApproval=class extends Kb{constructor(e,t,s,n,i,a,r,l,o,c){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.TimeOfApproval=i,this.Status=a,this.Level=r,this.Qualifier=l,this.RequestingApproval=o,this.GivingApproval=c,this.type=130549933}};class Hn extends Kb{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Hn;e.IfcBoundaryEdgeCondition=class extends Hn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=i,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=r,this.RotationalStiffnessByLengthZ=l,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Hn{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=i,this.type=3367102660}};class Un extends Hn{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.type=1387855156}}e.IfcBoundaryNodeCondition=Un;e.IfcBoundaryNodeConditionWarping=class extends Un{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=i,this.RotationalStiffnessX=a,this.RotationalStiffnessY=r,this.RotationalStiffnessZ=l,this.WarpingStiffness=o,this.type=2069777674}};class Gn extends Kb{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Gn;class jn extends Gn{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=jn;e.IfcConnectionSurfaceGeometry=class extends Gn{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Gn{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class Vn extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.type=1959218052}}e.IfcConstraint=Vn;class kn extends Kb{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=kn;class Qn extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.type=1466758467}}e.IfcCoordinateReferenceSystem=Qn;e.IfcCostValue=class extends Fn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.Name=t,this.Description=s,this.AppliedValue=n,this.UnitBasis=i,this.ApplicableDate=a,this.FixedUntilDate=r,this.Category=l,this.Condition=o,this.ArithmeticOperator=c,this.Components=u,this.type=602808272}};e.IfcDerivedUnit=class extends Kb{constructor(e,t,s,n,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=n,this.Name=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends Kb{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends Kb{constructor(e,t,s,n,i,a,r,l){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=n,this.ElectricCurrentExponent=i,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=r,this.LuminousIntensityExponent=l,this.type=2949456006}};class Wn extends Kb{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=Wn;class zn extends Kb{constructor(e,t,s,n){super(e),this.Location=t,this.Identification=s,this.Name=n,this.type=3200245327}}e.IfcExternalReference=zn;e.IfcExternallyDefinedHatchStyle=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends zn{constructor(e,t,s,n){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.type=3548104201}};e.IfcGridAxis=class extends Kb{constructor(e,t,s,n){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=n,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends Kb{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Wn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Version=s,this.Publisher=n,this.VersionDate=i,this.Location=a,this.Description=r,this.type=2655187982}};e.IfcLibraryReference=class extends zn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.Language=a,this.ReferencedLibrary=r,this.type=3452421091}};e.IfcLightDistributionData=class extends Kb{constructor(e,t,s,n){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=n,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends Kb{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends kn{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=n,this.Northings=i,this.OrthogonalHeight=a,this.XAxisAbscissa=r,this.XAxisOrdinate=l,this.Scale=o,this.ScaleY=c,this.ScaleZ=u,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends Kb{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class Kn extends Kb{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=Kn;class Yn extends Kn{constructor(e,t,s,n,i,a,r,l){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.type=248100487}}e.IfcMaterialLayer=Yn;e.IfcMaterialLayerSet=class extends Kn{constructor(e,t,s,n){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=n,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends Yn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.Material=t,this.LayerThickness=s,this.IsVentilated=n,this.Name=i,this.Description=a,this.Category=r,this.Priority=l,this.OffsetDirection=o,this.OffsetValues=c,this.type=1847252529}};e.IfcMaterialList=class extends Kb{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class Xn extends Kn{constructor(e,t,s,n,i,a,r){super(e),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.type=2235152071}}e.IfcMaterialProfile=Xn;e.IfcMaterialProfileSet=class extends Kn{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=n,this.CompositeProfile=i,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends Xn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.Name=t,this.Description=s,this.Material=n,this.Profile=i,this.Priority=a,this.Category=r,this.OffsetValues=l,this.type=552965576}};class qn extends Kb{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=qn;e.IfcMeasureWithUnit=class extends Kb{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.Benchmark=o,this.ValueSource=c,this.DataValue=u,this.ReferencePath=h,this.type=3368373690}};e.IfcMonetaryUnit=class extends Kb{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Jn extends Kb{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Jn;class Zn extends Kb{constructor(e,t){super(e),this.PlacementRelTo=t,this.type=3701648758}}e.IfcObjectPlacement=Zn;e.IfcObjective=class extends Vn{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.Name=t,this.Description=s,this.ConstraintGrade=n,this.ConstraintSource=i,this.CreatingActor=a,this.CreationTime=r,this.UserDefinedGrade=l,this.BenchmarkValues=o,this.LogicalAggregator=c,this.ObjectiveQualifier=u,this.UserDefinedQualifier=h,this.type=2251480897}};e.IfcOrganization=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Roles=i,this.Addresses=a,this.type=4251960020}};e.IfcOwnerHistory=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=n,this.ChangeAction=i,this.LastModifiedDate=a,this.LastModifyingUser=r,this.LastModifyingApplication=l,this.CreationDate=o,this.type=1207048766}};e.IfcPerson=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=n,this.MiddleNames=i,this.PrefixTitles=a,this.SuffixTitles=r,this.Roles=l,this.Addresses=o,this.type=2077209135}};e.IfcPersonAndOrganization=class extends Kb{constructor(e,t,s,n){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=n,this.type=101040310}};class $n extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=$n;class ei extends $n{constructor(e,t,s,n){super(e,t,s),this.Name=t,this.Description=s,this.Unit=n,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=ei;e.IfcPostalAddress=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.InternalLocation=i,this.AddressLines=a,this.PostalBox=r,this.Town=l,this.Region=o,this.PostalCode=c,this.Country=u,this.type=3355820592}};class ti extends Kb{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=ti;class si extends Kb{constructor(e,t,s,n,i){super(e),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.type=2022622350}}e.IfcPresentationLayerAssignment=si;e.IfcPresentationLayerWithStyle=class extends si{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i),this.Name=t,this.Description=s,this.AssignedItems=n,this.Identifier=i,this.LayerOn=a,this.LayerFrozen=r,this.LayerBlocked=l,this.LayerStyles=o,this.type=1304840413}};class ni extends Kb{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=ni;class ii extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Representations=n,this.type=2095639259}}e.IfcProductRepresentation=ii;class ai extends Kb{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=ai;e.IfcProjectedCRS=class extends Qn{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.Name=t,this.Description=s,this.GeodeticDatum=n,this.VerticalDatum=i,this.MapProjection=a,this.MapZone=r,this.MapUnit=l,this.type=3843373140}};class ri extends Kb{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=ri;e.IfcPropertyEnumeration=class extends ri{constructor(e,t,s,n){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=n,this.type=3710013099}};e.IfcQuantityArea=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.AreaValue=i,this.Formula=a,this.type=2044713172}};e.IfcQuantityCount=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.CountValue=i,this.Formula=a,this.type=2093928680}};e.IfcQuantityLength=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.LengthValue=i,this.Formula=a,this.type=931644368}};e.IfcQuantityNumber=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.NumberValue=i,this.Formula=a,this.type=2691318326}};e.IfcQuantityTime=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.TimeValue=i,this.Formula=a,this.type=3252649465}};e.IfcQuantityVolume=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.VolumeValue=i,this.Formula=a,this.type=2405470396}};e.IfcQuantityWeight=class extends ei{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.Description=s,this.Unit=n,this.WeightValue=i,this.Formula=a,this.type=825690147}};e.IfcRecurrencePattern=class extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=n,this.MonthComponent=i,this.Position=a,this.Interval=r,this.Occurrences=l,this.TimePeriods=o,this.type=3915482550}};e.IfcReference=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=n,this.ListPositions=i,this.InnerReference=a,this.type=2433181523}};class li extends Kb{constructor(e,t,s,n,i){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1076942058}}e.IfcRepresentation=li;class oi extends Kb{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=oi;class ci extends Kb{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=ci;e.IfcRepresentationMap=class extends Kb{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class ui extends Kb{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=ui;class hi extends Kb{constructor(e,t,s,n,i){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2341007311}}e.IfcRoot=hi;e.IfcSIUnit=class extends Jn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Prefix=n,this.Name=i,this.type=448429030}};class pi extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.type=1054537805}}e.IfcSchedulingTime=pi;e.IfcShapeAspect=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=n,this.ProductDefinitional=i,this.PartOfProductDefinitionShape=a,this.type=867548509}};class Ai extends li{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3982875396}}e.IfcShapeModel=Ai;e.IfcShapeRepresentation=class extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=4240577450}};class di extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=di;class fi extends Kb{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=fi;e.IfcStructuralLoadConfiguration=class extends fi{constructor(e,t,s,n){super(e,t),this.Name=t,this.Values=s,this.Locations=n,this.type=3478079324}};class Ii extends fi{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Ii;class yi extends Ii{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=yi;e.IfcStructuralLoadTemperature=class extends yi{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=n,this.DeltaTZ=i,this.type=3408363356}};class mi extends li{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=2830218821}}e.IfcStyleModel=mi;e.IfcStyledItem=class extends ci{constructor(e,t,s,n){super(e),this.Item=t,this.Styles=s,this.Name=n,this.type=3958052878}};e.IfcStyledRepresentation=class extends mi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Ii{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=n,this.ShearReinforcement=i,this.type=2934153892}};e.IfcSurfaceStyle=class extends ni{constructor(e,t,s,n){super(e,t),this.Name=t,this.Side=s,this.Styles=n,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends ti{constructor(e,t,s,n,i){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=n,this.ReflectanceColour=i,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends ti{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class vi extends ti{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=vi;e.IfcSurfaceStyleWithTextures=class extends ti{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class wi extends ti{constructor(e,t,s,n,i,a){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.type=626085974}}e.IfcSurfaceTexture=wi;e.IfcTable=class extends Kb{constructor(e,t,s,n){super(e),this.Name=t,this.Rows=s,this.Columns=n,this.type=985171141}};e.IfcTableColumn=class extends Kb{constructor(e,t,s,n,i,a){super(e),this.Identifier=t,this.Name=s,this.Description=n,this.Unit=i,this.ReferencePath=a,this.type=2043862942}};e.IfcTableRow=class extends Kb{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class gi extends pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.type=1549132990}}e.IfcTaskTime=gi;e.IfcTaskTimeRecurring=class extends gi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w,g){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.DurationType=i,this.ScheduleDuration=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.EarlyStart=o,this.EarlyFinish=c,this.LateStart=u,this.LateFinish=h,this.FreeFloat=p,this.TotalFloat=A,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=I,this.ActualStart=y,this.ActualFinish=m,this.RemainingTime=v,this.Completion=w,this.Recurrence=g,this.type=2771591690}};e.IfcTelecomAddress=class extends Ln{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=n,this.TelephoneNumbers=i,this.FacsimileNumbers=a,this.PagerNumber=r,this.ElectronicMailAddresses=l,this.WWWHomePageURL=o,this.MessagingIDs=c,this.type=912023232}};e.IfcTextStyle=class extends ni{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=n,this.TextFontStyle=i,this.ModelOrDraughting=a,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends ti{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends ti{constructor(e,t,s,n,i,a,r,l){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=n,this.LetterSpacing=i,this.WordSpacing=a,this.TextTransform=r,this.LineHeight=l,this.type=1640371178}};class Ei extends ti{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=Ei;e.IfcTextureCoordinateGenerator=class extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=n,this.type=1742049831}};class Ti extends Kb{constructor(e,t,s){super(e),this.TexCoordIndex=t,this.TexCoordsOf=s,this.type=222769930}}e.IfcTextureCoordinateIndices=Ti;e.IfcTextureCoordinateIndicesWithVoids=class extends Ti{constructor(e,t,s,n){super(e,t,s),this.TexCoordIndex=t,this.TexCoordsOf=s,this.InnerTexCoordIndices=n,this.type=1010789467}};e.IfcTextureMap=class extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=n,this.type=2552916305}};e.IfcTextureVertex=class extends ti{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends ti{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends Kb{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class bi extends Kb{constructor(e,t,s,n,i,a,r,l,o){super(e),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.type=3101149627}}e.IfcTimeSeries=bi;e.IfcTimeSeriesValue=class extends Kb{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Di extends ci{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Di;e.IfcTopologyRepresentation=class extends Ai{constructor(e,t,s,n,i){super(e,t,s,n,i),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=n,this.Items=i,this.type=1735638870}};e.IfcUnitAssignment=class extends Kb{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Pi extends Di{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Pi;e.IfcVertexPoint=class extends Pi{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends Kb{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends pi{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.RecurrencePattern=i,this.StartDate=a,this.FinishDate=r,this.type=1236880293}};e.IfcAlignmentCantSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=n,this.HorizontalLength=i,this.StartCantLeft=a,this.EndCantLeft=r,this.StartCantRight=l,this.EndCantRight=o,this.PredefinedType=c,this.type=3752311538}};e.IfcAlignmentHorizontalSegment=class extends Mn{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartPoint=n,this.StartDirection=i,this.StartRadiusOfCurvature=a,this.EndRadiusOfCurvature=r,this.SegmentLength=l,this.GravityCenterLineHeight=o,this.PredefinedType=c,this.type=536804194}};e.IfcApprovalRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=n,this.RelatedApprovals=i,this.type=3869604511}};class Ri extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ri;class Ci extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Ci;e.IfcArbitraryProfileDefWithVoids=class extends Ri{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=n,this.InnerCurves=i,this.type=2705031697}};e.IfcBlobTexture=class extends wi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.RasterFormat=r,this.RasterCode=l,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Ci{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Curve=n,this.Thickness=i,this.type=3150382593}};e.IfcClassification=class extends Wn{constructor(e,t,s,n,i,a,r,l){super(e),this.Source=t,this.Edition=s,this.EditionDate=n,this.Name=i,this.Description=a,this.Specification=r,this.ReferenceTokens=l,this.type=747523909}};e.IfcClassificationReference=class extends zn{constructor(e,t,s,n,i,a,r){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.ReferencedSource=i,this.Description=a,this.Sort=r,this.type=647927063}};e.IfcColourRgbList=class extends ti{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class _i extends ti{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=_i;e.IfcCompositeProfileDef=class extends ai{constructor(e,t,s,n,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=n,this.Label=i,this.type=1485152156}};class Bi extends Di{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Bi;e.IfcConnectionCurveGeometry=class extends Gn{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends jn{constructor(e,t,s,n,i,a){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=n,this.EccentricityInY=i,this.EccentricityInZ=a,this.type=45288368}};e.IfcContextDependentUnit=class extends Jn{constructor(e,t,s,n){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.type=3050246964}};class Oi extends Jn{constructor(e,t,s,n,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.type=2889183280}}e.IfcConversionBasedUnit=Oi;e.IfcConversionBasedUnitWithOffset=class extends Oi{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Dimensions=t,this.UnitType=s,this.Name=n,this.ConversionFactor=i,this.ConversionOffset=a,this.type=2713554722}};e.IfcCurrencyRelationship=class extends ui{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=i,this.ExchangeRate=a,this.RateDateTime=r,this.RateSource=l,this.type=539742890}};e.IfcCurveStyle=class extends ni{constructor(e,t,s,n,i,a){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=n,this.CurveColour=i,this.ModelOrDraughting=a,this.type=3800577675}};e.IfcCurveStyleFont=class extends ti{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends ti{constructor(e,t,s,n){super(e),this.Name=t,this.CurveStyleFont=s,this.CurveFontScaling=n,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends ti{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class Si extends ai{constructor(e,t,s,n,i,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=3632507154}}e.IfcDerivedProfileDef=Si;e.IfcDocumentInformation=class extends Wn{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e),this.Identification=t,this.Name=s,this.Description=n,this.Location=i,this.Purpose=a,this.IntendedUse=r,this.Scope=l,this.Revision=o,this.DocumentOwner=c,this.Editors=u,this.CreationTime=h,this.LastRevisionTime=p,this.ElectronicFormat=A,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=I,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=n,this.RelatedDocuments=i,this.RelationshipType=a,this.type=770865208}};e.IfcDocumentReference=class extends zn{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Location=t,this.Identification=s,this.Name=n,this.Description=i,this.ReferencedDocument=a,this.type=3732053477}};class Ni extends Di{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Ni;e.IfcEdgeCurve=class extends Ni{constructor(e,t,s,n,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=n,this.SameSense=i,this.type=476780140}};e.IfcEventTime=class extends pi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ActualDate=i,this.EarlyDate=a,this.LateDate=r,this.ScheduleDate=l,this.type=211053100}};class xi extends ri{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Properties=n,this.type=297599258}}e.IfcExtendedProperties=xi;e.IfcExternalReferenceRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=n,this.RelatedResourceObjects=i,this.type=1437805879}};class Li extends Di{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Li;class Mi extends Di{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Mi;e.IfcFaceOuterBound=class extends Mi{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Fi extends Li{constructor(e,t,s,n){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3008276851}}e.IfcFaceSurface=Fi;e.IfcFailureConnectionCondition=class extends di{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=n,this.TensionFailureZ=i,this.CompressionFailureX=a,this.CompressionFailureY=r,this.CompressionFailureZ=l,this.type=4219587988}};e.IfcFillAreaStyle=class extends ni{constructor(e,t,s,n){super(e,t),this.Name=t,this.FillStyles=s,this.ModelOrDraughting=n,this.type=738692330}};class Hi extends oi{constructor(e,t,s,n,i,a,r){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=n,this.Precision=i,this.WorldCoordinateSystem=a,this.TrueNorth=r,this.type=3448662350}}e.IfcGeometricRepresentationContext=Hi;class Ui extends ci{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Ui;e.IfcGeometricRepresentationSubContext=class extends Hi{constructor(e,s,n,i,a,r,l,o){super(e,s,n,new t(0),null,i,null),this.ContextIdentifier=s,this.ContextType=n,this.WorldCoordinateSystem=i,this.ParentContext=a,this.TargetScale=r,this.TargetView=l,this.UserDefinedTargetView=o,this.type=4142052618}};class Gi extends Ui{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Gi;e.IfcGridPlacement=class extends Zn{constructor(e,t,s,n){super(e,t),this.PlacementRelTo=t,this.PlacementLocation=s,this.PlacementRefDirection=n,this.type=178086475}};class ji extends Ui{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=ji;e.IfcImageTexture=class extends wi{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.URLReference=r,this.type=3905492369}};e.IfcIndexedColourMap=class extends ti{constructor(e,t,s,n,i){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=n,this.ColourIndex=i,this.type=3570813810}};class Vi extends Ei{constructor(e,t,s,n){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.type=1437953363}}e.IfcIndexedTextureMap=Vi;e.IfcIndexedTriangleTextureMap=class extends Vi{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndex=i,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends bi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.Values=c,this.type=3741457305}};e.IfcLagTime=class extends pi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.LagValue=i,this.DurationType=a,this.type=1585845231}};class ki extends Ui{constructor(e,t,s,n,i){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=1402838566}}e.IfcLightSource=ki;e.IfcLightSourceAmbient=class extends ki{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.type=125510826}};e.IfcLightSourceDirectional=class extends ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Orientation=a,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends ki{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.ColourAppearance=r,this.ColourTemperature=l,this.LuminousFlux=o,this.LightEmissionSource=c,this.LightDistributionDataSource=u,this.type=4266656042}};class Qi extends ki{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.type=1520743889}}e.IfcLightSourcePositional=Qi;e.IfcLightSourceSpot=class extends Qi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.Name=t,this.LightColour=s,this.AmbientIntensity=n,this.Intensity=i,this.Position=a,this.Radius=r,this.ConstantAttenuation=l,this.DistanceAttenuation=o,this.QuadricAttenuation=c,this.Orientation=u,this.ConcentrationExponent=h,this.SpreadAngle=p,this.BeamWidthAngle=A,this.type=3422422726}};e.IfcLinearPlacement=class extends Zn{constructor(e,t,s,n){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.CartesianPosition=n,this.type=388784114}};e.IfcLocalPlacement=class extends Zn{constructor(e,t,s){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class Wi extends Di{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=Wi;e.IfcMappedItem=class extends ci{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends Kn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.Category=n,this.type=1838606355}};e.IfcMaterialConstituent=class extends Kn{constructor(e,t,s,n,i,a){super(e),this.Name=t,this.Description=s,this.Material=n,this.Fraction=i,this.Category=a,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends Kn{constructor(e,t,s,n){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=n,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends ii{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.RepresentedMaterial=i,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends qn{constructor(e,t,s,n,i,a){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=n,this.OffsetFromReferenceLine=i,this.ReferenceExtent=a,this.type=1303795690}};class zi extends qn{constructor(e,t,s,n){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.type=3079605661}}e.IfcMaterialProfileSetUsage=zi;e.IfcMaterialProfileSetUsageTapering=class extends zi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=n,this.ForProfileEndSet=i,this.CardinalEndPoint=a,this.type=3404854881}};e.IfcMaterialProperties=class extends xi{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.Material=i,this.type=3265635763}};e.IfcMaterialRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=n,this.RelatedMaterials=i,this.MaterialExpression=a,this.type=853536259}};e.IfcMirroredProfileDef=class extends Si{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=n,this.Operator=i,this.Label=a,this.type=2998442950}};class Ki extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=219451334}}e.IfcObjectDefinition=Ki;e.IfcOpenCrossProfileDef=class extends ai{constructor(e,t,s,n,i,a,r,l){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.HorizontalWidths=n,this.Widths=i,this.Slopes=a,this.Tags=r,this.OffsetPoint=l,this.type=182550632}};e.IfcOpenShell=class extends Bi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=n,this.RelatedOrganizations=i,this.type=1411181986}};e.IfcOrientedEdge=class extends Ni{constructor(e,t,s,n){super(e,t,new zb(0)),this.EdgeStart=t,this.EdgeElement=s,this.Orientation=n,this.type=1029017970}};class Yi extends ai{constructor(e,t,s,n){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.type=2529465313}}e.IfcParameterizedProfileDef=Yi;e.IfcPath=class extends Di{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends $n{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=n,this.Discrimination=i,this.Quality=a,this.Usage=r,this.type=3021840470}};e.IfcPixelTexture=class extends wi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a),this.RepeatS=t,this.RepeatT=s,this.Mode=n,this.TextureTransform=i,this.Parameter=a,this.Width=r,this.Height=l,this.ColourComponents=o,this.Pixel=c,this.type=597895409}};class Xi extends Ui{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=Xi;class qi extends Ui{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=qi;class Ji extends Ui{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=Ji;e.IfcPointByDistanceExpression=class extends Ji{constructor(e,t,s,n,i,a){super(e),this.DistanceAlong=t,this.OffsetLateral=s,this.OffsetVertical=n,this.OffsetLongitudinal=i,this.BasisCurve=a,this.type=2165702409}};e.IfcPointOnCurve=class extends Ji{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends Ji{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=n,this.type=1423911732}};e.IfcPolyLoop=class extends Wi{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends ji{constructor(e,t,s,n,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=n,this.PolygonalBoundary=i,this.type=2775532180}};class Zi extends ti{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=Zi;class $i extends ri{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=$i;class ea extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=ea;e.IfcProductDefinitionShape=class extends ii{constructor(e,t,s,n){super(e,t,s,n),this.Name=t,this.Description=s,this.Representations=n,this.type=673634403}};e.IfcProfileProperties=class extends xi{constructor(e,t,s,n,i){super(e,t,s,n),this.Name=t,this.Description=s,this.Properties=n,this.ProfileDefinition=i,this.type=2802850158}};class ta extends ri{constructor(e,t,s){super(e),this.Name=t,this.Specification=s,this.type=2598011224}}e.IfcProperty=ta;class sa extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1680319473}}e.IfcPropertyDefinition=sa;e.IfcPropertyDependencyRelationship=class extends ui{constructor(e,t,s,n,i,a){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=n,this.DependantProperty=i,this.Expression=a,this.type=148025276}};class na extends sa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3357820518}}e.IfcPropertySetDefinition=na;class ia extends sa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=1482703590}}e.IfcPropertyTemplateDefinition=ia;class aa extends na{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2090586900}}e.IfcQuantitySet=aa;class ra extends Yi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.type=3615266464}}e.IfcRectangleProfileDef=ra;e.IfcRegularTimeSeries=class extends bi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.Name=t,this.Description=s,this.StartTime=n,this.EndTime=i,this.TimeSeriesDataType=a,this.DataOrigin=r,this.UserDefinedDataOrigin=l,this.Unit=o,this.TimeStep=c,this.Values=u,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends $i{constructor(e,t,s,n,i,a,r){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=n,this.EffectiveDepth=i,this.NominalBarDiameter=a,this.BarCount=r,this.type=1580146022}};class la extends hi{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=478536968}}e.IfcRelationship=la;e.IfcResourceApprovalRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=n,this.RelatingApproval=i,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends ui{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=n,this.RelatedResourceObjects=i,this.type=1608871552}};e.IfcResourceTime=class extends pi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=n,this.ScheduleWork=i,this.ScheduleUsage=a,this.ScheduleStart=r,this.ScheduleFinish=l,this.ScheduleContour=o,this.LevelingDelay=c,this.IsOverAllocated=u,this.StatusTime=h,this.ActualWork=p,this.ActualUsage=A,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=I,this.RemainingUsage=y,this.Completion=m,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends ra{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.RoundingRadius=r,this.type=2778083089}};e.IfcSectionProperties=class extends $i{constructor(e,t,s,n){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=n,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends $i{constructor(e,t,s,n,i,a,r){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=n,this.ReinforcementRole=i,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=r,this.type=4165799628}};e.IfcSectionedSpine=class extends Ui{constructor(e,t,s,n){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1509187699}};class oa extends Ui{constructor(e,t){super(e),this.Transition=t,this.type=823603102}}e.IfcSegment=oa;e.IfcShellBasedSurfaceModel=class extends Ui{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class ca extends ta{constructor(e,t,s){super(e,t,s),this.Name=t,this.Specification=s,this.type=3692461612}}e.IfcSimpleProperty=ca;e.IfcSlippageConnectionCondition=class extends di{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=n,this.SlippageZ=i,this.type=2609359061}};class ua extends Ui{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=ua;e.IfcStructuralLoadLinearForce=class extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=n,this.LinearForceZ=i,this.LinearMomentX=a,this.LinearMomentY=r,this.LinearMomentZ=l,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends yi{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=n,this.PlanarForceZ=i,this.type=2668620305}};class ha extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=ha;e.IfcStructuralLoadSingleDisplacementDistortion=class extends ha{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.DisplacementX=s,this.DisplacementY=n,this.DisplacementZ=i,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=r,this.RotationalDisplacementRZ=l,this.Distortion=o,this.type=1973038258}};class pa extends yi{constructor(e,t,s,n,i,a,r,l){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.type=1597423693}}e.IfcStructuralLoadSingleForce=pa;e.IfcStructuralLoadSingleForceWarping=class extends pa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.Name=t,this.ForceX=s,this.ForceY=n,this.ForceZ=i,this.MomentX=a,this.MomentY=r,this.MomentZ=l,this.WarpingMoment=o,this.type=1190533807}};e.IfcSubedge=class extends Ni{constructor(e,t,s,n){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=n,this.type=2233826070}};class Aa extends Ui{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Aa;e.IfcSurfaceStyleRendering=class extends vi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=n,this.TransmissionColour=i,this.DiffuseTransmissionColour=a,this.ReflectionColour=r,this.SpecularColour=l,this.SpecularHighlight=o,this.ReflectanceMethod=c,this.type=1878645084}};class da extends ua{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=da;class fa extends ua{constructor(e,t,s,n,i,a){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.type=1260650574}}e.IfcSweptDiskSolid=fa;e.IfcSweptDiskSolidPolygonal=class extends fa{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Directrix=t,this.Radius=s,this.InnerRadius=n,this.StartParam=i,this.EndParam=a,this.FilletRadius=r,this.type=1096409881}};class Ia extends Aa{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Ia;e.IfcTShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.WebEdgeRadius=u,this.WebSlope=h,this.FlangeSlope=p,this.type=3071757647}};class ya extends Ui{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=ya;class ma extends Ui{constructor(e,t,s,n){super(e),this.Literal=t,this.Placement=s,this.Path=n,this.type=4282788508}}e.IfcTextLiteral=ma;e.IfcTextLiteralWithExtent=class extends ma{constructor(e,t,s,n,i,a){super(e,t,s,n),this.Literal=t,this.Placement=s,this.Path=n,this.Extent=i,this.BoxAlignment=a,this.type=3124975700}};e.IfcTextStyleFontModel=class extends ea{constructor(e,t,s,n,i,a,r){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=n,this.FontVariant=i,this.FontWeight=a,this.FontSize=r,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomXDim=i,this.TopXDim=a,this.YDim=r,this.TopXOffset=l,this.type=2715220739}};class va extends Ki{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.type=1628702193}}e.IfcTypeObject=va;class wa extends va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.type=3736923433}}e.IfcTypeProcess=wa;class ga extends va{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.type=2347495698}}e.IfcTypeProduct=ga;class Ea extends va{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.type=3698973494}}e.IfcTypeResource=Ea;e.IfcUShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.FlangeSlope=u,this.type=427810014}};e.IfcVector=class extends Ui{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends Wi{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcZShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.FlangeWidth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.EdgeRadius=c,this.type=2543172580}};e.IfcAdvancedFace=class extends Fi{constructor(e,t,s,n){super(e,t,s,n),this.Bounds=t,this.FaceSurface=s,this.SameSense=n,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Ui{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.BottomFlangeWidth=i,this.OverallDepth=a,this.WebThickness=r,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=o,this.TopFlangeWidth=c,this.TopFlangeThickness=u,this.TopFlangeFilletRadius=h,this.BottomFlangeEdgeRadius=p,this.BottomFlangeSlope=A,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends Xi{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends Xi{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends Xi{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=2740243338}};e.IfcAxis2PlacementLinear=class extends Xi{constructor(e,t,s,n){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=n,this.type=3425423356}};class Ta extends Ui{constructor(e,t,s,n){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=2736907675}}e.IfcBooleanResult=Ta;class ba extends Aa{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=ba;e.IfcBoundingBox=class extends Ui{constructor(e,t,s,n,i){super(e),this.Corner=t,this.XDim=s,this.YDim=n,this.ZDim=i,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends ji{constructor(e,t,s,n){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=n,this.type=2713105998}};e.IfcCShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.WallThickness=r,this.Girth=l,this.InternalFilletRadius=o,this.type=2898889636}};e.IfcCartesianPoint=class extends Ji{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Da extends Ui{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Da;e.IfcCartesianPointList2D=class extends Da{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Da{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=2059837836}};class Pa extends Ui{constructor(e,t,s,n,i){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=59481748}}e.IfcCartesianTransformationOperator=Pa;class Ra extends Pa{constructor(e,t,s,n,i){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Ra;e.IfcCartesianTransformationOperator2DnonUniform=class extends Ra{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Scale2=a,this.type=3486308946}};class Ca extends Pa{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Ca;e.IfcCartesianTransformationOperator3DnonUniform=class extends Ca{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.Axis1=t,this.Axis2=s,this.LocalOrigin=n,this.Scale=i,this.Axis3=a,this.Scale2=r,this.Scale3=l,this.type=1416205885}};class _a extends Yi{constructor(e,t,s,n,i){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.type=1383045692}}e.IfcCircleProfileDef=_a;e.IfcClosedShell=class extends Bi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends _i{constructor(e,t,s,n,i){super(e,t),this.Name=t,this.Red=s,this.Green=n,this.Blue=i,this.type=776857604}};e.IfcComplexProperty=class extends ta{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=n,this.HasProperties=i,this.type=2542286263}};class Ba extends oa{constructor(e,t,s,n){super(e,t),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.type=2485617015}}e.IfcCompositeCurveSegment=Ba;class Oa extends Ea{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.type=2574617495}}e.IfcConstructionResourceType=Oa;class Sa extends Ki{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=3419103109}}e.IfcContext=Sa;e.IfcCrewResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1815067380}};class Na extends Ui{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Na;e.IfcCsgSolid=class extends ua{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class xa extends Ui{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=xa;e.IfcCurveBoundedPlane=class extends ba{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=n,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends ba{constructor(e,t,s,n){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=n,this.type=2629017746}};e.IfcCurveSegment=class extends oa{constructor(e,t,s,n,i,a){super(e,t),this.Transition=t,this.Placement=s,this.SegmentStart=n,this.SegmentLength=i,this.ParentCurve=a,this.type=4212018352}};e.IfcDirection=class extends Ui{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};class La extends da{constructor(e,t,s,n,i,a){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.type=593015953}}e.IfcDirectrixCurveSweptAreaSolid=La;e.IfcEdgeLoop=class extends Wi{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends aa{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.MethodOfMeasurement=a,this.Quantities=r,this.type=1883228015}};class Ma extends ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=339256511}}e.IfcElementType=Ma;class Fa extends Aa{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Fa;e.IfcEllipseProfileDef=class extends Yi{constructor(e,t,s,n,i,a){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.SemiAxis1=i,this.SemiAxis2=a,this.type=2835456948}};e.IfcEventType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.EventTriggerType=h,this.UserDefinedEventTriggerType=p,this.type=4024345920}};class Ha extends da{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=477187591}}e.IfcExtrudedAreaSolid=Ha;e.IfcExtrudedAreaSolidTapered=class extends Ha{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.EndSweptArea=a,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Ui{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Ui{constructor(e,t,s,n,i,a){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=n,this.PatternStart=i,this.HatchLineAngle=a,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Ui{constructor(e,t,s,n){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=n,this.type=315944413}};class Ua extends La{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=Ua;class Ga extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=4238390223}}e.IfcFurnishingElementType=Ga;e.IfcFurnitureType=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.AssemblyPlace=u,this.PredefinedType=h,this.type=1268542332}};e.IfcGeographicElementType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Gi{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.OverallWidth=i,this.OverallDepth=a,this.WebThickness=r,this.FlangeThickness=l,this.FilletRadius=o,this.FlangeEdgeRadius=c,this.FlangeSlope=u,this.type=1484403080}};class ja extends ya{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=ja;e.IfcIndexedPolygonalFaceWithVoids=class extends ja{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcIndexedPolygonalTextureMap=class extends Vi{constructor(e,t,s,n,i){super(e,t,s,n),this.Maps=t,this.MappedTo=s,this.TexCoords=n,this.TexCoordIndices=i,this.type=3465909080}};e.IfcLShapeProfileDef=class extends Yi{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Depth=i,this.Width=a,this.Thickness=r,this.FilletRadius=l,this.EdgeRadius=o,this.LegSlope=c,this.type=572779678}};e.IfcLaborResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=428585644}};e.IfcLine=class extends xa{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Va extends ua{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Va;class ka extends Ki{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=3888040117}}e.IfcObject=ka;class Qa extends xa{constructor(e,t){super(e),this.BasisCurve=t,this.type=590820931}}e.IfcOffsetCurve=Qa;e.IfcOffsetCurve2D=class extends Qa{constructor(e,t,s,n){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qa{constructor(e,t,s,n,i){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=n,this.RefDirection=i,this.type=3505215534}};e.IfcOffsetCurveByDistances=class extends Qa{constructor(e,t,s,n){super(e,t),this.BasisCurve=t,this.OffsetValues=s,this.Tag=n,this.type=2485787929}};e.IfcPcurve=class extends xa{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends qi{constructor(e,t,s,n){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=n,this.type=603570806}};e.IfcPlane=class extends Fa{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};e.IfcPolynomialCurve=class extends xa{constructor(e,t,s,n,i){super(e),this.Position=t,this.CoefficientsX=s,this.CoefficientsY=n,this.CoefficientsZ=i,this.type=3381221214}};class Wa extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Wa;class za extends Zi{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=za;class Ka extends na{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3967405729}}e.IfcPreDefinedPropertySet=Ka;e.IfcProcedureType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.type=569719735}};class Ya extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2945172077}}e.IfcProcess=Ya;class Xa extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=4208778838}}e.IfcProduct=Xa;e.IfcProject=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=103090709}};e.IfcProjectLibrary=class extends Sa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.Phase=l,this.RepresentationContexts=o,this.UnitsInContext=c,this.type=653396225}};e.IfcPropertyBoundedValue=class extends ca{constructor(e,t,s,n,i,a,r){super(e,t,s),this.Name=t,this.Specification=s,this.UpperBoundValue=n,this.LowerBoundValue=i,this.Unit=a,this.SetPointValue=r,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.EnumerationValues=n,this.EnumerationReference=i,this.type=4166981789}};e.IfcPropertyListValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.ListValues=n,this.Unit=i,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=n,this.PropertyReference=i,this.type=941946838}};e.IfcPropertySet=class extends na{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.HasProperties=a,this.type=1451395588}};e.IfcPropertySetTemplate=class extends ia{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.ApplicableEntity=r,this.HasPropertyTemplates=l,this.type=492091185}};e.IfcPropertySingleValue=class extends ca{constructor(e,t,s,n,i){super(e,t,s),this.Name=t,this.Specification=s,this.NominalValue=n,this.Unit=i,this.type=3650150729}};e.IfcPropertyTableValue=class extends ca{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s),this.Name=t,this.Specification=s,this.DefiningValues=n,this.DefinedValues=i,this.Expression=a,this.DefiningUnit=r,this.DefinedUnit=l,this.CurveInterpolation=o,this.type=110355661}};class qa extends ia{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=3521284610}}e.IfcPropertyTemplate=qa;e.IfcRectangleHollowProfileDef=class extends ra{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.XDim=i,this.YDim=a,this.WallThickness=r,this.InnerFilletRadius=l,this.OuterFilletRadius=o,this.type=2770003689}};e.IfcRectangularPyramid=class extends Na{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.Height=i,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends ba{constructor(e,t,s,n,i,a,r,l){super(e),this.BasisSurface=t,this.U1=s,this.V1=n,this.U2=i,this.V2=a,this.Usense=r,this.Vsense=l,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends Ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.DefinitionType=a,this.ReinforcementSectionDefinitions=r,this.type=3765753017}};class Ja extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.type=3939117080}}e.IfcRelAssigns=Ja;e.IfcRelAssignsToActor=class extends Ja{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingActor=l,this.ActingRole=o,this.type=1683148259}};e.IfcRelAssignsToControl=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingControl=l,this.type=2495723537}};class Za extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.type=1307041759}}e.IfcRelAssignsToGroup=Za;e.IfcRelAssignsToGroupByFactor=class extends Za{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingGroup=l,this.Factor=o,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends Ja{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProcess=l,this.QuantityInProcess=o,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingProduct=l,this.type=2857406711}};e.IfcRelAssignsToResource=class extends Ja{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatedObjectsType=r,this.RelatingResource=l,this.type=205026976}};class $a extends la{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.type=1865459582}}e.IfcRelAssociates=$a;e.IfcRelAssociatesApproval=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingApproval=r,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingClassification=r,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $a{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.Intent=r,this.RelatingConstraint=l,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingDocument=r,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingLibrary=r,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingMaterial=r,this.type=2655215786}};e.IfcRelAssociatesProfileDef=class extends $a{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingProfileDef=r,this.type=1033248425}};class er extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=826625072}}e.IfcRelConnects=er;class tr extends er{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.type=1204542856}}e.IfcRelConnectsElements=tr;e.IfcRelConnectsPathElements=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RelatingPriorities=o,this.RelatedPriorities=c,this.RelatedConnectionType=u,this.RelatingConnectionType=h,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedElement=r,this.type=4201705270}};e.IfcRelConnectsPorts=class extends er{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPort=a,this.RelatedPort=r,this.RealizingElement=l,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedStructuralActivity=r,this.type=2127690289}};class sr extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sr;e.IfcRelConnectsWithEccentricity=class extends sr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=r,this.AppliedCondition=l,this.AdditionalConditions=o,this.SupportedLength=c,this.ConditionCoordinateSystem=u,this.ConnectionConstraint=h,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ConnectionGeometry=a,this.RelatingElement=r,this.RelatedElement=l,this.RealizingElements=o,this.ConnectionType=c,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedCoverings=r,this.type=886880790}};e.IfcRelCoversSpaces=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedCoverings=r,this.type=2802773753}};e.IfcRelDeclares=class extends la{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingContext=a,this.RelatedDefinitions=r,this.type=2565941209}};class nr extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=2551354335}}e.IfcRelDecomposes=nr;class ir extends la{constructor(e,t,s,n,i){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.type=693640335}}e.IfcRelDefines=ir;e.IfcRelDefinesByObject=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingObject=r,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingPropertyDefinition=r,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedPropertySets=a,this.RelatingTemplate=r,this.type=307848117}};e.IfcRelDefinesByType=class extends ir{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedObjects=a,this.RelatingType=r,this.type=781010003}};e.IfcRelFillsElement=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingOpeningElement=a,this.RelatedBuildingElement=r,this.type=3940055652}};e.IfcRelFlowControlElements=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedControlElements=a,this.RelatingFlowElement=r,this.type=279856033}};e.IfcRelInterferesElements=class extends er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedElement=r,this.InterferenceGeometry=l,this.InterferenceSpace=o,this.InterferenceType=c,this.ImpliedOrder=u,this.type=427948657}};e.IfcRelNests=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=3268803585}};e.IfcRelPositions=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingPositioningElement=a,this.RelatedProducts=r,this.type=1441486842}};e.IfcRelProjectsElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedFeatureElement=r,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatedElements=a,this.RelatingStructure=r,this.type=1245217292}};e.IfcRelSequence=class extends er{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingProcess=a,this.RelatedProcess=r,this.TimeLag=l,this.SequenceType=o,this.UserDefinedSequenceType=c,this.type=4122056220}};e.IfcRelServicesBuildings=class extends er{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSystem=a,this.RelatedBuildings=r,this.type=366585022}};class ar extends er{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.type=3451746338}}e.IfcRelSpaceBoundary=ar;class rr extends ar{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=rr;e.IfcRelSpaceBoundary2ndLevel=class extends rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingSpace=a,this.RelatedBuildingElement=r,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=o,this.InternalOrExternalBoundary=c,this.ParentBoundary=u,this.CorrespondingBoundary=h,this.type=1521410863}};e.IfcRelVoidsElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingBuildingElement=a,this.RelatedOpeningElement=r,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Ba{constructor(e,t,s,n,i){super(e,t,s,n),this.Transition=t,this.SameSense=s,this.ParentCurve=n,this.ParamLength=i,this.type=816062949}};class lr extends ka{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.type=2914609552}}e.IfcResource=lr;class or extends da{constructor(e,t,s,n,i){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.type=1856042241}}e.IfcRevolvedAreaSolid=or;e.IfcRevolvedAreaSolidTapered=class extends or{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.SweptArea=t,this.Position=s,this.Axis=n,this.Angle=i,this.EndSweptArea=a,this.type=3243963512}};e.IfcRightCircularCone=class extends Na{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=n,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Na{constructor(e,t,s,n){super(e,t),this.Position=t,this.Height=s,this.Radius=n,this.type=3626867408}};class cr extends ua{constructor(e,t,s){super(e),this.Directrix=t,this.CrossSections=s,this.type=1862484736}}e.IfcSectionedSolid=cr;e.IfcSectionedSolidHorizontal=class extends cr{constructor(e,t,s,n){super(e,t,s),this.Directrix=t,this.CrossSections=s,this.CrossSectionPositions=n,this.type=1290935644}};e.IfcSectionedSurface=class extends Aa{constructor(e,t,s,n){super(e),this.Directrix=t,this.CrossSectionPositions=s,this.CrossSections=n,this.type=1356537516}};e.IfcSimplePropertyTemplate=class extends qa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.TemplateType=a,this.PrimaryMeasureType=r,this.SecondaryMeasureType=l,this.Enumerators=o,this.PrimaryUnit=c,this.SecondaryUnit=u,this.Expression=h,this.AccessState=p,this.type=3663146110}};class ur extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=1412071761}}e.IfcSpatialElement=ur;class hr extends ga{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=710998568}}e.IfcSpatialElementType=hr;class pr extends ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=2706606064}}e.IfcSpatialStructureElement=pr;class Ar extends hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893378262}}e.IfcSpatialStructureElementType=Ar;e.IfcSpatialZone=class extends ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=463610769}};e.IfcSpatialZoneType=class extends hr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=2481509218}};e.IfcSphere=class extends Na{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Fa{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class dr extends xa{constructor(e,t){super(e),this.Position=t,this.type=2735484536}}e.IfcSpiral=dr;class fr extends Xa{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3544373492}}e.IfcStructuralActivity=fr;class Ir extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3136571912}}e.IfcStructuralItem=Ir;class yr extends Ir{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=530289379}}e.IfcStructuralMember=yr;class mr extends fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=3689010777}}e.IfcStructuralReaction=mr;class vr extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=3979015343}}e.IfcStructuralSurfaceMember=vr;e.IfcStructuralSurfaceMemberVarying=class extends vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Thickness=c,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=603775116}};e.IfcSubContractResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4095615324}};class wr extends xa{constructor(e,t,s,n){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=699246055}}e.IfcSurfaceCurve=wr;e.IfcSurfaceCurveSweptAreaSolid=class extends La{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.ReferenceSurface=r,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Ia{constructor(e,t,s,n,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=n,this.Depth=i,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Ia{constructor(e,t,s,n){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=n,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Ga{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1580310250}};e.IfcTask=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Status=o,this.WorkMethod=c,this.IsMilestone=u,this.Priority=h,this.TaskTime=p,this.PredefinedType=A,this.type=3473067441}};e.IfcTaskType=class extends wa{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ProcessType=c,this.PredefinedType=u,this.WorkMethod=h,this.type=3206491090}};class gr extends ya{constructor(e,t,s){super(e),this.Coordinates=t,this.Closed=s,this.type=2387106220}}e.IfcTessellatedFaceSet=gr;e.IfcThirdOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i,a){super(e,t),this.Position=t,this.CubicTerm=s,this.QuadraticTerm=n,this.LinearTerm=i,this.ConstantTerm=a,this.type=782932809}};e.IfcToroidalSurface=class extends Fa{constructor(e,t,s,n){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=n,this.type=1935646853}};class Er extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3665877780}}e.IfcTransportationDeviceType=Er;class Tr extends gr{constructor(e,t,s,n,i,a){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Normals=n,this.CoordIndex=i,this.PnIndex=a,this.type=2916149573}}e.IfcTriangulatedFaceSet=Tr;e.IfcTriangulatedIrregularNetwork=class extends Tr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.Coordinates=t,this.Closed=s,this.Normals=n,this.CoordIndex=i,this.PnIndex=a,this.Flags=r,this.type=1229763772}};e.IfcVehicleType=class extends Er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3651464721}};e.IfcWindowLiningProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.TransomThickness=l,this.MullionThickness=o,this.FirstTransomOffset=c,this.SecondTransomOffset=u,this.FirstMullionOffset=h,this.SecondMullionOffset=p,this.ShapeAspectStyle=A,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=I,this.type=336235671}};e.IfcWindowPanelProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=512836454}};class br extends ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.type=2296667514}}e.IfcActor=br;class Dr extends Va{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Dr;e.IfcAdvancedBrepWithVoids=class extends Dr{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=1674181508}};class Pr extends ba{constructor(e,t,s,n,i,a,r,l){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.type=2887950389}}e.IfcBSplineSurface=Pr;class Rr extends Pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Rr;e.IfcBlock=class extends Na{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.XLength=s,this.YLength=n,this.ZLength=i,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Ta{constructor(e,t,s,n){super(e,t,s,n),this.Operator=t,this.FirstOperand=s,this.SecondOperand=n,this.type=3649129432}};class Cr extends xa{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Cr;e.IfcBuildingStorey=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.Elevation=u,this.type=3124254112}};class _r extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1626504194}}e.IfcBuiltElementType=_r;e.IfcChimneyType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends _a{constructor(e,t,s,n,i,a){super(e,t,s,n,i),this.ProfileType=t,this.ProfileName=s,this.Position=n,this.Radius=i,this.WallThickness=a,this.type=2937912522}};e.IfcCivilElementType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3893394355}};e.IfcClothoid=class extends dr{constructor(e,t,s){super(e,t),this.Position=t,this.ClothoidConstant=s,this.type=3497074424}};e.IfcColumnType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends qa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.UsageName=a,this.TemplateType=r,this.HasPropertyTemplates=l,this.type=3875453745}};class Br extends Cr{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Br;class Or extends Br{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Or;class Sr extends xa{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=Sr;e.IfcConstructionEquipmentResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends Oa{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.Identification=l,this.LongDescription=o,this.ResourceType=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p,this.type=1525564444}};class Nr extends lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.type=2559216714}}e.IfcConstructionResource=Nr;class xr extends ka{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.type=3293443760}}e.IfcControl=xr;e.IfcCosineSpiral=class extends dr{constructor(e,t,s,n){super(e,t),this.Position=t,this.CosineTerm=s,this.ConstantTerm=n,this.type=2000195564}};e.IfcCostItem=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.CostValues=o,this.CostQuantities=c,this.type=3895139033}};e.IfcCostSchedule=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.SubmittedOn=c,this.UpdateDate=u,this.type=1419761937}};e.IfcCourseType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4189326743}};e.IfcCoveringType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1916426348}};e.IfcCrewResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3295246426}};e.IfcCurtainWallType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1457835157}};e.IfcCylindricalSurface=class extends Fa{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Lr extends _r{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1306400036}}e.IfcDeepFoundationType=Lr;e.IfcDirectrixDerivedReferenceSweptAreaSolid=class extends Ua{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a,r),this.SweptArea=t,this.Position=s,this.Directrix=n,this.StartParam=i,this.EndParam=a,this.FixedReference=r,this.type=4234616927}};class Mr extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3256556792}}e.IfcDistributionElementType=Mr;class Fr extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3849074793}}e.IfcDistributionFlowElementType=Fr;e.IfcDoorLiningProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.LiningDepth=a,this.LiningThickness=r,this.ThresholdDepth=l,this.ThresholdThickness=o,this.TransomThickness=c,this.TransomOffset=u,this.LiningOffset=h,this.ThresholdOffset=p,this.CasingThickness=A,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=I,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.PanelDepth=a,this.PanelOperation=r,this.PanelWidth=l,this.PanelPosition=o,this.ShapeAspectStyle=c,this.type=1714330368}};e.IfcDoorType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.OperationType=h,this.ParameterTakesPrecedence=p,this.UserDefinedOperationType=A,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Wa{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends za{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Hr extends Xa{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1758889154}}e.IfcElement=Hr;e.IfcElementAssembly=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.AssemblyPlace=c,this.PredefinedType=u,this.type=4123344466}};e.IfcElementAssemblyType=class extends Ma{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2397081782}};class Ur extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1623761950}}e.IfcElementComponent=Ur;class Gr extends Ma{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2590856083}}e.IfcElementComponentType=Gr;e.IfcEllipse=class extends Sr{constructor(e,t,s,n){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=n,this.type=1704287377}};class jr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2107101300}}e.IfcEnergyConversionDeviceType=jr;e.IfcEngineType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3174744832}};e.IfcEvaporatorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3390157468}};e.IfcEvent=class extends Ya{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.EventTriggerType=c,this.UserDefinedEventTriggerType=u,this.EventOccurenceTime=h,this.type=4148101412}};class Vr extends ur{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Vr;class kr extends Va{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=kr;e.IfcFacetedBrepWithVoids=class extends kr{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Qr extends pr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.type=24185140}}e.IfcFacility=Qr;class Wr extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.type=1310830890}}e.IfcFacilityPart=Wr;e.IfcFacilityPartCommon=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=4228831410}};e.IfcFastener=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=647756555}};e.IfcFastenerType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2489546625}};class zr extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2827207264}}e.IfcFeatureElement=zr;class Kr extends zr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2143335405}}e.IfcFeatureElementAddition=Kr;class Yr extends zr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1287392070}}e.IfcFeatureElementSubtraction=Yr;class Xr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3907093117}}e.IfcFlowControllerType=Xr;class qr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3198132628}}e.IfcFlowFittingType=qr;e.IfcFlowMeterType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3815607619}};class Jr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1482959167}}e.IfcFlowMovingDeviceType=Jr;class Zr extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1834744321}}e.IfcFlowSegmentType=Zr;class $r extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=1339347760}}e.IfcFlowStorageDeviceType=$r;class el extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2297155007}}e.IfcFlowTerminalType=el;class tl extends Fr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tl;e.IfcFootingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1893162501}};class sl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=263784265}}e.IfcFurnishingElement=sl;e.IfcFurniture=class extends sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1509553395}};e.IfcGeographicElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3493046030}};class nl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4230923436}}e.IfcGeotechnicalElement=nl;e.IfcGeotechnicalStratum=class extends nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1594536857}};e.IfcGradientCurve=class extends Br{constructor(e,t,s,n,i){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=n,this.EndPoint=i,this.type=2898700619}};class il extends ka{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2706460486}}e.IfcGroup=il;e.IfcHeatExchangerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1251058090}};e.IfcHumidifierType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1806887404}};e.IfcImpactProtectionDevice=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2568555532}};e.IfcImpactProtectionDeviceType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3948183225}};e.IfcIndexedPolyCurve=class extends Cr{constructor(e,t,s,n){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=n,this.type=2571569899}};e.IfcInterceptorType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3946677679}};e.IfcIntersectionCurve=class extends wr{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=3113134337}};e.IfcInventory=class extends il{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.Jurisdiction=l,this.ResponsiblePersons=o,this.LastUpdateDate=c,this.CurrentValue=u,this.OriginalValue=h,this.type=2391368822}};e.IfcJunctionBoxType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4288270099}};e.IfcKerbType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.Mountable=u,this.type=679976338}};e.IfcLaborResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3827777499}};e.IfcLampType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1051575348}};e.IfcLightFixtureType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1161773419}};class al extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=2176059722}}e.IfcLinearElement=al;e.IfcLiquidTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1770583370}};e.IfcMarineFacility=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=525669439}};e.IfcMarinePart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=976884017}};e.IfcMechanicalFastener=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NominalDiameter=c,this.NominalLength=u,this.PredefinedType=h,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.NominalLength=p,this.type=2108223431}};e.IfcMedicalDeviceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1114901282}};e.IfcMemberType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3181161470}};e.IfcMobileTelecommunicationsApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1950438474}};e.IfcMooringDeviceType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=710110818}};e.IfcMotorConnectionType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=977012517}};e.IfcNavigationElementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=506776471}};e.IfcOccupant=class extends br{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheActor=r,this.PredefinedType=l,this.type=4143007308}};e.IfcOpeningElement=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3588315303}};e.IfcOutletType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2837617999}};e.IfcPavementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=514975943}};e.IfcPerformanceHistory=class extends xr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LifeCyclePhase=l,this.PredefinedType=o,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends Ka{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.OperationType=a,this.PanelPosition=r,this.FrameDepth=l,this.FrameThickness=o,this.ShapeAspectStyle=c,this.type=3566463478}};e.IfcPermit=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3327091369}};e.IfcPileType=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1158309216}};e.IfcPipeFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=804291784}};e.IfcPipeSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4231323485}};e.IfcPlateType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends gr{constructor(e,t,s,n,i){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Faces=n,this.PnIndex=i,this.type=2839578677}};e.IfcPolyline=class extends Cr{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class rl extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=3740093272}}e.IfcPort=rl;class ll extends Xa{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1946335990}}e.IfcPositioningElement=ll;e.IfcProcedure=class extends Ya{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.PredefinedType=o,this.type=2744685151}};e.IfcProjectOrder=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=2904328755}};e.IfcProjectionElement=class extends Kr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1842657554}};e.IfcPumpType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2250791053}};e.IfcRailType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1763565496}};e.IfcRailingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2893384427}};e.IfcRailway=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=3992365140}};e.IfcRailwayPart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=1891881377}};e.IfcRampFlightType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2324767716}};e.IfcRampType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Rr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.UDegree=t,this.VDegree=s,this.ControlPointsList=n,this.SurfaceForm=i,this.UClosed=a,this.VClosed=r,this.SelfIntersect=l,this.UMultiplicities=o,this.VMultiplicities=c,this.UKnots=u,this.VKnots=h,this.KnotSpec=p,this.WeightsData=A,this.type=683857671}};e.IfcReferent=class extends ll{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=4021432810}};class ol extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.type=3027567501}}e.IfcReinforcingElement=ol;class cl extends Gr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=964333572}}e.IfcReinforcingElementType=cl;e.IfcReinforcingMesh=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.MeshLength=u,this.MeshWidth=h,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=A,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=I,this.TransverseBarSpacing=y,this.PredefinedType=m,this.type=2320036040}};e.IfcReinforcingMeshType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y,m,v,w){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.MeshLength=h,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=I,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=m,this.BendingShapeCode=v,this.BendingParameters=w,this.type=2310774935}};e.IfcRelAdheresToElement=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingElement=a,this.RelatedSurfaceFeatures=r,this.type=3818125796}};e.IfcRelAggregates=class extends nr{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.RelatingObject=a,this.RelatedObjects=r,this.type=160246688}};e.IfcRoad=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=146592293}};e.IfcRoadPart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=550521510}};e.IfcRoofType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1768891740}};e.IfcSeamCurve=class extends wr{constructor(e,t,s,n){super(e,t,s,n),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=n,this.type=2157484638}};e.IfcSecondOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.QuadraticTerm=s,this.LinearTerm=n,this.ConstantTerm=i,this.type=3649235739}};e.IfcSegmentedReferenceCurve=class extends Br{constructor(e,t,s,n,i){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=n,this.EndPoint=i,this.type=544395925}};e.IfcSeventhOrderPolynomialSpiral=class extends dr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t),this.Position=t,this.SepticTerm=s,this.SexticTerm=n,this.QuinticTerm=i,this.QuarticTerm=a,this.CubicTerm=r,this.QuadraticTerm=l,this.LinearTerm=o,this.ConstantTerm=c,this.type=1027922057}};e.IfcShadingDeviceType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4074543187}};e.IfcSign=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=33720170}};e.IfcSignType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3599934289}};e.IfcSignalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1894708472}};e.IfcSineSpiral=class extends dr{constructor(e,t,s,n,i){super(e,t),this.Position=t,this.SineTerm=s,this.LinearTerm=n,this.ConstantTerm=i,this.type=42703149}};e.IfcSite=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.RefLatitude=u,this.RefLongitude=h,this.RefElevation=p,this.LandTitleNumber=A,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2533589738}};e.IfcSolarDeviceType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1072016465}};e.IfcSpace=class extends pr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.ElevationWithFlooring=h,this.type=3856911033}};e.IfcSpaceHeaterType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1305183839}};e.IfcSpaceType=class extends Ar{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.LongName=h,this.type=3812236995}};e.IfcStackTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3112655638}};e.IfcStairFlightType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1039846685}};e.IfcStairType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=338393293}};class ul extends fr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=682877961}}e.IfcStructuralAction=ul;class hl extends Ir{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1179482911}}e.IfcStructuralConnection=hl;class pl extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1004757350}}e.IfcStructuralCurveAction=pl;e.IfcStructuralCurveConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.AxisDirection=c,this.type=4243806635}};class Al extends yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=214636428}}e.IfcStructuralCurveMember=Al;e.IfcStructuralCurveMemberVarying=class extends Al{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.Axis=c,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.PredefinedType=u,this.type=2757150158}};e.IfcStructuralLinearAction=class extends pl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1807405624}};class dl extends il{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.type=1252848954}}e.IfcStructuralLoadGroup=dl;e.IfcStructuralPointAction=class extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.ConditionCoordinateSystem=c,this.type=734778138}};e.IfcStructuralPointReaction=class extends mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.type=1235345126}};e.IfcStructuralResultGroup=class extends il{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.TheoryType=r,this.ResultForLoadGroup=l,this.IsLinear=o,this.type=2986769608}};class fl extends ul{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=3657597509}}e.IfcStructuralSurfaceAction=fl;e.IfcStructuralSurfaceConnection=class extends hl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedCondition=o,this.type=1975003073}};e.IfcSubContractResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=148013059}};e.IfcSurfaceFeature=class extends zr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2315554128}};class Il extends il{constructor(e,t,s,n,i,a){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.type=2254336722}}e.IfcSystem=Il;e.IfcSystemFurnitureElement=class extends sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=413509423}};e.IfcTankType=class extends $r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=5716631}};e.IfcTendon=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I,y){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.TensionForce=A,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=I,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=2347447852}};e.IfcTendonAnchorType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3081323446}};e.IfcTendonConduit=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.PredefinedType=u,this.type=3663046924}};e.IfcTendonConduitType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2281632017}};e.IfcTendonType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.SheathDiameter=A,this.type=2415094496}};e.IfcTrackElementType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=618700268}};e.IfcTransformerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1692211062}};e.IfcTransportElementType=class extends Er{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2097647324}};class yl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1953115116}}e.IfcTransportationDevice=yl;e.IfcTrimmedCurve=class extends Cr{constructor(e,t,s,n,i,a){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=n,this.SenseAgreement=i,this.MasterRepresentation=a,this.type=3593883385}};e.IfcTubeBundleType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1911125066}};e.IfcValveType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=728799441}};e.IfcVehicle=class extends yl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=840318589}};e.IfcVibrationDamper=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1530820697}};e.IfcVibrationDamperType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3956297820}};e.IfcVibrationIsolator=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3313531582}};e.IfcVirtualElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2769231204}};e.IfcVoidingFeature=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=926996030}};e.IfcWallType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1898987631}};e.IfcWasteTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1133259667}};e.IfcWindowType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.PartitioningType=h,this.ParameterTakesPrecedence=p,this.UserDefinedPartitioningType=A,this.type=4009809668}};e.IfcWorkCalendar=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.WorkingTimes=l,this.ExceptionTimes=o,this.PredefinedType=c,this.type=4088093105}};class ml extends xr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.type=1028945134}}e.IfcWorkControl=ml;e.IfcWorkPlan=class extends ml{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends ml{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c,u,h,p,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.CreationDate=l,this.Creators=o,this.Purpose=c,this.Duration=u,this.TotalFloat=h,this.StartTime=p,this.FinishTime=A,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends Il{constructor(e,t,s,n,i,a,r){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.type=1033361043}};e.IfcActionRequest=class extends xr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.PredefinedType=l,this.Status=o,this.LongDescription=c,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1411407467}};e.IfcAirTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1871374353}};e.IfcAlignmentCant=class extends al{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.RailHeadDistance=o,this.type=4266260250}};e.IfcAlignmentHorizontal=class extends al{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1545765605}};e.IfcAlignmentSegment=class extends al{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.DesignParameters=o,this.type=317615605}};e.IfcAlignmentVertical=class extends al{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1662888072}};e.IfcAsset=class extends il{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.OriginalValue=l,this.CurrentValue=o,this.TotalReplacementCost=c,this.Owner=u,this.User=h,this.ResponsiblePerson=p,this.IncorporationDate=A,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1532957894}};class vl extends Cr{constructor(e,t,s,n,i,a){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.type=1967976161}}e.IfcBSplineCurve=vl;class wl extends vl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.type=2461110595}}e.IfcBSplineCurveWithKnots=wl;e.IfcBeamType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=819618141}};e.IfcBearingType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3649138523}};e.IfcBoilerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=231477066}};class gl extends Or{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=gl;e.IfcBridge=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.PredefinedType=u,this.type=644574406}};e.IfcBridgePart=class extends Wr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.UsageType=u,this.PredefinedType=h,this.type=963979645}};e.IfcBuilding=class extends Qr{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.CompositionType=c,this.ElevationOfRefHeight=u,this.ElevationOfTerrain=h,this.BuildingAddress=p,this.type=4031249490}};e.IfcBuildingElementPart=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=39481116}};e.IfcBuildingElementProxyType=class extends _r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1909888760}};e.IfcBuildingSystem=class extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=1177604601}};class El extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1876633798}}e.IfcBuiltElement=El;e.IfcBuiltSystem=class extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.LongName=l,this.type=3862327254}};e.IfcBurnerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3293546465}};e.IfcCableFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2674252688}};e.IfcCableSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1285652485}};e.IfcCaissonFoundationType=class extends Lr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3203706013}};e.IfcChillerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2951183804}};e.IfcChimney=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3296154744}};e.IfcCircle=class extends Sr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1677625105}};e.IfcCoilType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2301859152}};e.IfcColumn=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=843113511}};e.IfcCommunicationsApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=400855858}};e.IfcCompressorType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3850581409}};e.IfcCondenserType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=1060000209}};e.IfcConstructionProductResource=class extends Nr{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.Identification=r,this.LongDescription=l,this.Usage=o,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=h,this.type=488727124}};e.IfcConveyorSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2940368186}};e.IfcCooledBeamType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=335055490}};e.IfcCoolingTowerType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2954562838}};e.IfcCourse=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1502416096}};e.IfcCovering=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1973544240}};e.IfcCurtainWall=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3495092785}};e.IfcDamperType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3961806047}};class Tl extends El{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3426335179}}e.IfcDeepFoundation=Tl;e.IfcDiscreteAccessory=class extends Ur{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Gr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2635815018}};e.IfcDistributionBoardType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=479945903}};e.IfcDistributionChamberElementType=class extends Fr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1599208980}};class bl extends Mr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.type=2063403501}}e.IfcDistributionControlElementType=bl;class Dl extends Hr{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1945004755}}e.IfcDistributionElement=Dl;class Pl extends Dl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3040386961}}e.IfcDistributionFlowElement=Pl;e.IfcDistributionPort=class extends rl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.FlowDirection=o,this.PredefinedType=c,this.SystemType=u,this.type=3041715199}};class Rl extends Il{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=3205830791}}e.IfcDistributionSystem=Rl;e.IfcDoor=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.OperationType=p,this.UserDefinedOperationType=A,this.type=395920057}};e.IfcDuctFittingType=class extends qr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=869906466}};e.IfcDuctSegmentType=class extends Zr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3760055223}};e.IfcDuctSilencerType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2030761528}};e.IfcEarthworksCut=class extends Yr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3071239417}};class Cl extends El{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1077100507}}e.IfcEarthworksElement=Cl;e.IfcEarthworksFill=class extends Cl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3376911765}};e.IfcElectricApplianceType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $r{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3277789161}};e.IfcElectricFlowTreatmentDeviceType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2142170206}};e.IfcElectricGeneratorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1534661035}};e.IfcElectricMotorType=class extends jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=712377611}};class _l extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1658829314}}e.IfcEnergyConversionDevice=_l;e.IfcEngine=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2814081492}};e.IfcEvaporativeCooler=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3747195512}};e.IfcEvaporator=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=484807127}};e.IfcExternalSpatialElement=class extends Vr{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.LongName=o,this.PredefinedType=c,this.type=1209101575}};e.IfcFanType=class extends Jr{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=346874300}};e.IfcFilterType=class extends tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends el{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4222183408}};class Bl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2058353004}}e.IfcFlowController=Bl;class Ol extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=4278956645}}e.IfcFlowFitting=Ol;e.IfcFlowInstrumentType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=4037862832}};e.IfcFlowMeter=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2188021234}};class Sl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3132237377}}e.IfcFlowMovingDevice=Sl;class Nl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=987401354}}e.IfcFlowSegment=Nl;class xl extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=707683696}}e.IfcFlowStorageDevice=xl;class Ll extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2223149337}}e.IfcFlowTerminal=Ll;class Ml extends Pl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3508470533}}e.IfcFlowTreatmentDevice=Ml;e.IfcFooting=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=900683007}};class Fl extends nl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2713699986}}e.IfcGeotechnicalAssembly=Fl;e.IfcGrid=class extends ll{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.UAxes=o,this.VAxes=c,this.WAxes=u,this.PredefinedType=h,this.type=3009204131}};e.IfcHeatExchanger=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3319311131}};e.IfcHumidifier=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2068733104}};e.IfcInterceptor=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4175244083}};e.IfcJunctionBox=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2176052936}};e.IfcKerb=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.Mountable=c,this.type=2696325953}};e.IfcLamp=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=76236018}};e.IfcLightFixture=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=629592764}};class Hl extends ll{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.type=1154579445}}e.IfcLinearPositioningElement=Hl;e.IfcLiquidTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1638804497}};e.IfcMedicalDevice=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1437502449}};e.IfcMember=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1073191201}};e.IfcMobileTelecommunicationsAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2078563270}};e.IfcMooringDevice=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=234836483}};e.IfcMotorConnection=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2474470126}};e.IfcNavigationElement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2182337498}};e.IfcOuterBoundaryCurve=class extends gl{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3694346114}};e.IfcPavement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1383356374}};e.IfcPile=class extends Tl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.ConstructionType=u,this.type=1687234759}};e.IfcPipeFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=310824031}};e.IfcPipeSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3612865200}};e.IfcPlate=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3171933400}};e.IfcProtectiveDevice=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=655969474}};e.IfcPump=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=90941305}};e.IfcRail=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3290496277}};e.IfcRailing=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2262370178}};e.IfcRamp=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3024970846}};e.IfcRampFlight=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends wl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=n,this.ClosedCurve=i,this.SelfIntersect=a,this.KnotMultiplicities=r,this.Knots=l,this.KnotSpec=o,this.WeightsData=c,this.type=1232101972}};e.IfcReinforcedSoil=class extends Cl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3798194928}};e.IfcReinforcingBar=class extends ol{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.SteelGrade=c,this.NominalDiameter=u,this.CrossSectionArea=h,this.BarLength=p,this.PredefinedType=A,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends cl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A,d,f,I){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.BarLength=A,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=I,this.type=2572171363}};e.IfcRoof=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3053780830}};e.IfcSensorType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=1783015770}};e.IfcShadingDevice=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1329646415}};e.IfcSignal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=991950508}};e.IfcSlab=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1529196076}};e.IfcSolarDevice=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3420628829}};e.IfcSpaceHeater=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1999602285}};e.IfcStackTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1404847402}};e.IfcStair=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=331165859}};e.IfcStairFlight=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.NumberOfRisers=c,this.NumberOfTreads=u,this.RiserHeight=h,this.TreadLength=p,this.PredefinedType=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Il{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.OrientationOf2DPlane=l,this.LoadedBy=o,this.HasResults=c,this.SharedPlacement=u,this.type=2515109513}};e.IfcStructuralLoadCase=class extends dl{constructor(e,t,s,n,i,a,r,l,o,c,u,h){super(e,t,s,n,i,a,r,l,o,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.PredefinedType=r,this.ActionType=l,this.ActionSource=o,this.Coefficient=c,this.Purpose=u,this.SelfWeightCoefficients=h,this.type=385403989}};e.IfcStructuralPlanarAction=class extends fl{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p){super(e,t,s,n,i,a,r,l,o,c,u,h,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.AppliedLoad=o,this.GlobalOrLocal=c,this.DestabilizingLoad=u,this.ProjectedOrTrue=h,this.PredefinedType=p,this.type=1621171031}};e.IfcSwitchingDevice=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1162798199}};e.IfcTank=class extends xl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=812556717}};e.IfcTrackElement=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3425753595}};e.IfcTransformer=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3825984169}};e.IfcTransportElement=class extends yl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1620046519}};e.IfcTubeBundle=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3179687236}};e.IfcUnitaryEquipment=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4292641817}};e.IfcValve=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4207607924}};class Ul extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2391406946}}e.IfcWall=Ul;e.IfcWallStandardCase=class extends Ul{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3512223829}};e.IfcWasteTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4237592921}};e.IfcWindow=class extends El{constructor(e,t,s,n,i,a,r,l,o,c,u,h,p,A){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.OverallHeight=c,this.OverallWidth=u,this.PredefinedType=h,this.PartitioningType=p,this.UserDefinedPartitioningType=A,this.type=3304561284}};e.IfcActuatorType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=2874132201}};e.IfcAirTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1634111441}};e.IfcAirTerminalBox=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2056796094}};e.IfcAlarmType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=3001207471}};e.IfcAlignment=class extends Hl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.PredefinedType=o,this.type=325726236}};e.IfcAudioVisualAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=277319702}};e.IfcBeam=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=753842376}};e.IfcBearing=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4196446775}};e.IfcBoiler=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=32344328}};e.IfcBorehole=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=3314249567}};e.IfcBuildingElementProxy=class extends El{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1095909175}};e.IfcBurner=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=635142910}};e.IfcCableCarrierSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3758799889}};e.IfcCableFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1051757585}};e.IfcCableSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4217484030}};e.IfcCaissonFoundation=class extends Tl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3999819293}};e.IfcChiller=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3902619387}};e.IfcCoil=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3221913625}};e.IfcCompressor=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3571504051}};e.IfcCondenser=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2272882330}};e.IfcControllerType=class extends bl{constructor(e,t,s,n,i,a,r,l,o,c,u){super(e,t,s,n,i,a,r,l,o,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ApplicableOccurrence=a,this.HasPropertySets=r,this.RepresentationMaps=l,this.Tag=o,this.ElementType=c,this.PredefinedType=u,this.type=578613899}};e.IfcConveyorSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3460952963}};e.IfcCooledBeam=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4136498852}};e.IfcCoolingTower=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3640358203}};e.IfcDamper=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4074379575}};e.IfcDistributionBoard=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3693000487}};e.IfcDistributionChamberElement=class extends Pl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1052013943}};e.IfcDistributionCircuit=class extends Rl{constructor(e,t,s,n,i,a,r,l){super(e,t,s,n,i,a,r,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.LongName=r,this.PredefinedType=l,this.type=562808652}};class Gl extends Dl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1062813311}}e.IfcDistributionControlElement=Gl;e.IfcDuctFitting=class extends Ol{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=342316401}};e.IfcDuctSegment=class extends Nl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3518393246}};e.IfcDuctSilencer=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1360408905}};e.IfcElectricAppliance=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends xl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3310460725}};e.IfcElectricFlowTreatmentDevice=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=24726584}};e.IfcElectricGenerator=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=264262732}};e.IfcElectricMotor=class extends _l{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=402227799}};e.IfcElectricTimeControl=class extends Bl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1003880860}};e.IfcFan=class extends Sl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3415622556}};e.IfcFilter=class extends Ml{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Ll{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=1426591983}};e.IfcFlowInstrument=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=182646315}};e.IfcGeomodel=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=2680139844}};e.IfcGeoslice=class extends Fl{constructor(e,t,s,n,i,a,r,l,o){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.type=1971632696}};e.IfcProtectiveDeviceTrippingUnit=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=2295281155}};e.IfcSensor=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4086658281}};e.IfcUnitaryControlElement=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=630975310}};e.IfcActuator=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=4288193352}};e.IfcAlarm=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=3087945054}};e.IfcController=class extends Gl{constructor(e,t,s,n,i,a,r,l,o,c){super(e,t,s,n,i,a,r,l,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=n,this.Description=i,this.ObjectType=a,this.ObjectPlacement=r,this.Representation=l,this.Tag=o,this.PredefinedType=c,this.type=25142252}}}(hb||(hb={}));var nD,iD,aD={aggregates:{name:160246688,relating:"RelatingObject",related:"RelatedObjects",key:"children"},spatial:{name:3242617779,relating:"RelatingStructure",related:"RelatedElements",key:"children"},psets:{name:4186316022,relating:"RelatingPropertyDefinition",related:"RelatedObjects",key:"IsDefinedBy"},materials:{name:2655215786,relating:"RelatingMaterial",related:"RelatedObjects",key:"HasAssociations"},type:{name:781010003,relating:"RelatingType",related:"RelatedObjects",key:"IsDefinedBy"}},rD=class{constructor(e){this.api=e}getItemProperties(e,t,s=!1,n=!1){return gb(this,null,(function*(){return this.api.GetLine(e,t,s,n)}))}getPropertySets(e,t=0,s=!1){return gb(this,null,(function*(){return yield this.getRelatedProperties(e,t,aD.psets,s)}))}setPropertySets(e,t,s){return gb(this,null,(function*(){return this.setItemProperties(e,t,s,aD.psets)}))}getTypeProperties(e,t=0,s=!1){return gb(this,null,(function*(){return"IFC2X3"==this.api.GetModelSchema(e)?yield this.getRelatedProperties(e,t,aD.type,s):yield this.getRelatedProperties(e,t,((e,t)=>Ab(e,db(t)))(vb({},aD.type),{key:"IsTypedBy"}),s)}))}getMaterialsProperties(e,t=0,s=!1){return gb(this,null,(function*(){return yield this.getRelatedProperties(e,t,aD.materials,s)}))}setMaterialsProperties(e,t,s){return gb(this,null,(function*(){return this.setItemProperties(e,t,s,aD.materials)}))}getSpatialStructure(e,t=!1){return gb(this,null,(function*(){const s=yield this.getSpatialTreeChunks(e),n=(yield this.api.GetLineIDsWithType(e,103090709)).get(0),i=rD.newIfcProject(n);return yield this.getSpatialNode(e,i,s,t),i}))}getRelatedProperties(e,t,s,n=!1){return gb(this,null,(function*(){const i=[];let a=null;if(0!==t)a=yield this.api.GetLine(e,t,!1,!0)[s.key];else{let t=this.api.GetLineIDsWithType(e,s.name);a=[];for(let e=0;ee.value));null==e[n]?e[n]=i:e[n]=e[n].concat(i)}setItemProperties(e,t,s,n){return gb(this,null,(function*(){Array.isArray(t)||(t=[t]),Array.isArray(s)||(s=[s]);let i=0;const a=[],r=[];for(const s of t){const t=yield this.api.GetLine(e,s,!1,!0);t[n.key]&&r.push(t)}if(r.length<1)return!1;const l=this.api.GetLineIDsWithType(e,n.name);for(let t=0;te.value===s.expressID))||t[n.key].push({type:5,value:s.expressID}),s[n.related].some((e=>e.value===t.expressID))||(s[n.related].push({type:5,value:t.expressID}),this.api.WriteLine(e,s));this.api.WriteLine(e,t)}return!0}))}};(iD=nD||(nD={}))[iD.LOG_LEVEL_DEBUG=0]="LOG_LEVEL_DEBUG",iD[iD.LOG_LEVEL_INFO=1]="LOG_LEVEL_INFO",iD[iD.LOG_LEVEL_WARN=2]="LOG_LEVEL_WARN",iD[iD.LOG_LEVEL_ERROR=3]="LOG_LEVEL_ERROR",iD[iD.LOG_LEVEL_OFF=4]="LOG_LEVEL_OFF";var lD,oD=class{static setLogLevel(e){this.logLevel=e}static log(e,...t){this.logLevel<=3&&console.log(e,...t)}static debug(e,...t){this.logLevel<=0&&console.trace("DEBUG: ",e,...t)}static info(e,...t){this.logLevel<=1&&console.info("INFO: ",e,...t)}static warn(e,...t){this.logLevel<=2&&console.warn("WARN: ",e,...t)}static error(e,...t){this.logLevel<=3&&console.error("ERROR: ",e,...t)}};if(oD.logLevel=1,"undefined"!=typeof self&&self.crossOriginIsolated)try{lD=Eb()}catch(e){lD=Tb()}else lD=Tb();class cD{constructor(){}getIFC(e,t,s){var n=()=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{let t=0,s=0,n=0;const i=new DataView(e),a=new Uint8Array(6e3),r=({item:n,format:a,size:r})=>{let l,o;switch(a){case"char":return o=new Uint8Array(e,t,r),t+=r,l=ID(o),[n,l];case"uShort":return l=i.getUint16(t,!0),t+=r,[n,l];case"uLong":return l=i.getUint32(t,!0),"NumberOfVariableLengthRecords"===n&&(s=l),t+=r,[n,l];case"uChar":return l=i.getUint8(t),t+=r,[n,l];case"double":return l=i.getFloat64(t,!0),t+=r,[n,l];default:t+=r}};return(()=>{const e={};pD.forEach((t=>{const s=r({...t});if(void 0!==s){if("FileSignature"===s[0]&&"LASF"!==s[1])throw new Error("Ivalid FileSignature. Is this a LAS/LAZ file");e[s[0]]=s[1]}}));const i=[];let l=s;for(;l--;){const e={};AD.forEach((s=>{const i=r({...s});e[i[0]]=i[1],"UserId"===i[0]&&"LASF_Projection"===i[1]&&(n=t-18+54)})),i.push(e)}const o=(e=>{if(void 0===e)return;const t=n+e.RecordLengthAfterHeader,s=a.slice(n,t),i=fD(s),r=new DataView(i);let l=6,o=Number(r.getUint16(l,!0));const c=[];for(;o--;){const e={};e.key=r.getUint16(l+=2,!0),e.tiffTagLocation=r.getUint16(l+=2,!0),e.count=r.getUint16(l+=2,!0),e.valueOffset=r.getUint16(l+=2,!0),c.push(e)}const u=c.find((e=>3072===e.key));if(u&&u.hasOwnProperty("valueOffset"))return u.valueOffset})(i.find((e=>"LASF_Projection"===e.UserId)));return o&&(e.epsg=o),e})()},fD=e=>{let t=new ArrayBuffer(e.length),s=new Uint8Array(t);for(let t=0;t{let t="";return e.forEach((e=>{let s=String.fromCharCode(e);"\0"!==s&&(t+=s)})),t.trim()};function yD(e,t){if(t>=e.length)return e;let s=[];for(let n=0;n{t(e)}),(function(e){s(e)}))}}function vD(e,t,s){s=s||2;var n,i,a,r,l,o,c,u=t&&t.length,h=u?t[0]*s:e.length,p=wD(e,0,h,s,!0),A=[];if(!p||p.next===p.prev)return A;if(u&&(p=function(e,t,s,n){var i,a,r,l=[];for(i=0,a=t.length;i80*s){n=a=e[0],i=r=e[1];for(var d=s;da&&(a=l),o>r&&(r=o);c=0!==(c=Math.max(a-n,r-i))?1/c:0}return ED(p,A,s,n,i,c),A}function wD(e,t,s,n,i){var a,r;if(i===QD(e,t,s,n)>0)for(a=t;a=t;a-=n)r=jD(a,e[a],e[a+1],r);return r&&LD(r,r.next)&&(VD(r),r=r.next),r}function gD(e,t){if(!e)return e;t||(t=e);var s,n=e;do{if(s=!1,n.steiner||!LD(n,n.next)&&0!==xD(n.prev,n,n.next))n=n.next;else{if(VD(n),(n=t=n.prev)===n.next)break;s=!0}}while(s||n!==t);return t}function ED(e,t,s,n,i,a,r){if(e){!r&&a&&function(e,t,s,n){var i=e;do{null===i.z&&(i.z=BD(i.x,i.y,t,s,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,s,n,i,a,r,l,o,c=1;do{for(s=e,e=null,a=null,r=0;s;){for(r++,n=s,l=0,t=0;t0||o>0&&n;)0!==l&&(0===o||!n||s.z<=n.z)?(i=s,s=s.nextZ,l--):(i=n,n=n.nextZ,o--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;s=n}a.nextZ=null,c*=2}while(r>1)}(i)}(e,n,i,a);for(var l,o,c=e;e.prev!==e.next;)if(l=e.prev,o=e.next,a?bD(e,n,i,a):TD(e))t.push(l.i/s),t.push(e.i/s),t.push(o.i/s),VD(e),e=o.next,c=o.next;else if((e=o)===c){r?1===r?ED(e=DD(gD(e),t,s),t,s,n,i,a,2):2===r&&PD(e,t,s,n,i,a):ED(gD(e),t,s,n,i,a,1);break}}}function TD(e){var t=e.prev,s=e,n=e.next;if(xD(t,s,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(SD(t.x,t.y,s.x,s.y,n.x,n.y,i.x,i.y)&&xD(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function bD(e,t,s,n){var i=e.prev,a=e,r=e.next;if(xD(i,a,r)>=0)return!1;for(var l=i.xa.x?i.x>r.x?i.x:r.x:a.x>r.x?a.x:r.x,u=i.y>a.y?i.y>r.y?i.y:r.y:a.y>r.y?a.y:r.y,h=BD(l,o,t,s,n),p=BD(c,u,t,s,n),A=e.prevZ,d=e.nextZ;A&&A.z>=h&&d&&d.z<=p;){if(A!==e.prev&&A!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,A.x,A.y)&&xD(A.prev,A,A.next)>=0)return!1;if(A=A.prevZ,d!==e.prev&&d!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,d.x,d.y)&&xD(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;A&&A.z>=h;){if(A!==e.prev&&A!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,A.x,A.y)&&xD(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;d&&d.z<=p;){if(d!==e.prev&&d!==e.next&&SD(i.x,i.y,a.x,a.y,r.x,r.y,d.x,d.y)&&xD(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function DD(e,t,s){var n=e;do{var i=n.prev,a=n.next.next;!LD(i,a)&&MD(i,n,n.next,a)&&UD(i,a)&&UD(a,i)&&(t.push(i.i/s),t.push(n.i/s),t.push(a.i/s),VD(n),VD(n.next),n=e=a),n=n.next}while(n!==e);return gD(n)}function PD(e,t,s,n,i,a){var r=e;do{for(var l=r.next.next;l!==r.prev;){if(r.i!==l.i&&ND(r,l)){var o=GD(r,l);return r=gD(r,r.next),o=gD(o,o.next),ED(r,t,s,n,i,a),void ED(o,t,s,n,i,a)}l=l.next}r=r.next}while(r!==e)}function RD(e,t){return e.x-t.x}function CD(e,t){if(t=function(e,t){var s,n=t,i=e.x,a=e.y,r=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var l=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(l<=i&&l>r){if(r=l,l===i){if(a===n.y)return n;if(a===n.next.y)return n.next}s=n.x=n.x&&n.x>=u&&i!==n.x&&SD(as.x||n.x===s.x&&_D(s,n)))&&(s=n,p=o)),n=n.next}while(n!==c);return s}(e,t),t){var s=GD(t,e);gD(t,t.next),gD(s,s.next)}}function _D(e,t){return xD(e.prev,e,t.prev)<0&&xD(t.next,e,e.next)<0}function BD(e,t,s,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-s)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function OD(e){var t=e,s=e;do{(t.x=0&&(e-r)*(n-l)-(s-r)*(t-l)>=0&&(s-r)*(a-l)-(i-r)*(n-l)>=0}function ND(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var s=e;do{if(s.i!==e.i&&s.next.i!==e.i&&s.i!==t.i&&s.next.i!==t.i&&MD(s,s.next,e,t))return!0;s=s.next}while(s!==e);return!1}(e,t)&&(UD(e,t)&&UD(t,e)&&function(e,t){var s=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{s.y>a!=s.next.y>a&&s.next.y!==s.y&&i<(s.next.x-s.x)*(a-s.y)/(s.next.y-s.y)+s.x&&(n=!n),s=s.next}while(s!==e);return n}(e,t)&&(xD(e.prev,e,t.prev)||xD(e,t.prev,t))||LD(e,t)&&xD(e.prev,e,e.next)>0&&xD(t.prev,t,t.next)>0)}function xD(e,t,s){return(t.y-e.y)*(s.x-t.x)-(t.x-e.x)*(s.y-t.y)}function LD(e,t){return e.x===t.x&&e.y===t.y}function MD(e,t,s,n){var i=HD(xD(e,t,s)),a=HD(xD(e,t,n)),r=HD(xD(s,n,e)),l=HD(xD(s,n,t));return i!==a&&r!==l||(!(0!==i||!FD(e,s,t))||(!(0!==a||!FD(e,n,t))||(!(0!==r||!FD(s,e,n))||!(0!==l||!FD(s,t,n)))))}function FD(e,t,s){return t.x<=Math.max(e.x,s.x)&&t.x>=Math.min(e.x,s.x)&&t.y<=Math.max(e.y,s.y)&&t.y>=Math.min(e.y,s.y)}function HD(e){return e>0?1:e<0?-1:0}function UD(e,t){return xD(e.prev,e,e.next)<0?xD(e,t,e.next)>=0&&xD(e,e.prev,t)>=0:xD(e,t,e.prev)<0||xD(e,e.next,t)<0}function GD(e,t){var s=new kD(e.i,e.x,e.y),n=new kD(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,s.next=i,i.prev=s,n.next=s,s.prev=n,a.next=n,n.prev=a,n}function jD(e,t,s,n){var i=new kD(e,t,s);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function VD(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function kD(e,t,s){this.i=e,this.x=t,this.y=s,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function QD(e,t,s,n){for(var i=0,a=t,r=s-n;a0&&(n+=e[i-1].length,s.holes.push(n))}return s};const WD=h.vec2(),zD=h.vec3(),KD=h.vec3(),YD=h.vec3();exports.AlphaFormat=1021,exports.AmbientLight=gt,exports.AngleMeasurementsControl=he,exports.AngleMeasurementsMouseControl=pe,exports.AngleMeasurementsPlugin=class extends H{constructor(e,t={}){super("AngleMeasurements",e),this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,angleMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get control(){return this._defaultControl||(this._defaultControl=new pe(this,{})),this._defaultControl}get measurements(){return this._measurements}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.corner,n=e.target,i=new ue(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:s.entity,worldPos:s.worldPos},target:{entity:n.entity,worldPos:n.worldPos},visible:e.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(()=>{delete this._measurements[i.id]})),i.clickable=!0,this.fire("measurementCreated",i),i}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t",this._markerHTML=t.markerHTML||"
",this._container=t.container||document.body,this._values=t.values||{},this.annotations={},this.surfaceOffset=t.surfaceOffset}getContainerElement(){return this._container}send(e,t){if("clearAnnotations"===e)this.clear()}set surfaceOffset(e){null==e&&(e=.3),this._surfaceOffset=e}get surfaceOffset(){return this._surfaceOffset}createAnnotation(e){var t,s;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){const n=e.pickResult;if(n.worldPos&&n.worldNormal){const e=h.normalizeVec3(n.worldNormal,de),i=h.mulVec3Scalar(e,this._surfaceOffset,fe);t=h.addVec3(n.worldPos,i,Ie),s=n.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,s=e.entity;var n=null;e.markerElementId&&((n=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var i=null;e.labelElementId&&((i=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));const a=new Ae(this.viewer.scene,{id:e.id,plugin:this,entity:s,worldPos:t,container:this._container,markerElement:n,labelElement:i,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:m.apply(e.values,m.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[a.id]=a,a.on("destroyed",(()=>{delete this.annotations[a.id],this.fire("annotationDestroyed",a.id)})),this.fire("annotationCreated",a.id),a}destroyAnnotation(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}clear(){const e=Object.keys(this.annotations);for(var t=0,s=e.length;td.has(e.id)||I.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let n,i=function(e){let t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0"),t}(s.colorize);s.xrayed?(n=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,n=Math.round(255*n).toString(16).padStart(2,"0"),i=n+i):d.has(s.id)&&(n=Math.round(255*s.opacity).toString(16).padStart(2,"0"),i=n+i),e[i]||(e[i]=[]);const a=s.id,r=s.originalSystemId,l={ifc_guid:r,originating_system:this.originatingSystem};return r!==a&&(l.authoring_tool_id=a),e[i].push(l),e}),{}),m=Object.entries(y).map((([e,t])=>({color:e,components:t})));a.components.coloring=m;const v=t.objectIds,w=t.visibleObjects,g=t.visibleObjectIds,E=v.filter((e=>!w[e])),T=t.selectedObjectIds;return e.defaultInvisible||g.length0&&e.clipping_planes.forEach((function(e){let t=Vo(e.location,Fo),s=Vo(e.direction,Fo);c&&h.negateVec3(s),h.subVec3(t,o),i.yUp&&(t=Qo(t),s=Qo(s)),new Ys(n,{pos:t,dir:s})})),n.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let i=0;e.lines.forEach((e=>{e.start_point&&e.end_point&&(t.push(e.start_point.x),t.push(e.start_point.y),t.push(e.start_point.z),t.push(e.end_point.x),t.push(e.end_point.y),t.push(e.end_point.z),s.push(i++),s.push(i++))})),new Mo(n,{positions:t,indices:s,clippable:!1,collidable:!0})}if(n.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let a=Vo(e.location,Ho),r=Vo(e.normal,Uo),l=Vo(e.up,Go),o=e.height||1;t&&s&&a&&r&&l&&(i.yUp&&(a=Qo(a),r=Qo(r),l=Qo(l)),new _n(n,{src:s,type:t,pos:a,normal:r,up:l,clippable:!1,collidable:!0,height:o}))})),l&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),n.setObjectsHighlighted(n.highlightedObjectIds,!1),n.setObjectsSelected(n.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(n.setObjectsVisible(n.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(n.setObjectsVisible(n.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const i=e.components.visibility.view_setup_hints;i&&(!1===i.spaces_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==i.spaces_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),i.space_boundaries_visible,!1===i.openings_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),i.space_boundaries_translucent,void 0!==i.openings_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(n.setObjectsSelected(n.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let s=e.color,n=0,i=!1;8===s.length&&(n=parseInt(s.substring(0,2),16)/256,n<=1&&n>=.95&&(n=1),s=s.substring(2),i=!0);const a=[parseInt(s.substring(0,2),16)/256,parseInt(s.substring(2,4),16)/256,parseInt(s.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=a,i&&(e.opacity=n)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let l,c,u,p;if(e.perspective_camera?(l=Vo(e.perspective_camera.camera_view_point,Fo),c=Vo(e.perspective_camera.camera_direction,Fo),u=Vo(e.perspective_camera.camera_up_vector,Fo),i.perspective.fov=e.perspective_camera.field_of_view,p="perspective"):(l=Vo(e.orthogonal_camera.camera_view_point,Fo),c=Vo(e.orthogonal_camera.camera_direction,Fo),u=Vo(e.orthogonal_camera.camera_up_vector,Fo),i.ortho.scale=e.orthogonal_camera.view_to_world_scale,p="ortho"),h.subVec3(l,o),i.yUp&&(l=Qo(l),c=Qo(c),u=Qo(u)),a){const e=n.pick({pickSurface:!0,origin:l,direction:c});c=e?e.worldPos:h.addVec3(l,c,Fo)}else c=h.addVec3(l,c,Fo);r?(i.eye=l,i.look=c,i.up=u,i.projection=p):s.cameraFlight.flyTo({eye:l,look:c,up:u,duration:t.duration,projection:p})}}_withBCFComponent(e,t,s){const n=this.viewer,i=n.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const a=t.authoring_tool_id,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}}if(t.ifc_guid){const a=t.ifc_guid,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}Object.keys(i.models).forEach((t=>{const r=h.globalizeObjectId(t,a),l=i.objects[r];if(l)s(l);else if(e.updateCompositeObjects){n.metaScene.metaObjects[r]&&i.withObjects(n.metaScene.getObjectIDsInSubtree(r),s)}}))}}destroy(){super.destroy()}},exports.Bitmap=_n,exports.ByteType=1010,exports.CameraMemento=mc,exports.CameraPath=class extends _{get type(){return"CameraPath"}constructor(e,t={}){super(e,t),this._frames=[],this._eyeCurve=new tc(this),this._lookCurve=new tc(this),this._upCurve=new tc(this),t.frames&&(this.addFrames(t.frames),this.smoothFrameTimes(1))}get frames(){return this._frames}get eyeCurve(){return this._eyeCurve}get lookCurve(){return this._lookCurve}get upCurve(){return this._upCurve}saveFrame(e){const t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}addFrame(e,t,s,n){const i={t:e,eye:t.slice(0),look:s.slice(0),up:n.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}addFrames(e){let t;for(let s=0,n=e.length;s1?1:e,t.eye=this._eyeCurve.getPoint(e,sc),t.look=this._lookCurve.getPoint(e,sc),t.up=this._upCurve.getPoint(e,sc)}sampleFrame(e,t,s,n){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,s),this._upCurve.getPoint(e,n)}smoothFrameTimes(e){if(0===this._frames.length)return;const t=h.vec3();var s=0;this._frames[0].t=0;const n=[];for(let e=1,a=this._frames.length;e{this._parseModel(e,t,s,n),i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){if(n.destroyed)return;const i=e.transform?this._transformVertices(e.vertices,e.transform,s.rotateX):e.vertices,a=t.stats||{};a.sourceFormat=e.type||"CityJSON",a.schemaVersion=e.version||"",a.title="",a.author="",a.created="",a.numMetaObjects=0,a.numPropertySets=0,a.numObjects=0,a.numGeometries=0,a.numTriangles=0,a.numVertices=0;const r=!1!==t.loadMetadata,l=r?{id:h.createUUID(),name:"Model",type:"Model"}:null,o=r?{id:"",projectId:"",author:"",createdAt:"",schema:e.version||"",creatingApplication:"",metaObjects:[l],propertySets:[]}:null,c={data:e,vertices:i,sceneModel:n,loadMetadata:r,metadata:o,rootMetaObject:l,nextId:0,stats:a};if(this._parseCityJSON(c),n.finalize(),r){const e=n.id;this.viewer.metaScene.createMetaModel(e,c.metadata,s)}n.scene.once("tick",(()=>{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))}))}_transformVertices(e,t,s){const n=[],i=t.scale||h.vec3([1,1,1]),a=t.translate||h.vec3([0,0,0]);for(let t=0,r=0;t0))return;const a=[];for(let s=0,n=t.geometry.length;s0){const i=t[n[0]];if(void 0!==i.value)r=e[i.value];else{const t=i.values;if(t){l=[];for(let n=0,i=t.length;n0&&(n.createEntity({id:s,meshIds:a,isObject:!0}),e.stats.numObjects++)}_parseGeometrySurfacesWithOwnMaterials(e,t,s,n){switch(t.type){case"MultiPoint":case"MultiLineString":break;case"MultiSurface":case"CompositeSurface":const i=t.boundaries;this._parseSurfacesWithOwnMaterials(e,s,i,n);break;case"Solid":const a=t.boundaries;for(let t=0;t0&&u.push(c.length);const s=this._extractLocalIndices(e,l[t],p,A);c.push(...s)}if(3===c.length)A.indices.push(c[0]),A.indices.push(c[1]),A.indices.push(c[2]);else if(c.length>3){const e=[];for(let t=0;t0&&r.indices.length>0){const t=""+e.nextId++;i.createMesh({id:t,primitive:"triangles",positions:r.positions,indices:r.indices,color:s&&s.diffuseColor?s.diffuseColor:[.8,.8,.8],opacity:1}),n.push(t),e.stats.numGeometries++,e.stats.numVertices+=r.positions.length/3,e.stats.numTriangles+=r.indices.length/3}}_parseSurfacesWithSharedMaterial(e,t,s,n){const i=e.vertices;for(let a=0;a0&&l.push(r.length);const o=this._extractLocalIndices(e,t[a][i],s,n);r.push(...o)}if(3===r.length)n.indices.push(r[0]),n.indices.push(r[1]),n.indices.push(r[2]);else if(r.length>3){let e=[];for(let t=0;t{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),e.items&&(this.items=e.items),this._hideOnAction=!1!==e.hideOnAction,this.context=e.context,this.enabled=!1!==e.enabled,this.hide()}on(e,t){let s=this._eventSubs[e];s||(s=[],this._eventSubs[e]=s),s.push(t)}fire(e,t){const s=this._eventSubs[e];if(s)for(let e=0,n=s.length;e{const a=this._getNextId(),r=new s(a);for(let s=0,a=e.length;s0,c=this._getNextId(),u=s.getTitle||(()=>s.title||""),h=s.doAction||s.callback||(()=>{}),p=s.getEnabled||(()=>!0),A=s.getShown||(()=>!0),d=new i(c,u,h,p,A);if(d.parentMenu=r,l.items.push(d),o){const e=t(n);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(r),this._menuMap[r.id]=r,r};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const s=t.groups;for(let t=0,n=s.length;t'),s.push("
    "),t)for(let e=0,n=t.length;e'+o+" [MORE]"):s.push('
  • '+o+"
  • ")}}s.push("
"),s.push("");const n=s.join("");document.body.insertAdjacentHTML("beforeend",n);const i=document.querySelector("."+e.id);e.menuElement=i,i.style["border-radius"]="4px",i.style.display="none",i.style["z-index"]=3e5,i.style.background="white",i.style.border="1px solid black",i.style["box-shadow"]="0 4px 5px 0 gray",i.oncontextmenu=e=>{e.preventDefault()};const a=this;let r=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(r&&(a._hideMenu(r.id),r=null));if(r&&r.id!==s.id&&(a._hideMenu(r.id),r=null),!1===t.enabled)return;const n=t.itemElement,i=s.menuElement,l=n.getBoundingClientRect();i.getBoundingClientRect();l.right+200>window.innerWidth?a._showMenu(s.id,l.left-200,l.top-1):a._showMenu(s.id,l.right-5,l.top-1),r=s})),n||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),a._context&&!1!==t.enabled&&(t.doAction&&t.doAction(a._context),this._hideOnAction?a.hide():(a._updateItemsTitles(),a._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(a._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(s=window.innerHeight-n),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}},exports.CubicBezierCurve=class extends ec{constructor(e,t={}){super(e,t),this.v0=t.v0,this.v1=t.v1,this.v2=t.v2,this.v3=t.v3,this.t=t.t}set v0(e){this._v0=e||h.vec3([0,0,0])}get v0(){return this._v0}set v1(e){this._v1=e||h.vec3([0,0,0])}get v1(){return this._v1}set v2(e){this._v2=e||h.vec3([0,0,0])}get v2(){return this._v2}set v3(e){this.fire("v3",this._v3=e||h.vec3([0,0,0]))}get v3(){return this._v3}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=h.vec3();return t[0]=h.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=h.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=h.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}},exports.Curve=ec,exports.DefaultLoadingManager=_r,exports.DepthFormat=1026,exports.DepthStencilFormat=1027,exports.DirLight=wt,exports.DistanceMeasurementsControl=Yo,exports.DistanceMeasurementsMouseControl=Xo,exports.DistanceMeasurementsPlugin=class extends H{constructor(e,t={}){super("DistanceMeasurements",e),this._pointerLens=t.pointerLens,this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.labelMinAxisLength=t.labelMinAxisLength,this.defaultVisible=!1!==t.defaultVisible,this.defaultOriginVisible=!1!==t.defaultOriginVisible,this.defaultTargetVisible=!1!==t.defaultTargetVisible,this.defaultWireVisible=!1!==t.defaultWireVisible,this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.defaultAxisVisible=!1!==t.defaultAxisVisible,this.defaultXAxisVisible=!1!==t.defaultXAxisVisible,this.defaultYAxisVisible=!1!==t.defaultYAxisVisible,this.defaultZAxisVisible=!1!==t.defaultZAxisVisible,this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,distanceMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get pointerLens(){return this._pointerLens}get control(){return this._defaultControl||(this._defaultControl=new Xo(this,{})),this._defaultControl}get measurements(){return this._measurements}set labelMinAxisLength(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}get labelMinAxisLength(){return this._labelMinAxisLength}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.target,n=new Ko(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:s.entity,worldPos:s.worldPos},visible:e.visible,wireVisible:e.wireVisible,axisVisible:!1!==e.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==e.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==e.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==e.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==e.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:e.originVisible,targetVisible:e.targetVisible,color:e.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[n.id]=n,n.on("destroyed",(()=>{delete this._measurements[n.id]})),this.fire("measurementCreated",n),n}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}setAxisVisible(e){for(const[t,s]of Object.entries(this.measurements))s.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;QE.set(this.viewer.scene.aabb),h.getAABB3Center(QE,WE),QE[0]+=t[0]-WE[0],QE[1]+=t[1]-WE[1],QE[2]+=t[2]-WE[2],QE[3]+=t[0]-WE[0],QE[4]+=t[1]-WE[1],QE[5]+=t[2]-WE[2],this.viewer.cameraFlight.flyTo({aabb:QE,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}null===t.controlElementId||void 0===t.controlElementId?this.error("Parameter expected: controlElementId"):(this._controlElement=document.getElementById(t.controlElementId),this._controlElement||this.warn("Can't find control element: '"+t.controlElementId+"' - will create plugin without control element")),this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setDragSensitivity(e){this._dragSensitivity=e||1}getDragSensitivity(){return this._dragSensitivity}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new Ys(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new jE(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(let e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){let t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(let t=0,s=e.length;t{s=1e3*this._delayBeforeRestoreSeconds,n||(e.scene._renderer.setColorTextureEnabled(!this._hideColorTexture),e.scene._renderer.setPBREnabled(!this._hidePBR),e.scene._renderer.setSAOEnabled(!this._hideSAO),e.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!this._hideEdges),this._scaleCanvasResolution?e.scene.canvas.resolutionScale=this._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,n=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",i),this._onCameraMatrix=e.scene.camera.on("matrix",i),this._onSceneTick=e.scene.on("tick",(t=>{n&&(s-=t.deltaTime,(!this._delayBeforeRestore||s<=0)&&(e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),n=!1))}));let a=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{a=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{a=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{a&&i()}))}get hideColorTexture(){return this._hideColorTexture}set hideColorTexture(e){this._hideColorTexture=e}get hidePBR(){return this._hidePBR}set hidePBR(e){this._hidePBR=e}get hideSAO(){return this._hideSAO}set hideSAO(e){this._hideSAO=e}get hideEdges(){return this._hideEdges}set hideEdges(e){this._hideEdges=e}get hideTransparentObjects(){return this._hideTransparentObjects}set hideTransparentObjects(e){this._hideTransparentObjects=!1!==e}get scaleCanvasResolution(){return this._scaleCanvasResolution}set scaleCanvasResolution(e){this._scaleCanvasResolution=e}get scaleCanvasResolutionFactor(){return this._scaleCanvasResolutionFactor}set scaleCanvasResolutionFactor(e){this._scaleCanvasResolutionFactor=e||.6}get delayBeforeRestore(){return this._delayBeforeRestore}set delayBeforeRestore(e){this._delayBeforeRestore=e}get delayBeforeRestoreSeconds(){return this._delayBeforeRestoreSeconds}set delayBeforeRestoreSeconds(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}send(e,t){}destroy(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),super.destroy()}},exports.FloatType=1015,exports.Fresnel=class extends _{get type(){return"Fresnel"}constructor(e,t={}){super(e,t),this._state=new Je({edgeColor:h.vec3([0,0,0]),centerColor:h.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),this.edgeColor=t.edgeColor,this.centerColor=t.centerColor,this.edgeBias=t.edgeBias,this.centerBias=t.centerBias,this.power=t.power}set edgeColor(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set centerColor(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}get centerColor(){return this._state.centerColor}set edgeBias(e){this._state.edgeBias=e||0,this.glRedraw()}get edgeBias(){return this._state.edgeBias}set centerBias(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}get centerBias(){return this._state.centerBias}set power(e){this._state.power=null!=e?e:1,this.glRedraw()}get power(){return this._state.power}destroy(){super.destroy(),this._state.destroy()}},exports.Frustum=x,exports.FrustumPlane=N,exports.GIFMediaType=1e4,exports.GLTFDefaultDataSource=qo,exports.GLTFLoaderPlugin=class extends H{constructor(e,t={}){super("GLTFLoader",e,t),this._sceneModelLoader=new aE(this,t),this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults}set dataSource(e){this._dataSource=e||new qo}get dataSource(){return this._dataSource}set objectDefaults(e){this._objectDefaults=e||IE}get objectDefaults(){return this._objectDefaults}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0,dtxEnabled:e.dtxEnabled})),s=t.id;if(!e.src&&!e.gltf)return this.error("load() param expected: src or gltf"),t;if(e.metaModelSrc||e.metaModelJSON){const n=e.objectDefaults||this._objectDefaults||IE,i=i=>{let a;if(this.viewer.metaScene.createMetaModel(s,i,{includeTypes:e.includeTypes,excludeTypes:e.excludeTypes}),this.viewer.scene.canvas.spinner.processes--,e.includeTypes){a={};for(let t=0,s=e.includeTypes.length;t{const i=t.name;if(!i)return!0;const a=i,r=this.viewer.metaScene.metaObjects[a],l=(r?r.type:"DEFAULT")||"DEFAULT";s.createEntity={id:a,isObject:!0};const o=n[l];return o&&(!1===o.visible&&(s.createEntity.visible=!1),o.colorize&&(s.createEntity.colorize=o.colorize),!1===o.pickable&&(s.createEntity.pickable=!1),void 0!==o.opacity&&null!==o.opacity&&(s.createEntity.opacity=o.opacity)),!0},e.src?this._sceneModelLoader.load(this,e.src,i,e,t):this._sceneModelLoader.parse(this,e.gltf,i,e,t)};if(e.metaModelSrc){const t=e.metaModelSrc;this.viewer.scene.canvas.spinner.processes++,this._dataSource.getMetaModel(t,(e=>{this.viewer.scene.canvas.spinner.processes--,i(e)}),(e=>{this.error(`load(): Failed to load model metadata for model '${s} from '${t}' - ${e}`),this.viewer.scene.canvas.spinner.processes--}))}else e.metaModelJSON&&i(e.metaModelJSON)}else e.handleGLTFNode=(e,t,s)=>{const n=t.name;if(!n)return!0;const i=n;return s.createEntity={id:i,isObject:!0},!0},e.src?this._sceneModelLoader.load(this,e.src,null,e,t):this._sceneModelLoader.parse(this,e.gltf,null,e,t);return t.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(s)})),t}destroy(){super.destroy()}},exports.HalfFloatType=1016,exports.ImagePlane=class extends _{constructor(e,t={}){super(e,t),this._src=null,this._image=null,this._pos=h.vec3(),this._origin=h.vec3(),this._rtcPos=h.vec3(),this._dir=h.vec3(),this._size=1,this._imageSize=h.vec2(),this._texture=new gn(this),this._plane=new Vs(this,{geometry:new Nt(this,Rn({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0}),clippable:t.clippable}),this._grid=new Vs(this,{geometry:new Nt(this,Pn({size:1,divisions:10})),material:new Ht(this,{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:t.clippable}),this._node=new an(this,{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[this._plane,this._grid]}),this._gridVisible=!1,this.visible=!0,this.gridVisible=t.gridVisible,this.position=t.position,this.rotation=t.rotation,this.dir=t.dir,this.size=t.size,this.collidable=t.collidable,this.clippable=t.clippable,this.pickable=t.pickable,this.opacity=t.opacity,t.image?this.image=t.image:this.src=t.src}set visible(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}get visible(){return this._plane.visible}set gridVisible(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}get gridVisible(){return this._gridVisible}set image(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}get image(){return this._image}set src(e){if(this._src=e,this._src){this._image=null;const e=new Image;e.onload=()=>{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set position(e){this._pos.set(e||[0,0,0]),j(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}get position(){return this._pos}set rotation(e){this._node.rotation=e}get rotation(){return this._node.rotation}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set dir(e){if(this._dir.set(e||[0,0,-1]),e){const t=this.scene.center,s=[-this._dir[0],-this._dir[1],-this._dir[2]];h.subVec3(t,this.position,uc);const n=-h.dotVec3(s,uc);h.normalizeVec3(s),h.mulVec3Scalar(s,n,hc),h.vec3PairToQuaternion(pc,e,Ac),this._node.quaternion=Ac}}get dir(){return this._dir}set collidable(e){this._node.collidable=!1!==e}get collidable(){return this._node.collidable}set clippable(e){this._node.clippable=!1!==e}get clippable(){return this._node.clippable}set pickable(e){this._node.pickable=!1!==e}get pickable(){return this._node.pickable}set opacity(e){this._node.opacity=e}get opacity(){return this._node.opacity}destroy(){super.destroy()}_updatePlaneSizeFromImage(){const e=this._size,t=this._imageSize[0],s=this._imageSize[1];if(t>s){const n=s/t;this._node.scale=[e,1,e*n]}else{const n=t/s;this._node.scale=[e*n,1,e]}}},exports.IntType=1013,exports.JPEGMediaType=10001,exports.KTX2TextureTranscoder=Lr,exports.LASLoaderPlugin=class extends H{constructor(e,t={}){super("lasLoader",e,t),this.dataSource=t.dataSource,this.skip=t.skip,this.fp64=t.fp64,this.colorDepth=t.colorDepth}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new uD}get skip(){return this._skip}set skip(e){this._skip=e||1}get fp64(){return this._fp64}set fp64(e){this._fp64=!!e}get colorDepth(){return this._colorDepth}set colorDepth(e){this._colorDepth=e||"auto"}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0}));if(!e.src&&!e.las)return this.error("load() param expected: src or las"),t;const s={las:{skip:this._skip,fp64:this._fp64,colorDepth:this._colorDepth}};if(e.src)this._loadModel(e.src,e,s,t);else{const n=this.viewer.scene.canvas.spinner;n.processes++,this._parseModel(e.las,e,s,t).then((()=>{n.processes--}),(e=>{n.processes--,this.error(e),t.fire("error",e)}))}return t}_loadModel(e,t,s,n){const i=this.viewer.scene.canvas.spinner;i.processes++,this._dataSource.getLAS(t.src,(e=>{this._parseModel(e,t,s,n).then((()=>{i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){function i(e){const s=e.value;if(t.rotateX&&s)for(let e=0,t=s.length;e{if(n.destroyed)return void o();const c=t.stats||{};c.sourceFormat="LAS",c.schemaVersion="",c.title="",c.author="",c.created="",c.numMetaObjects=0,c.numPropertySets=0,c.numObjects=0,c.numGeometries=0,c.numTriangles=0,c.numVertices=0;try{const c=dD(e);Tv(e,hD,s).then((e=>{const u=e.attributes,p=e.loaderData,A=void 0!==p.pointsFormatId?p.pointsFormatId:-1;if(!u.POSITION)return n.finalize(),void o("No positions found in file");let d,f;switch(A){case 0:d=i(u.POSITION),f=r(u.intensity);break;case 1:if(!u.intensity)return n.finalize(),void o("No positions found in file");d=i(u.POSITION),f=r(u.intensity);break;case 2:case 3:if(!u.intensity)return n.finalize(),void o("No positions found in file");d=i(u.POSITION),f=a(u.COLOR_0,u.intensity)}const I=yD(d,15e5),y=yD(f,2e6),m=[];for(let e=0,t=I.length;e{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))})),l()}))}catch(e){n.finalize(),o(e)}}))}},exports.LambertMaterial=rn,exports.LightMap=class extends yc{get type(){return"LightMap"}constructor(e,t={}){super(e,t),this.scene._lightMapCreated(this)}destroy(){super.destroy(),this.scene._lightMapDestroyed(this)}},exports.LineSet=Mo,exports.LinearEncoding=3e3,exports.LinearFilter=1006,exports.LinearMipMapLinearFilter=1008,exports.LinearMipMapNearestFilter=1007,exports.LinearMipmapLinearFilter=1008,exports.LinearMipmapNearestFilter=1007,exports.Loader=Br,exports.LoadingManager=Cr,exports.LocaleService=Jo,exports.LuminanceAlphaFormat=1025,exports.LuminanceFormat=1024,exports.Map=e,exports.Marker=ie,exports.MarqueePicker=F,exports.MarqueePickerMouseControl=class extends _{constructor(e){super(e.marqueePicker,e);const t=e.marqueePicker,s=t.viewer.scene.canvas.canvas;let n,i,a,r,l,o,c,u=!1,h=!1,p=!1;s.addEventListener("mousedown",(e=>{this.getActive()&&0===e.button&&(c=setTimeout((function(){const a=t.viewer.scene.input;a.keyDown[a.KEY_CTRL]||t.clear(),n=e.pageX,i=e.pageY,l=e.offsetX,t.setMarqueeCorner1([n,i]),u=!0,t.viewer.cameraControl.pointerEnabled=!1,t.setMarqueeVisible(!0),s.style.cursor="crosshair"}),400),h=!0)})),s.addEventListener("mouseup",(e=>{if(!this.getActive())return;if(!u&&!p)return;if(0!==e.button)return;clearTimeout(c),a=e.pageX,r=e.pageY;const s=Math.abs(a-n),l=Math.abs(r-i);u=!1,t.viewer.cameraControl.pointerEnabled=!0,p&&(p=!1),(s>3||l>3)&&t.pick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&0===e.button&&(clearTimeout(c),u&&(t.setMarqueeVisible(!1),u=!1,h=!1,p=!0,t.viewer.cameraControl.pointerEnabled=!0))}),!0),s.addEventListener("mousemove",(e=>{this.getActive()&&0===e.button&&h&&(clearTimeout(c),u&&(a=e.pageX,r=e.pageY,o=e.offsetX,t.setMarqueeVisible(!0),t.setMarqueeCorner2([a,r]),t.setPickMode(l{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var a=-1;function r(e){var t=[0,0];if(e){for(var s=e.target,n=0,i=0;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var l,o,c=null,u=null,p=!1,A=!1,d=.5;n._navCubeCanvas.addEventListener("mouseenter",n._onMouseEnter=function(e){A=!0}),n._navCubeCanvas.addEventListener("mouseleave",n._onMouseLeave=function(e){A=!1}),n._navCubeCanvas.addEventListener("mousedown",n._onMouseDown=function(e){if(1===e.which){c=e.x,u=e.y,l=e.clientX,o=e.clientY;var t=r(e),n=s.pick({canvasPos:t});p=!!n}}),document.addEventListener("mouseup",n._onMouseUp=function(e){if(1===e.which&&(p=!1,null!==c)){var t=r(e),l=s.pick({canvasPos:t,pickSurface:!0});if(l&&l.uv){var o=n._cubeTextureCanvas.getArea(l.uv);if(o>=0&&(document.body.style.cursor="pointer",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),o>=0)){if(n._cubeTextureCanvas.setAreaHighlighted(o,!0),a=o,n._repaint(),e.xc+3||e.yu+3)return;var h=n._cubeTextureCanvas.getAreaDir(o);if(h){var A=n._cubeTextureCanvas.getAreaUp(o);n._isProjectNorth&&n._projectNorthOffsetAngle&&(h=i(1,h,mE),A=i(1,A,vE)),f(h,A,(function(){a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),document.body.style.cursor="pointer",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),o>=0&&(n._cubeTextureCanvas.setAreaHighlighted(o,!1),a=-1,n._repaint())}))}}}}}),document.addEventListener("mousemove",n._onMouseMove=function(t){if(a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1),1!==t.buttons||p){if(p){var i=t.clientX,c=t.clientY;return document.body.style.cursor="move",void function(t,s){var n=(t-l)*-d,i=(s-o)*-d;e.camera.orbitYaw(n),e.camera.orbitPitch(-i),l=t,o=s}(i,c)}if(A){var u=r(t),h=s.pick({canvasPos:u,pickSurface:!0});if(h){if(h.uv){document.body.style.cursor="pointer";var f=n._cubeTextureCanvas.getArea(h.uv);if(f===a)return;a>=0&&n._cubeTextureCanvas.setAreaHighlighted(a,!1),f>=0&&(n._cubeTextureCanvas.setAreaHighlighted(f,!0),n._repaint(),a=f)}}else document.body.style.cursor="default",a>=0&&(n._cubeTextureCanvas.setAreaHighlighted(a,!1),n._repaint(),a=-1)}}});var f=function(){var t=h.vec3();return function(s,i,a){var r=n._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,l=h.getAABB3Diag(r);h.getAABB3Center(r,t);var o=Math.abs(l/Math.tan(n._cameraFitFOV*h.DEGTORAD));e.cameraControl.pivotPos=t,n._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-o*s[0],t[1]-o*s[1],t[2]-o*s[2]],up:i||[0,1,0],orthoScale:1.1*l,fitFOV:n._cameraFitFOV,duration:n._cameraFlyDuration},a):e.cameraFlight.jumpTo({look:t,eye:[t[0]-o*s[0],t[1]-o*s[1],t[2]-o*s[2]],up:i||[0,1,0],orthoScale:1.1*l,fitFOV:n._cameraFitFOV},a)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}},exports.NearestFilter=1003,exports.NearestMipMapLinearFilter=1005,exports.NearestMipMapNearestFilter=1004,exports.NearestMipmapLinearFilter=1005,exports.NearestMipmapNearestFilter=1004,exports.Node=an,exports.OBJLoaderPlugin=class extends H{constructor(e,t){super("OBJLoader",e,t),this._sceneGraphLoader=new gE}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);var t=new an(this.viewer.scene,m.apply(e,{isModel:!0}));const s=t.id,n=e.src;if(!n)return this.error("load() param expected: src"),t;if(e.metaModelSrc){const i=e.metaModelSrc;m.loadJSON(i,(i=>{this.viewer.metaScene.createMetaModel(s,i),this._sceneGraphLoader.load(t,n,e)}),(e=>{this.error(`load(): Failed to load model modelMetadata for model '${s} from '${i}' - ${e}`)}))}else this._sceneGraphLoader.load(t,n,e);return t.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(s)})),t}destroy(){super.destroy()}},exports.ObjectsKdTree3=class{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const s=e.objects[t];this._insertEntity(this._root,s,1)}this._needsRebuild=!1}_insertEntity(e,t,s){const n=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&h.containsAABB3(e.left.aabb,n))return void this._insertEntity(e.left,t,s+1);if(e.right&&h.containsAABB3(e.right.aabb,n))return void this._insertEntity(e.right,t,s+1);const i=e.aabb;p[0]=i[3]-i[0],p[1]=i[4]-i[1],p[2]=i[5]-i[2];let a=0;if(p[1]>p[a]&&(a=1),p[2]>p[a]&&(a=2),!e.left){const r=i.slice();if(r[a+3]=(i[a]+i[a+3])/2,e.left={aabb:r},h.containsAABB3(r,n))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const r=i.slice();if(r[a]=(i[a]+i[a+3])/2,e.right={aabb:r},h.containsAABB3(r,n))return void this._insertEntity(e.right,t,s+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}},exports.ObjectsMemento=gc,exports.PNGMediaType=10002,exports.Path=class extends ec{constructor(e,t={}){super(e,t),this._cachedLengths=[],this._dirty=!0,this._curves=[],this._t=0,this._dirtySubs=[],this._destroyedSubs=[],this.curves=t.curves||[],this.t=t.t}addCurve(e){this._curves.push(e),this._dirty=!0}set curves(e){var t,s,n;for(e=e||[],s=0,n=this._curves.length;s1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}get length(){var e=this._getCurveLengths();return e[e.length-1]}getPoint(e){for(var t,s=e*this.length,n=this._getCurveLengths(),i=0;i=s){var a=1-(n[i]-s)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}_getCurveLengths(){if(!this._dirty)return this._cachedLengths;var e,t=[],s=0,n=this._curves.length;for(e=0;e{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=n.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Je({type:"point",pos:h.vec3([1,1,1]),color:h.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(s._shadowViewMatrixDirty){s._shadowViewMatrix||(s._shadowViewMatrix=h.identityMat4());const e=s._state.pos,t=n.look,i=n.up;h.lookAtMat4v(e,t,i,s._shadowViewMatrix),s._shadowViewMatrixDirty=!1}return s._shadowViewMatrix},getShadowProjMatrix:()=>{if(s._shadowProjMatrixDirty){s._shadowProjMatrix||(s._shadowProjMatrix=h.identityMat4());const e=s.scene.canvas.canvas;h.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,s._shadowProjMatrix),s._shadowProjMatrixDirty=!1}return s._shadowProjMatrix},getShadowRenderBuf:()=>(s._shadowRenderBuf||(s._shadowRenderBuf=new We(s.scene.canvas.canvas,s.scene.canvas.gl,{size:[1024,1024]})),s._shadowRenderBuf)}),this.pos=t.pos,this.color=t.color,this.intensity=t.intensity,this.constantAttenuation=t.constantAttenuation,this.linearAttenuation=t.linearAttenuation,this.quadraticAttenuation=t.quadraticAttenuation,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set pos(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get pos(){return this._state.pos}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set constantAttenuation(e){this._state.attenuation[0]=e||0,this.glRedraw()}get constantAttenuation(){return this._state.attenuation[0]}set linearAttenuation(e){this._state.attenuation[1]=e||0,this.glRedraw()}get linearAttenuation(){return this._state.attenuation[1]}set quadraticAttenuation(e){this._state.attenuation[2]=e||0,this.glRedraw()}get quadraticAttenuation(){return this._state.attenuation[2]}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}},exports.PointerLens=class{constructor(e,t={}){this.viewer=e,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=t.zoomLevel||2,this._active=!1!==t.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(()=>{this._active&&this._visible&&this.update()}))}update(){if(!this._active||!this._visible)return;if(!this._canvasPos)return;const e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),s=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",s&&(this._lensPosToggle?this._lensContainer.style.marginTop=t.bottom-t.top-this._lensCanvas.height-85+"px":this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);const n=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-n/2,this._canvasPos[1]-n/2,n,n,0,0,this._lensCanvas.width,this._lensCanvas.height);const i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){const e=this._snappedCanvasPos[0]-this._canvasPos[0],t=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft=i[0]+e*this._zoomLevel-10+"px",this._lensCursorDiv.style.marginTop=i[1]+t*this._zoomLevel-10+"px"}else this._lensCursorDiv.style.marginLeft=i[0]-10+"px",this._lensCursorDiv.style.marginTop=i[1]-10+"px"}set zoomFactor(e){this._zoomFactor=e,this.update()}get zoomFactor(){return this._zoomFactor}set canvasPos(e){this._canvasPos=e,this.update()}get canvasPos(){return this._canvasPos}set snappedCanvasPos(e){this._snappedCanvasPos=e,this.update()}get snappedCanvasPos(){return this._snappedCanvasPos}set snapped(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}get snapped(){return this._snapped}set active(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get active(){return this._active}set visible(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get visible(){return this._visible}destroy(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}},exports.QuadraticBezierCurve=class extends ec{constructor(e,t={}){super(e,t),this.v0=t.v0,this.v1=t.v1,this.v2=t.v2,this.t=t.t}set v0(e){this._v0=e||h.vec3([0,0,0])}get v0(){return this._v0}set v1(e){this._v1=e||h.vec3([0,0,0])}get v1(){return this._v1}set v2(e){this._v2=e||h.vec3([0,0,0])}get v2(){return this._v2}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=h.vec3();return t[0]=h.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=h.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=h.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}},exports.Queue=A,exports.RGBAFormat=1023,exports.RGBAIntegerFormat=1033,exports.RGBA_ASTC_10x10_Format=37819,exports.RGBA_ASTC_10x5_Format=37816,exports.RGBA_ASTC_10x6_Format=37817,exports.RGBA_ASTC_10x8_Format=37818,exports.RGBA_ASTC_12x10_Format=37820,exports.RGBA_ASTC_12x12_Format=37821,exports.RGBA_ASTC_4x4_Format=37808,exports.RGBA_ASTC_5x4_Format=37809,exports.RGBA_ASTC_5x5_Format=37810,exports.RGBA_ASTC_6x5_Format=37811,exports.RGBA_ASTC_6x6_Format=37812,exports.RGBA_ASTC_8x5_Format=37813,exports.RGBA_ASTC_8x6_Format=37814,exports.RGBA_ASTC_8x8_Format=37815,exports.RGBA_BPTC_Format=36492,exports.RGBA_ETC2_EAC_Format=37496,exports.RGBA_PVRTC_2BPPV1_Format=35843,exports.RGBA_PVRTC_4BPPV1_Format=35842,exports.RGBA_S3TC_DXT1_Format=33777,exports.RGBA_S3TC_DXT3_Format=33778,exports.RGBA_S3TC_DXT5_Format=33779,exports.RGBFormat=1022,exports.RGB_ETC1_Format=36196,exports.RGB_ETC2_Format=37492,exports.RGB_PVRTC_2BPPV1_Format=35841,exports.RGB_PVRTC_4BPPV1_Format=35840,exports.RGB_S3TC_DXT1_Format=33776,exports.RGFormat=1030,exports.RGIntegerFormat=1031,exports.ReadableGeometry=Nt,exports.RedFormat=1028,exports.RedIntegerFormat=1029,exports.ReflectionMap=class extends yc{get type(){return"ReflectionMap"}constructor(e,t={}){super(e,t),this.scene._lightsState.addReflectionMap(this._state),this.scene._reflectionMapCreated(this)}destroy(){super.destroy(),this.scene._reflectionMapDestroyed(this)}},exports.RepeatWrapping=1e3,exports.STLDefaultDataSource=zE,exports.STLLoaderPlugin=class extends H{constructor(e,t={}){super("STLLoader",e,t),this._sceneGraphLoader=new YE,this.dataSource=t.dataSource}set dataSource(e){this._dataSource=e||new zE}get dataSource(){return this._dataSource}load(e){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new an(this.viewer.scene,m.apply(e,{isModel:!0})),s=e.src,n=e.stl;return s||n?(s?this._sceneGraphLoader.load(this,t,s,e):this._sceneGraphLoader.parse(this,t,n,e),t):(this.error("load() param expected: either 'src' or 'stl'"),t)}},exports.SceneModel=xo,exports.SceneModelMesh=Nn,exports.SceneModelTransform=Do,exports.SectionPlane=Ys,exports.SectionPlanesPlugin=class extends H{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new SE(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;NE.set(this.viewer.scene.aabb),h.getAABB3Center(NE,xE),NE[0]+=t[0]-xE[0],NE[1]+=t[1]-xE[1],NE[2]+=t[2]-xE[2],NE[3]+=t[0]-xE[0],NE[4]+=t[1]-xE[1],NE[5]+=t[2]-xE[2],this.viewer.cameraFlight.flyTo({aabb:NE,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new Ys(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new BE(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,s=e.length;t{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set collidable(e){this._mesh.collidable=!1!==e}get collidable(){return this._mesh.collidable}set clippable(e){this._mesh.clippable=!1!==e}get clippable(){return this._mesh.clippable}set pickable(e){this._mesh.pickable=!1!==e}get pickable(){return this._mesh.pickable}set opacity(e){this._mesh.opacity=e}get opacity(){return this._mesh.opacity}_updatePlaneSizeFromImage(){const e=.5*this._size,t=this._imageSize[0],s=this._imageSize[1],n=s/t;this._geometry.positions=t>s?[e,e*n,0,-e,e*n,0,-e,-e*n,0,e,-e*n,0]:[e/n,e,0,-e/n,e,0,-e/n,-e,0,e/n,-e,0]}},exports.StoreyViewsPlugin=class extends H{constructor(e,t={}){super("StoreyViews",e),this._objectsMemento=new gc,this._cameraMemento=new mc,this.storeys={},this.modelStoreys={},this._fitStoreyMaps=!!t.fitStoreyMaps,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._registerModelStoreys(e),this.fire("storeys",this.storeys)}))}_registerModelStoreys(e){const t=this.viewer,s=t.scene,n=t.metaScene,i=n.metaModels[e],a=s.models[e];if(!i||!i.rootMetaObjects)return;const r=i.rootMetaObjects;for(let t=0,i=r.length;t.5?l.length:0,u=new LE(this,a.aabb,o,e,r,c);u._onModelDestroyed=a.once("destroyed",(()=>{this._deregisterModelStoreys(e),this.fire("storeys",this.storeys)})),this.storeys[r]=u,this.modelStoreys[e]||(this.modelStoreys[e]={}),this.modelStoreys[e][r]=u}}}_deregisterModelStoreys(e){const t=this.modelStoreys[e];if(t){const s=this.viewer.scene;for(let e in t)if(t.hasOwnProperty(e)){const n=t[e],i=s.models[n.modelId];i&&i.off(n._onModelDestroyed),delete this.storeys[e]}delete this.modelStoreys[e]}}get fitStoreyMaps(){return this._fitStoreyMaps}gotoStoreyCamera(e,t={}){const s=this.storeys[e];if(!s)return this.error("IfcBuildingStorey not found with this ID: "+e),void(t.done&&t.done());const n=this.viewer,i=n.scene.camera,a=s.storeyAABB;if(a[3]{t.done()})):(n.cameraFlight.jumpTo(m.apply(t,{eye:u,look:r,up:p,orthoScale:c})),n.camera.ortho.scale=c)}showStoreyObjects(e,t={}){if(!this.storeys[e])return void this.error("IfcBuildingStorey not found with this ID: "+e);const s=this.viewer,n=s.scene;s.metaScene.metaObjects[e]&&(t.hideOthers&&n.setObjectsVisible(s.scene.visibleObjectIds,!1),this.withStoreyObjects(e,((e,t)=>{e&&(e.visible=!0)})))}withStoreyObjects(e,t){const s=this.viewer,n=s.scene,i=s.metaScene,a=i.metaObjects[e];if(!a)return;const r=a.getObjectIDsInSubtree();for(var l=0,o=r.length;lp[1]&&p[0]>p[2],d=!A&&p[1]>p[0]&&p[1]>p[2];!A&&!d&&p[2]>p[0]&&(p[2],p[1]);const f=e.width/c,I=d?e.height/h:e.height/u;return s[0]=Math.floor(e.width-(t[0]-r)*f),s[1]=Math.floor(e.height-(t[2]-o)*I),s[0]>=0&&s[0]=0&&s[1]<=e.height}worldDirToStoreyMap(e,t,s){const n=this.viewer.camera,i=n.eye,a=n.look,r=h.subVec3(a,i,FE),l=n.worldUp,o=l[0]>l[1]&&l[0]>l[2],c=!o&&l[1]>l[0]&&l[1]>l[2];!o&&!c&&l[2]>l[0]&&(l[2],l[1]),o?(s[0]=r[1],s[1]=r[2]):c?(s[0]=r[0],s[1]=r[2]):(s[0]=r[0],s[1]=r[1]),h.normalizeVec2(s)}destroy(){this.viewer.scene.off(this._onModelLoaded),super.destroy()}},exports.Texture=gn,exports.TextureTranscoder=class{transcode(e,t,s={}){}destroy(){}},exports.TreeViewPlugin=class extends H{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const s=t.containerElement||document.getElementById(t.containerElementId);if(s instanceof HTMLElement){for(let e=0;;e++)if(!tT[e]){tT[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=s,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._pruneEmptyNodes=!1!==t.pruneEmptyNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootName=t.rootName,this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,s=this._objectNodes[t];if(!s)return;const n=e.visible;if(!(n!==s.checked))return;this._muteTreeEvents=!0,s.checked=n,n?s.numVisibleEntities++:s.numVisibleEntities--;const i=document.getElementById(`checkbox-${s.nodeId}`);i&&(i.checked=n);let a=s.parent;for(;a;){a.checked=n,n?a.numVisibleEntities++:a.numVisibleEntities--;const e=document.getElementById(`checkbox-${a.nodeId}`);if(e){const t=a.numVisibleEntities>0;t!==e.checked&&(e.checked=t)}a=a.parent}this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,s=this._objectNodes[t];if(!s)return;this._muteTreeEvents=!0;const n=e.xrayed;if(!(n!==s.xrayed))return;s.xrayed=n;const i=s.nodeId,a=document.getElementById(i);null!==a&&(n?a.classList.add("xrayed-node"):a.classList.remove("xrayed-node")),this._muteTreeEvents=!1})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,s=t.checked,n=t.id.replace("checkbox-",""),i=this._nodeNodes[n],a=this._viewer.scene.objects;let r=0;this._withNodeTree(i,(e=>{const t=e.objectId,n=`checkbox-${e.nodeId}`,i=a[t],l=0===e.children.length;e.numVisibleEntities=s?e.numEntities:0,l&&s!==e.checked&&r++,e.checked=s;const o=document.getElementById(n);o&&(o.checked=s),i&&(i.visible=s)}));let l=i.parent;for(;l;){l.checked=s;const e=document.getElementById(`checkbox-${l.nodeId}`);s?l.numVisibleEntities+=r:l.numVisibleEntities-=r;const t=l.numVisibleEntities>0;t!==e.checked&&(e.checked=t),l=l.parent}this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,s=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const s=this.viewer.scene.models[e];if(!s)throw"Model not found: "+e;const n=this.viewer.metaScene.metaModels[e];n?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=n,s.on("destroyed",(()=>{this.removeModel(s.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(delete this._metaModels[e],this._createNodes())}showNode(e){this._showListItemElementId&&this.unShowNode();const t=this._objectNodes[e];if(!t)return;const s=t.nodeId,n="switch-"+s,i=document.getElementById(n);if(i)return this._expandSwitchElement(i),void i.scrollIntoView();const a=[];a.unshift(t);let r=t.parent;for(;r;)a.unshift(r),r=r.parent;for(let e=0,t=a.length;e{if(n===e)return;const i="switch-"+s.nodeId,a=document.getElementById(i);if(a){this._expandSwitchElement(a);const e=s.children;for(var r=0,l=e.length;r0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,s){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=document.createElement("ul");this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let s in t){const n=t[s],i=n.type,a=n.name,r=a&&""!==a&&"Undefined"!==a&&"Default"!==a?a:i,l=document.createElement("li");e.appendChild(l);const o=document.createElement("a");o.href="#",o.textContent="!",o.classList.add("warn"),o.classList.add("warning"),l.appendChild(o);const c=document.createElement("span");c.textContent=r,l.appendChild(c)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const s=this.viewer.scene,n=e.children,i=e.id,a=s.objects[i];if(e._countEntities=0,a&&e._countEntities++,n)for(let t=0,s=n.length;t{e.aabb&&i.aabb||(e.aabb||(e.aabb=t.getAABB(n.getObjectIDsInSubtree(e.objectId))),i.aabb||(i.aabb=t.getAABB(n.getObjectIDsInSubtree(i.objectId))));let a=0;return a=s.xUp?0:s.yUp?1:2,e.aabb[a]>i.aabb[a]?-1:e.aabb[a]n?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,s=this._viewer.scene.objects;for(let n=0,i=e.length;nthis._createNodeElement(e))),t=document.createElement("ul");e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){const t=document.createElement("li"),s=e.nodeId;if(e.xrayed&&t.classList.add("xrayed-node"),t.id=s,e.children.length>0){const e="switch-"+s,n=document.createElement("a");n.href="#",n.id=e,n.textContent="+",n.classList.add("plus"),n.addEventListener("click",this._switchExpandHandler),t.appendChild(n)}const n=document.createElement("input");n.id=`checkbox-${s}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",n.addEventListener("change",this._checkboxChangeHandler),t.appendChild(n);const i=document.createElement("span");return i.textContent=e.title,t.appendChild(i),i.oncontextmenu=t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()},i.onclick=t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()},t}_expandSwitchElement(e){const t=e.parentElement;if(t.getElementsByTagName("li")[0])return;const s=t.id,n=this._nodeNodes[s].children.map((e=>this._createNodeElement(e))),i=document.createElement("ul");n.forEach((e=>{i.appendChild(e)})),t.appendChild(i),e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",this._switchExpandHandler),e.addEventListener("click",this._switchCollapseHandler)}_collapseNode(e){const t="switch-"+e,s=document.getElementById(t);this._collapseSwitchElement(s)}_collapseSwitchElement(e){if(!e)return;const t=e.parentElement;if(!t)return;const s=t.querySelector("ul");s&&(t.removeChild(s),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",this._switchCollapseHandler),e.addEventListener("click",this._switchExpandHandler))}},exports.UnsignedByteType=1009,exports.UnsignedInt248Type=1020,exports.UnsignedIntType=1014,exports.UnsignedShort4444Type=1017,exports.UnsignedShort5551Type=1018,exports.UnsignedShortType=1012,exports.VBOGeometry=bn,exports.ViewCullPlugin=class extends H{constructor(e,t={}){super("ViewCull",e),this._objectCullStates=function(e){const t=e.id;let s=nT[t];return s||(s=new sT(e),nT[t]=s,e.on("destroyed",(()=>{delete nT[t],s._destroy()}))),s}(e.scene),this._maxTreeDepth=t.maxTreeDepth||8,this._modelInfos={},this._frustum=new x,this._kdRoot=null,this._frustumDirty=!1,this._kdTreeDirty=!1,this._onViewMatrix=e.scene.camera.on("viewMatrix",(()=>{this._frustumDirty=!0})),this._onProjMatrix=e.scene.camera.on("projMatMatrix",(()=>{this._frustumDirty=!0})),this._onModelLoaded=e.scene.on("modelLoaded",(e=>{const t=this.viewer.scene.models[e];t&&this._addModel(t)})),this._onSceneTick=e.scene.on("tick",(()=>{this._doCull()}))}set enabled(e){this._enabled=e}get enabled(){return this._enabled}_addModel(e){const t={model:e,onDestroyed:e.on("destroyed",(()=>{this._removeModel(e)}))};this._modelInfos[e.id]=t,this._kdTreeDirty=!0}_removeModel(e){const t=this._modelInfos[e.id];t&&(t.model.off(t.onDestroyed),delete this._modelInfos[e.id],this._kdTreeDirty=!0)}_doCull(){const e=this._frustumDirty||this._kdTreeDirty;if(this._frustumDirty&&this._buildFrustum(),this._kdTreeDirty&&this._buildKDTree(),e){const e=this._kdRoot;e&&this._visitKDNode(e)}}_buildFrustum(){const e=this.viewer.scene.camera;L(this._frustum,e.viewMatrix,e.projMatrix),this._frustumDirty=!1}_buildKDTree(){const e=this.viewer.scene;this._kdRoot,this._kdRoot={aabb:e.getAABB(),intersection:x.INTERSECT};for(let e=0,t=this._objectCullStates.numObjects;e=this._maxTreeDepth)return e.objects=e.objects||[],e.objects.push(s),void h.expandAABB3(e.aabb,i);if(e.left&&h.containsAABB3(e.left.aabb,i))return void this._insertEntityIntoKDTree(e.left,t,s,n+1);if(e.right&&h.containsAABB3(e.right.aabb,i))return void this._insertEntityIntoKDTree(e.right,t,s,n+1);const a=e.aabb;iT[0]=a[3]-a[0],iT[1]=a[4]-a[1],iT[2]=a[5]-a[2];let r=0;if(iT[1]>iT[r]&&(r=1),iT[2]>iT[r]&&(r=2),!e.left){const l=a.slice();if(l[r+3]=(a[r]+a[r+3])/2,e.left={aabb:l,intersection:x.INTERSECT},h.containsAABB3(l,i))return void this._insertEntityIntoKDTree(e.left,t,s,n+1)}if(!e.right){const l=a.slice();if(l[r]=(a[r]+a[r+3])/2,e.right={aabb:l,intersection:x.INTERSECT},h.containsAABB3(l,i))return void this._insertEntityIntoKDTree(e.right,t,s,n+1)}e.objects=e.objects||[],e.objects.push(s),h.expandAABB3(e.aabb,i)}_visitKDNode(e,t=x.INTERSECT){if(t!==x.INTERSECT&&e.intersects===t)return;t===x.INTERSECT&&(t=M(this._frustum,e.aabb),e.intersects=t);const s=t===x.OUTSIDE,n=e.objects;if(n&&n.length>0)for(let e=0,t=n.length;ee.endsWith(".wasm")?this.isWasmPathAbsolute?this.wasmPath+e:t+this.wasmPath+e:t+e;this.wasmModule=yield lD({noInitialRun:!0,locateFile:e||t})}else oD.error("Could not find wasm module at './web-ifc' from web-ifc-api.ts")}))}OpenModels(e,t){let s=vb({MEMORY_LIMIT:3221225472},t);s.MEMORY_LIMIT=s.MEMORY_LIMIT/e.length;let n=[];for(let t of e)n.push(this.OpenModel(t,s));return n}CreateSettings(e){let t=vb({COORDINATE_TO_ORIGIN:!1,CIRCLE_SEGMENTS:12,TAPE_SIZE:67108864,MEMORY_LIMIT:3221225472},e),s=["USE_FAST_BOOLS","CIRCLE_SEGMENTS_LOW","CIRCLE_SEGMENTS_MEDIUM","CIRCLE_SEGMENTS_HIGH"];for(let e in s)e in t&&oD.info("Use of deprecated settings "+e+" detected");return t}OpenModel(e,t){let s=this.CreateSettings(t),n=this.wasmModule.OpenModel(s,((t,s,n)=>{let i=Math.min(e.byteLength-s,n),a=this.wasmModule.HEAPU8.subarray(t,t+i),r=e.subarray(s,s+i);return a.set(r),i}));var i=this.GetHeaderLine(n,1109904537).arguments[0][0].value;return this.modelSchemaList[n]=eD.indexOf(i),-1==this.modelSchemaList[n]?(oD.error("Unsupported Schema:"+i),this.CloseModel(n),-1):(oD.info("Parsing Model using "+i+" Schema"),n)}GetModelSchema(e){return eD[this.modelSchemaList[e]]}CreateModel(e,t){var s,n,i;let a=this.CreateSettings(t),r=this.wasmModule.CreateModel(a);this.modelSchemaList[r]=eD.indexOf(e.schema);const l=e.name||"web-ifc-model-"+r+".ifc",o=(new Date).toISOString().slice(0,19),c=(null==(s=e.description)?void 0:s.map((e=>({type:1,value:e}))))||[{type:1,value:"ViewDefinition [CoordinationView]"}],u=(null==(n=e.authors)?void 0:n.map((e=>({type:1,value:e}))))||[null],h=(null==(i=e.organizations)?void 0:i.map((e=>({type:1,value:e}))))||[null],p=e.authorization?{type:1,value:e.authorization}:null;return this.wasmModule.WriteHeaderLine(r,599546466,[c,{type:1,value:"2;1"}]),this.wasmModule.WriteHeaderLine(r,1390159747,[{type:1,value:l},{type:1,value:o},u,h,{type:1,value:"ifcjs/web-ifc-api"},{type:1,value:"ifcjs/web-ifc-api"},p]),this.wasmModule.WriteHeaderLine(r,1109904537,[[{type:1,value:e.schema}]]),r}SaveModel(e){let t=this.wasmModule.GetModelSize(e),s=new Uint8Array(t+512),n=0;this.wasmModule.SaveModel(e,((e,t)=>{let i=this.wasmModule.HEAPU8.subarray(e,e+t);n=t,s.set(i,0)}));let i=new Uint8Array(n);return i.set(s.subarray(0,n),0),i}ExportFileAsIFC(e){return oD.warn("ExportFileAsIFC is deprecated, use SaveModel instead"),this.SaveModel(e)}GetGeometry(e,t){return this.wasmModule.GetGeometry(e,t)}GetHeaderLine(e,t){return this.wasmModule.GetHeaderLine(e,t)}GetAllTypesOfModel(e){let t=[];const s=Object.keys(Yb[this.modelSchemaList[e]]).map((e=>parseInt(e)));for(let n=0;n0&&t.push({typeID:s[n],typeName:this.wasmModule.GetNameFromTypeCode(s[n])});return t}GetLine(e,t,s=!1,n=!1){if(!this.wasmModule.ValidateExpressID(e,t))return;let i=this.GetRawLineData(e,t),a=Yb[this.modelSchemaList[e]][i.type](i.ID,i.arguments);s&&this.FlattenLine(e,a);let r=Xb[this.modelSchemaList[e]][i.type];if(n&&null!=r)for(let n of r){n[3]?a[n[0]]=[]:a[n[0]]=null;let i=[n[1]];void 0!==qb[this.modelSchemaList[e]][n[1]]&&(i=i.concat(qb[this.modelSchemaList[e]][n[1]]));let r=this.wasmModule.GetInversePropertyForItem(e,t,i,n[2],n[3]);if(!n[3]&&r.size()>0)a[n[0]]=s?this.GetLine(e,r.get(0)):{type:5,value:r.get(0)};else for(let t=0;tparseInt(e)))}WriteLine(e,t){let s;for(s in t){const n=t[s];if(n&&void 0!==n.expressID)this.WriteLine(e,n),t[s]=new zb(n.expressID);else if(Array.isArray(n)&&n.length>0)for(let i=0;i{let n=t[s];if(n&&5===n.type)n.value&&(t[s]=this.GetLine(e,n.value,!0));else if(Array.isArray(n)&&n.length>0&&5===n[0].type)for(let i=0;i{this.fire("initialized",!0,!1)})).catch((e=>{this.error(e)}))}get supportedVersions(){return["2x3","4"]}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new cD}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||IE}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}load(e={}){e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id);const t=new xo(this.viewer.scene,m.apply(e,{isModel:!0}));if(!e.src&&!e.ifc)return this.error("load() param expected: src or IFC"),t;const s={autoNormals:!0};if(!1!==e.loadMetadata){const t=e.includeTypes||this._includeTypes,n=e.excludeTypes||this._excludeTypes,i=e.objectDefaults||this._objectDefaults;if(t){s.includeTypesMap={};for(let e=0,n=t.length;e{try{e.src?this._loadModel(e.src,e,s,t):this._parseModel(e.ifc,e,s,t)}catch(e){this.error(e),t.fire("error",e)}})),t}_loadModel(e,t,s,n){const i=this.viewer.scene.canvas.spinner;i.processes++,this._dataSource.getIFC(t.src,(e=>{this._parseModel(e,t,s,n),i.processes--}),(e=>{i.processes--,this.error(e),n.fire("error",e)}))}_parseModel(e,t,s,n){if(n.destroyed)return;const i=t.stats||{};i.sourceFormat="IFC",i.schemaVersion="",i.title="",i.author="",i.created="",i.numMetaObjects=0,i.numPropertySets=0,i.numObjects=0,i.numGeometries=0,i.numTriangles=0,i.numVertices=0,s.wasmPath&&this._ifcAPI.SetWasmPath(s.wasmPath);const a=new Uint8Array(e),r=this._ifcAPI.OpenModel(a),l=this._ifcAPI.GetLineIDsWithType(r,103090709).get(0),o=!1!==t.loadMetadata,c={modelID:r,sceneModel:n,loadMetadata:o,metadata:o?{id:"",projectId:""+l,author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[],propertySets:[]}:null,metaObjects:{},options:s,log:function(e){},nextId:0,stats:i};if(o){if(s.includeTypes){c.includeTypes={};for(let e=0,t=s.includeTypes.length;e{n.destroyed||(n.scene.fire("modelLoaded",n.id),n.fire("loaded",!0,!1))}))}_parseMetaObjects(e){const t=this._ifcAPI.GetLineIDsWithType(e.modelID,103090709).get(0),s=this._ifcAPI.GetLine(e.modelID,t);this._parseSpatialChildren(e,s)}_parseSpatialChildren(e,t,s){const n=t.__proto__.constructor.name;if(e.includeTypes&&!e.includeTypes[n])return;if(e.excludeTypes&&e.excludeTypes[n])return;this._createMetaObject(e,t,s);const i=t.GlobalId.value;this._parseRelatedItemsOfType(e,t.expressID,"RelatingObject","RelatedObjects",160246688,i),this._parseRelatedItemsOfType(e,t.expressID,"RelatingStructure","RelatedElements",3242617779,i)}_createMetaObject(e,t,s){const n=t.GlobalId.value,i=t.__proto__.constructor.name,a={id:n,name:t.Name&&""!==t.Name.value?t.Name.value:i,type:i,parent:s};e.metadata.metaObjects.push(a),e.metaObjects[n]=a,e.stats.numMetaObjects++}_parseRelatedItemsOfType(e,t,s,n,i,a){const r=this._ifcAPI.GetLineIDsWithType(e.modelID,i);for(let i=0;ie.value)).includes(t)}else u=c.value===t;if(u){const t=o[n];if(Array.isArray(t))t.forEach((t=>{const s=this._ifcAPI.GetLine(e.modelID,t.value);this._parseSpatialChildren(e,s,a)}));else{const s=this._ifcAPI.GetLine(e.modelID,t.value);this._parseSpatialChildren(e,s,a)}}}}_parsePropertySets(e){const t=this._ifcAPI.GetLineIDsWithType(e.modelID,4186316022);for(let s=0;s0){const a="Default",r=t.Name.value,l=[];for(let e=0,t=n.length;e{const s=t.expressID,n=t.geometries,i=[],a=this._ifcAPI.GetLine(e.modelID,s).GlobalId.value;if(e.loadMetadata){const t=a,s=e.metaObjects[t];if(e.includeTypes&&(!s||!e.includeTypes[s.type]))return;if(e.excludeTypes&&(!s||e.excludeTypes[s.type]))return}const r=h.mat4(),l=h.vec3();for(let t=0,s=n.size();t{a.finalize(),l.finalize(),this.viewer.scene.canvas.spinner.processes--,a.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(l.id)})),a.scene.once("tick",(()=>{a.destroyed||(a.scene.fire("modelLoaded",a.id),a.fire("loaded",!0,!1))}))},c=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),a.fire("error",e)};let u=0;const h={getNextId:()=>`${r}.${u++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const i=e.metaModelSrc;this._dataSource.getMetaModel(i,(i=>{a.destroyed||(l.loadData(i,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,a,null,h,o,c):(this._parseModel(e.xkt,e,t,a,null,h),o()))}),(e=>{c(`load(): Failed to load model metadata for model '${r} from '${i}' - ${e}`)}))}else e.metaModelData&&(l.loadData(e.metaModelData,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,a,null,h,o,c):(this._parseModel(e.xkt,e,t,a,null,h),o()));else if(e.src)this._loadModel(e.src,e,t,a,l,h,o,c);else if(e.xkt)this._parseModel(e.xkt,e,t,a,l,h),o();else if(e.manifestSrc||e.manifest){const i=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",r=(e,a,r)=>{let o=0;const c=()=>{o>=e.length?a():this._dataSource.getMetaModel(`${i}${e[o]}`,(e=>{l.loadData(e,{includeTypes:s,excludeTypes:n,globalizeObjectIds:t.globalizeObjectIds}),o++,this.viewer.scene.once("tick",c)}),r)};c()},u=(s,n,r)=>{let o=0;const c=()=>{o>=s.length?n():this._dataSource.getXKT(`${i}${s[o]}`,(s=>{this._parseModel(s,e,t,a,l,h),o++,this.viewer.scene.once("tick",c)}),r)};c()};if(e.manifest){const t=e.manifest,s=t.xktFiles;if(!s||0===s.length)return void c("load(): Failed to load model manifest - manifest not valid");const n=t.metaModelFiles;n?r(n,(()=>{u(s,o,c)}),c):u(s,o,c)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(a.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void c("load(): Failed to load model manifest - manifest not valid");const s=e.metaModelFiles;s?r(s,(()=>{u(t,o,c)}),c):u(t,o,c)}),c)}return a}_loadModel(e,t,s,n,i,a,r,l){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,s,n,i,a),r()}),l)}_parseModel(e,t,s,n,i,a){if(n.destroyed)return;const r=new DataView(e),l=new Uint8Array(e),o=r.getUint32(0,!0),c=zT[o];if(!c)return void this.error("Unsupported .XKT file version: "+o+" - this XKTLoaderPlugin supports versions "+Object.keys(zT));this.log("Loading .xkt V"+o);const u=r.getUint32(4,!0),h=[];let p=4*(u+2);for(let e=0;e0?l:null,autoNormals:0===l.length,uv:o,indices:c}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,n()}))}))},exports.math=h,exports.rtcToWorldPos=function(e,t,s){return s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s},exports.sRGBEncoding=3001,exports.setFrustum=L,exports.stats=d,exports.utils=m,exports.worldToRTCPos=j,exports.worldToRTCPositions=V; diff --git a/dist/xeokit-sdk.min.es.js b/dist/xeokit-sdk.min.es.js index c33a3ca49a..66e4ac4cdc 100644 --- a/dist/xeokit-sdk.min.es.js +++ b/dist/xeokit-sdk.min.es.js @@ -1,4 +1,4 @@ -class e{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}const t=new e;class s{constructor(e){this.id=e,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class n{constructor(){this.items=[]}}class i{constructor(e,t,s,n,i){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=n,this.getShown=i,this.itemElement=null,this.subMenu=null,this.enabled=!0}}class a{constructor(e={}){this._id=t.addItem(),this._context=null,this._enabled=!1,this._itemsCfg=[],this._rootMenu=null,this._menuList=[],this._menuMap={},this._itemList=[],this._itemMap={},this._shown=!1,this._nextId=0,this._eventSubs={},!1!==e.hideOnMouseDown&&(document.addEventListener("mousedown",(e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),e.items&&(this.items=e.items),this._hideOnAction=!1!==e.hideOnAction,this.context=e.context,this.enabled=!1!==e.enabled,this.hide()}on(e,t){let s=this._eventSubs[e];s||(s=[],this._eventSubs[e]=s),s.push(t)}fire(e,t){const s=this._eventSubs[e];if(s)for(let e=0,n=s.length;e{const a=this._getNextId(),r=new s(a);for(let s=0,a=e.length;s0,c=this._getNextId(),u=s.getTitle||(()=>s.title||""),h=s.doAction||s.callback||(()=>{}),p=s.getEnabled||(()=>!0),A=s.getShown||(()=>!0),d=new i(c,u,h,p,A);if(d.parentMenu=r,l.items.push(d),o){const e=t(n);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(r),this._menuMap[r.id]=r,r};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const s=t.groups;for(let t=0,n=s.length;t'),s.push("
    "),t)for(let e=0,n=t.length;e'+o+" [MORE]"):s.push('
  • '+o+"
  • ")}}s.push("
"),s.push("");const n=s.join("");document.body.insertAdjacentHTML("beforeend",n);const i=document.querySelector("."+e.id);e.menuElement=i,i.style["border-radius"]="4px",i.style.display="none",i.style["z-index"]=3e5,i.style.background="white",i.style.border="1px solid black",i.style["box-shadow"]="0 4px 5px 0 gray",i.oncontextmenu=e=>{e.preventDefault()};const a=this;let r=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(r&&(a._hideMenu(r.id),r=null));if(r&&r.id!==s.id&&(a._hideMenu(r.id),r=null),!1===t.enabled)return;const n=t.itemElement,i=s.menuElement,l=n.getBoundingClientRect();i.getBoundingClientRect();l.right+200>window.innerWidth?a._showMenu(s.id,l.left-200,l.top-1):a._showMenu(s.id,l.right-5,l.top-1),r=s})),n||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),a._context&&!1!==t.enabled&&(t.doAction&&t.doAction(a._context),this._hideOnAction?a.hide():(a._updateItemsTitles(),a._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(a._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(s=window.innerHeight-n),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}}class r{constructor(e,t={}){this.viewer=e,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=t.zoomLevel||2,this._active=!1!==t.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(()=>{this._active&&this._visible&&this.update()}))}update(){if(!this._active||!this._visible)return;if(!this._canvasPos)return;const e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),s=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",s&&(this._lensPosToggle?this._lensContainer.style.marginTop=t.bottom-t.top-this._lensCanvas.height-85+"px":this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);const n=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-n/2,this._canvasPos[1]-n/2,n,n,0,0,this._lensCanvas.width,this._lensCanvas.height);const i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){const e=this._snappedCanvasPos[0]-this._canvasPos[0],t=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft=i[0]+e*this._zoomLevel-10+"px",this._lensCursorDiv.style.marginTop=i[1]+t*this._zoomLevel-10+"px"}else this._lensCursorDiv.style.marginLeft=i[0]-10+"px",this._lensCursorDiv.style.marginTop=i[1]-10+"px"}set zoomFactor(e){this._zoomFactor=e,this.update()}get zoomFactor(){return this._zoomFactor}set canvasPos(e){this._canvasPos=e,this.update()}get canvasPos(){return this._canvasPos}set snappedCanvasPos(e){this._snappedCanvasPos=e,this.update()}get snappedCanvasPos(){return this._snappedCanvasPos}set snapped(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}get snapped(){return this._snapped}set active(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get active(){return this._active}set visible(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get visible(){return this._visible}destroy(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}}let l=!0,o=l?Float64Array:Float32Array;const c=new o(3),u=new o(16),h=new o(16),p=new o(4),A={setDoublePrecisionEnabled(e){l=e,o=l?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>l,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(e,t){const s=t.indexOf("#");return s===e.length&&t.startsWith(e)?t.substring(s+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new o(e||2),vec3:e=>new o(e||3),vec4:e=>new o(e||4),mat3:e=>new o(e||9),mat3ToMat4:(e,t=new o(16))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t),mat4:e=>new o(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const n=new o(2);for(let i=0,a=e.length;i{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,s=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&s]}${e[s>>8&255]}-${e[s>>16&15|64]}${e[s>>24&255]}-${e[63&n|128]}${e[n>>8&255]}-${e[n>>16&255]}${e[n>>24&255]}${e[255&i]}${e[i>>8&255]}${e[i>>16&255]}${e[i>>24&255]}`}})(),clamp:(e,t,s)=>Math.max(t,Math.min(s,e)),fmod(e,t){if(ee[0]===t[0]&&e[1]===t[1]&&e[2]===t[2],negateVec3:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t),negateVec4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t),addVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s),addVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s),addVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s),addVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s),subVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s),subVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s),subVec2:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s),geometricMeanVec2(...e){const t=new o(e[0]);for(let s=1;s(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s),subScalarVec4:(e,t,s)=>(s||(s=e),s[0]=t-e[0],s[1]=t-e[1],s[2]=t-e[2],s[3]=t-e[3],s),mulVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]*t[0],s[1]=e[1]*t[1],s[2]=e[2]*t[2],s[3]=e[3]*t[3],s),mulVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s),mulVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s),mulVec2Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s),divVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s),divVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s[3]=e[3]/t[3],s),divScalarVec3:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s),divVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s),divVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s[3]=e[3]/t,s),divScalarVec4:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s[3]=e/t[3],s),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const s=e[0],n=e[1],i=e[2],a=t[0],r=t[1],l=t[2];return[n*l-i*r,i*a-s*l,s*r-n*a,0]},cross3Vec3(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=t[0],l=t[1],o=t[2];return s[0]=i*o-a*l,s[1]=a*r-n*o,s[2]=n*l-i*r,s},sqLenVec4:e=>A.dotVec4(e,e),lenVec4:e=>Math.sqrt(A.sqLenVec4(e)),dotVec3:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],dotVec2:(e,t)=>e[0]*t[0]+e[1]*t[1],sqLenVec3:e=>A.dotVec3(e,e),sqLenVec2:e=>A.dotVec2(e,e),lenVec3:e=>Math.sqrt(A.sqLenVec3(e)),distVec3:(()=>{const e=new o(3);return(t,s)=>A.lenVec3(A.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(A.sqLenVec2(e)),distVec2:(()=>{const e=new o(2);return(t,s)=>A.lenVec2(A.subVec2(t,s,e))})(),rcpVec3:(e,t)=>A.divScalarVec3(1,e,t),normalizeVec4(e,t){const s=1/A.lenVec4(e);return A.mulVec4Scalar(e,s,t)},normalizeVec3(e,t){const s=1/A.lenVec3(e);return A.mulVec3Scalar(e,s,t)},normalizeVec2(e,t){const s=1/A.lenVec2(e);return A.mulVec2Scalar(e,s,t)},angleVec3(e,t){let s=A.dotVec3(e,t)/Math.sqrt(A.sqLenVec3(e)*A.sqLenVec3(t));return s=s<-1?-1:s>1?1:s,Math.acos(s)},vec3FromMat4Scale:(()=>{const e=new o(3);return(t,s)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],s[0]=A.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],s[1]=A.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],s[2]=A.lenVec3(e),s)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let s=0,n=(t=Array.prototype.slice.call(t)).length;s({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||A.vec3())[0]=e.x,t[1]=e.y,t[2]=e.z,t),dupMat4:e=>e.slice(0,16),mat4To3:e=>[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]],m4s:e=>[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],setMat4ToZeroes:()=>A.m4s(0),setMat4ToOnes:()=>A.m4s(1),diagonalMat4v:e=>new o([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,n)=>A.diagonalMat4v([e,t,s,n]),diagonalMat4s:e=>A.diagonalMat4c(e,e,e,e),identityMat4:(e=new o(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),identityMat3:(e=new o(9))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e),isIdentityMat4:e=>1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15],negateMat4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t),addMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s[4]=e[4]+t[4],s[5]=e[5]+t[5],s[6]=e[6]+t[6],s[7]=e[7]+t[7],s[8]=e[8]+t[8],s[9]=e[9]+t[9],s[10]=e[10]+t[10],s[11]=e[11]+t[11],s[12]=e[12]+t[12],s[13]=e[13]+t[13],s[14]=e[14]+t[14],s[15]=e[15]+t[15],s),addMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s[4]=e[4]+t,s[5]=e[5]+t,s[6]=e[6]+t,s[7]=e[7]+t,s[8]=e[8]+t,s[9]=e[9]+t,s[10]=e[10]+t,s[11]=e[11]+t,s[12]=e[12]+t,s[13]=e[13]+t,s[14]=e[14]+t,s[15]=e[15]+t,s),addScalarMat4:(e,t,s)=>A.addMat4Scalar(t,e,s),subMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s[4]=e[4]-t[4],s[5]=e[5]-t[5],s[6]=e[6]-t[6],s[7]=e[7]-t[7],s[8]=e[8]-t[8],s[9]=e[9]-t[9],s[10]=e[10]-t[10],s[11]=e[11]-t[11],s[12]=e[12]-t[12],s[13]=e[13]-t[13],s[14]=e[14]-t[14],s[15]=e[15]-t[15],s),subMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s[4]=e[4]-t,s[5]=e[5]-t,s[6]=e[6]-t,s[7]=e[7]-t,s[8]=e[8]-t,s[9]=e[9]-t,s[10]=e[10]-t,s[11]=e[11]-t,s[12]=e[12]-t,s[13]=e[13]-t,s[14]=e[14]-t,s[15]=e[15]-t,s),subScalarMat4:(e,t,s)=>(s||(s=t),s[0]=e-t[0],s[1]=e-t[1],s[2]=e-t[2],s[3]=e-t[3],s[4]=e-t[4],s[5]=e-t[5],s[6]=e-t[6],s[7]=e-t[7],s[8]=e-t[8],s[9]=e-t[9],s[10]=e-t[10],s[11]=e-t[11],s[12]=e-t[12],s[13]=e-t[13],s[14]=e-t[14],s[15]=e-t[15],s),mulMat4(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=e[3],l=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=e[9],A=e[10],d=e[11],f=e[12],I=e[13],y=e[14],m=e[15],v=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],x=t[15];return s[0]=v*n+w*l+g*h+E*f,s[1]=v*i+w*o+g*p+E*I,s[2]=v*a+w*c+g*A+E*y,s[3]=v*r+w*u+g*d+E*m,s[4]=T*n+b*l+D*h+P*f,s[5]=T*i+b*o+D*p+P*I,s[6]=T*a+b*c+D*A+P*y,s[7]=T*r+b*u+D*d+P*m,s[8]=R*n+C*l+_*h+B*f,s[9]=R*i+C*o+_*p+B*I,s[10]=R*a+C*c+_*A+B*y,s[11]=R*r+C*u+_*d+B*m,s[12]=O*n+S*l+N*h+x*f,s[13]=O*i+S*o+N*p+x*I,s[14]=O*a+S*c+N*A+x*y,s[15]=O*r+S*u+N*d+x*m,s},mulMat3(e,t,s){s||(s=new o(9));const n=e[0],i=e[3],a=e[6],r=e[1],l=e[4],c=e[7],u=e[2],h=e[5],p=e[8],A=t[0],d=t[3],f=t[6],I=t[1],y=t[4],m=t[7],v=t[2],w=t[5],g=t[8];return s[0]=n*A+i*I+a*v,s[3]=n*d+i*y+a*w,s[6]=n*f+i*m+a*g,s[1]=r*A+l*I+c*v,s[4]=r*d+l*y+c*w,s[7]=r*f+l*m+c*g,s[2]=u*A+h*I+p*v,s[5]=u*d+h*y+p*w,s[8]=u*f+h*m+p*g,s},mulMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s[4]=e[4]*t,s[5]=e[5]*t,s[6]=e[6]*t,s[7]=e[7]*t,s[8]=e[8]*t,s[9]=e[9]*t,s[10]=e[10]*t,s[11]=e[11]*t,s[12]=e[12]*t,s[13]=e[13]*t,s[14]=e[14]*t,s[15]=e[15]*t,s),mulMat4v4(e,t,s=A.vec4()){const n=t[0],i=t[1],a=t[2],r=t[3];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12]*r,s[1]=e[1]*n+e[5]*i+e[9]*a+e[13]*r,s[2]=e[2]*n+e[6]*i+e[10]*a+e[14]*r,s[3]=e[3]*n+e[7]*i+e[11]*a+e[15]*r,s},transposeMat4(e,t){const s=e[4],n=e[14],i=e[8],a=e[13],r=e[12],l=e[9];if(!t||e===t){const t=e[1],o=e[2],c=e[3],u=e[6],h=e[7],p=e[11];return e[1]=s,e[2]=i,e[3]=r,e[4]=t,e[6]=l,e[7]=a,e[8]=o,e[9]=u,e[11]=n,e[12]=c,e[13]=h,e[14]=p,e}return t[0]=e[0],t[1]=s,t[2]=i,t[3]=r,t[4]=e[1],t[5]=e[5],t[6]=l,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=n,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const s=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4(e){const t=e[0],s=e[1],n=e[2],i=e[3],a=e[4],r=e[5],l=e[6],o=e[7],c=e[8],u=e[9],h=e[10],p=e[11],A=e[12],d=e[13],f=e[14],I=e[15];return A*u*l*i-c*d*l*i-A*r*h*i+a*d*h*i+c*r*f*i-a*u*f*i-A*u*n*o+c*d*n*o+A*s*h*o-t*d*h*o-c*s*f*o+t*u*f*o+A*r*n*p-a*d*n*p-A*s*l*p+t*d*l*p+a*s*f*p-t*r*f*p-c*r*n*I+a*u*n*I+c*s*l*I-t*u*l*I-a*s*h*I+t*r*h*I},inverseMat4(e,t){t||(t=e);const s=e[0],n=e[1],i=e[2],a=e[3],r=e[4],l=e[5],o=e[6],c=e[7],u=e[8],h=e[9],p=e[10],A=e[11],d=e[12],f=e[13],I=e[14],y=e[15],m=s*l-n*r,v=s*o-i*r,w=s*c-a*r,g=n*o-i*l,E=n*c-a*l,T=i*c-a*o,b=u*f-h*d,D=u*I-p*d,P=u*y-A*d,R=h*I-p*f,C=h*y-A*f,_=p*y-A*I,B=1/(m*_-v*C+w*R+g*P-E*D+T*b);return t[0]=(l*_-o*C+c*R)*B,t[1]=(-n*_+i*C-a*R)*B,t[2]=(f*T-I*E+y*g)*B,t[3]=(-h*T+p*E-A*g)*B,t[4]=(-r*_+o*P-c*D)*B,t[5]=(s*_-i*P+a*D)*B,t[6]=(-d*T+I*w-y*v)*B,t[7]=(u*T-p*w+A*v)*B,t[8]=(r*C-l*P+c*b)*B,t[9]=(-s*C+n*P-a*b)*B,t[10]=(d*E-f*w+y*m)*B,t[11]=(-u*E+h*w-A*m)*B,t[12]=(-r*R+l*D-o*b)*B,t[13]=(s*R-n*D+i*b)*B,t[14]=(-d*g+f*v-I*m)*B,t[15]=(u*g-h*v+p*m)*B,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const s=t||A.identityMat4();return s[12]=e[0],s[13]=e[1],s[14]=e[2],s},translationMat3v(e,t){const s=t||A.identityMat3();return s[6]=e[0],s[7]=e[1],s},translationMat4c:(()=>{const e=new o(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,A.translationMat4v(e,i))})(),translationMat4s:(e,t)=>A.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>A.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,s,n){const i=n[3];n[0]+=i*e,n[1]+=i*t,n[2]+=i*s;const a=n[7];n[4]+=a*e,n[5]+=a*t,n[6]+=a*s;const r=n[11];n[8]+=r*e,n[9]+=r*t,n[10]+=r*s;const l=n[15];return n[12]+=l*e,n[13]+=l*t,n[14]+=l*s,n},setMat4Translation:(e,t,s)=>(s[0]=e[0],s[1]=e[1],s[2]=e[2],s[3]=e[3],s[4]=e[4],s[5]=e[5],s[6]=e[6],s[7]=e[7],s[8]=e[8],s[9]=e[9],s[10]=e[10],s[11]=e[11],s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=e[15],s),rotationMat4v(e,t,s){const n=A.normalizeVec4([t[0],t[1],t[2],0],[]),i=Math.sin(e),a=Math.cos(e),r=1-a,l=n[0],o=n[1],c=n[2];let u,h,p,d,f,I;return u=l*o,h=o*c,p=c*l,d=l*i,f=o*i,I=c*i,(s=s||A.mat4())[0]=r*l*l+a,s[1]=r*u+I,s[2]=r*p-f,s[3]=0,s[4]=r*u-I,s[5]=r*o*o+a,s[6]=r*h+d,s[7]=0,s[8]=r*p+f,s[9]=r*h-d,s[10]=r*c*c+a,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,n,i)=>A.rotationMat4v(e,[t,s,n],i),scalingMat4v:(e,t=A.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=A.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new o(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,A.scalingMat4v(e,i))})(),scaleMat4c:(e,t,s,n)=>(n[0]*=e,n[4]*=t,n[8]*=s,n[1]*=e,n[5]*=t,n[9]*=s,n[2]*=e,n[6]*=t,n[10]*=s,n[3]*=e,n[7]*=t,n[11]*=s,n),scaleMat4v(e,t){const s=e[0],n=e[1],i=e[2];return t[0]*=s,t[4]*=n,t[8]*=i,t[1]*=s,t[5]*=n,t[9]*=i,t[2]*=s,t[6]*=n,t[10]*=i,t[3]*=s,t[7]*=n,t[11]*=i,t},scalingMat4s:e=>A.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=A.mat4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=n+n,o=i+i,c=a+a,u=n*l,h=n*o,p=n*c,d=i*o,f=i*c,I=a*c,y=r*l,m=r*o,v=r*c;return s[0]=1-(d+I),s[1]=h+v,s[2]=p-m,s[3]=0,s[4]=h-v,s[5]=1-(u+I),s[6]=f+y,s[7]=0,s[8]=p+m,s[9]=f-y,s[10]=1-(u+d),s[11]=0,s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=1,s},mat4ToEuler(e,t,s=A.vec4()){const n=A.clamp,i=e[0],a=e[4],r=e[8],l=e[1],o=e[5],c=e[9],u=e[2],h=e[6],p=e[10];return"XYZ"===t?(s[1]=Math.asin(n(r,-1,1)),Math.abs(r)<.99999?(s[0]=Math.atan2(-c,p),s[2]=Math.atan2(-a,i)):(s[0]=Math.atan2(h,o),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-n(c,-1,1)),Math.abs(c)<.99999?(s[1]=Math.atan2(r,p),s[2]=Math.atan2(l,o)):(s[1]=Math.atan2(-u,i),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(n(h,-1,1)),Math.abs(h)<.99999?(s[1]=Math.atan2(-u,p),s[2]=Math.atan2(-a,o)):(s[1]=0,s[2]=Math.atan2(l,i))):"ZYX"===t?(s[1]=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(s[0]=Math.atan2(h,p),s[2]=Math.atan2(l,i)):(s[0]=0,s[2]=Math.atan2(-a,o))):"YZX"===t?(s[2]=Math.asin(n(l,-1,1)),Math.abs(l)<.99999?(s[0]=Math.atan2(-c,o),s[1]=Math.atan2(-u,i)):(s[0]=0,s[1]=Math.atan2(r,p))):"XZY"===t&&(s[2]=Math.asin(-n(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(h,o),s[1]=Math.atan2(r,i)):(s[0]=Math.atan2(-c,p),s[1]=0)),s},composeMat4:(e,t,s,n=A.mat4())=>(A.quaternionToRotationMat4(t,n),A.scaleMat4v(s,n),A.translateMat4v(e,n),n),decomposeMat4:(()=>{const e=new o(3),t=new o(16);return function(s,n,i,a){e[0]=s[0],e[1]=s[1],e[2]=s[2];let r=A.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const l=A.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const o=A.lenVec3(e);A.determinantMat4(s)<0&&(r=-r),n[0]=s[12],n[1]=s[13],n[2]=s[14],t.set(s);const c=1/r,u=1/l,h=1/o;return t[0]*=c,t[1]*=c,t[2]*=c,t[4]*=u,t[5]*=u,t[6]*=u,t[8]*=h,t[9]*=h,t[10]*=h,A.mat4ToQuaternion(t,i),a[0]=r,a[1]=l,a[2]=o,this}})(),getColMat4(e,t){const s=4*t;return[e[s],e[s+1],e[s+2],e[s+3]]},setRowMat4(e,t,s){e[t]=s[0],e[t+4]=s[1],e[t+8]=s[2],e[t+12]=s[3]},lookAtMat4v(e,t,s,n){n||(n=A.mat4());const i=e[0],a=e[1],r=e[2],l=s[0],o=s[1],c=s[2],u=t[0],h=t[1],p=t[2];if(i===u&&a===h&&r===p)return A.identityMat4();let d,f,I,y,m,v,w,g,E,T;return d=i-u,f=a-h,I=r-p,T=1/Math.sqrt(d*d+f*f+I*I),d*=T,f*=T,I*=T,y=o*I-c*f,m=c*d-l*I,v=l*f-o*d,T=Math.sqrt(y*y+m*m+v*v),T?(T=1/T,y*=T,m*=T,v*=T):(y=0,m=0,v=0),w=f*v-I*m,g=I*y-d*v,E=d*m-f*y,T=Math.sqrt(w*w+g*g+E*E),T?(T=1/T,w*=T,g*=T,E*=T):(w=0,g=0,E=0),n[0]=y,n[1]=w,n[2]=d,n[3]=0,n[4]=m,n[5]=g,n[6]=f,n[7]=0,n[8]=v,n[9]=E,n[10]=I,n[11]=0,n[12]=-(y*i+m*a+v*r),n[13]=-(w*i+g*a+E*r),n[14]=-(d*i+f*a+I*r),n[15]=1,n},lookAtMat4c:(e,t,s,n,i,a,r,l,o)=>A.lookAtMat4v([e,t,s],[n,i,a],[r,l,o],[]),orthoMat4c(e,t,s,n,i,a,r){r||(r=A.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/c,r[11]=0,r[12]=-(e+t)/l,r[13]=-(n+s)/o,r[14]=-(a+i)/c,r[15]=1,r},frustumMat4v(e,t,s){s||(s=A.mat4());const n=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];A.addVec4(i,n,u),A.subVec4(i,n,h);const a=2*n[2],r=h[0],l=h[1],o=h[2];return s[0]=a/r,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=a/l,s[6]=0,s[7]=0,s[8]=u[0]/r,s[9]=u[1]/l,s[10]=-u[2]/o,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i[2]/o,s[15]=0,s},frustumMat4(e,t,s,n,i,a,r){r||(r=A.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2*i/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*i/o,r[6]=0,r[7]=0,r[8]=(t+e)/l,r[9]=(n+s)/o,r[10]=-(a+i)/c,r[11]=-1,r[12]=0,r[13]=0,r[14]=-a*i*2/c,r[15]=0,r},perspectiveMat4(e,t,s,n,i){const a=[],r=[];return a[2]=s,r[2]=n,r[1]=a[2]*Math.tan(e/2),a[1]=-r[1],r[0]=r[1]*t,a[0]=-r[0],A.frustumMat4v(a,r,i)},compareMat4:(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15],transformPoint3(e,t,s=A.vec3()){const n=t[0],i=t[1],a=t[2];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12],s[1]=e[1]*n+e[5]*i+e[9]*a+e[13],s[2]=e[2]*n+e[6]*i+e[10]*a+e[14],s},transformPoint4:(e,t,s=A.vec4())=>(s[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],s[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],s[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],s[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],s),transformPoints3(e,t,s){const n=s||[],i=t.length;let a,r,l,o;const c=e[0],u=e[1],h=e[2],p=e[3],A=e[4],d=e[5],f=e[6],I=e[7],y=e[8],m=e[9],v=e[10],w=e[11],g=e[12],E=e[13],T=e[14],b=e[15];let D;for(let e=0;e{const e=new o(16),t=new o(16),s=new o(16);return function(n,i,a,r){return this.transformVec3(this.mulMat4(this.inverseMat4(i,e),this.inverseMat4(a,t),s),n,r)}})(),lerpVec3(e,t,s,n,i,a){const r=a||A.vec3(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r},lerpMat4(e,t,s,n,i,a){const r=a||A.mat4(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r[3]=n[3]+l*(i[3]-n[3]),r[4]=n[4]+l*(i[4]-n[4]),r[5]=n[5]+l*(i[5]-n[5]),r[6]=n[6]+l*(i[6]-n[6]),r[7]=n[7]+l*(i[7]-n[7]),r[8]=n[8]+l*(i[8]-n[8]),r[9]=n[9]+l*(i[9]-n[9]),r[10]=n[10]+l*(i[10]-n[10]),r[11]=n[11]+l*(i[11]-n[11]),r[12]=n[12]+l*(i[12]-n[12]),r[13]=n[13]+l*(i[13]-n[13]),r[14]=n[14]+l*(i[14]-n[14]),r[15]=n[15]+l*(i[15]-n[15]),r},flatten(e){const t=[];let s,n,i,a,r;for(s=0,n=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=A.vec4()){const n=e[0]*A.DEGTORAD/2,i=e[1]*A.DEGTORAD/2,a=e[2]*A.DEGTORAD/2,r=Math.cos(n),l=Math.cos(i),o=Math.cos(a),c=Math.sin(n),u=Math.sin(i),h=Math.sin(a);return"XYZ"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o-c*u*h):"YXZ"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o+c*u*h):"ZXY"===t?(s[0]=c*l*o-r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o-c*u*h):"ZYX"===t?(s[0]=c*l*o-r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o+c*u*h):"YZX"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o-c*u*h):"XZY"===t&&(s[0]=c*l*o-r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o+c*u*h),s},mat4ToQuaternion(e,t=A.vec4()){const s=e[0],n=e[4],i=e[8],a=e[1],r=e[5],l=e[9],o=e[2],c=e[6],u=e[10];let h;const p=s+r+u;return p>0?(h=.5/Math.sqrt(p+1),t[3]=.25/h,t[0]=(c-l)*h,t[1]=(i-o)*h,t[2]=(a-n)*h):s>r&&s>u?(h=2*Math.sqrt(1+s-r-u),t[3]=(c-l)/h,t[0]=.25*h,t[1]=(n+a)/h,t[2]=(i+o)/h):r>u?(h=2*Math.sqrt(1+r-s-u),t[3]=(i-o)/h,t[0]=(n+a)/h,t[1]=.25*h,t[2]=(l+c)/h):(h=2*Math.sqrt(1+u-s-r),t[3]=(a-n)/h,t[0]=(i+o)/h,t[1]=(l+c)/h,t[2]=.25*h),t},vec3PairToQuaternion(e,t,s=A.vec4()){const n=Math.sqrt(A.dotVec3(e,e)*A.dotVec3(t,t));let i=n+A.dotVec3(e,t);return i<1e-8*n?(i=0,Math.abs(e[0])>Math.abs(e[2])?(s[0]=-e[1],s[1]=e[0],s[2]=0):(s[0]=0,s[1]=-e[2],s[2]=e[1])):A.cross3Vec3(e,t,s),s[3]=i,A.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=A.vec4()){const s=e[3]/2,n=Math.sin(s);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new o(16);return(t,s,n)=>(n=n||A.vec3(),A.quaternionToRotationMat4(t,e),A.mat4ToEuler(e,s,n),n)})(),mulQuaternions(e,t,s=A.vec4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=t[0],o=t[1],c=t[2],u=t[3];return s[0]=r*l+n*u+i*c-a*o,s[1]=r*o+i*u+a*l-n*c,s[2]=r*c+a*u+n*o-i*l,s[3]=r*u-n*l-i*o-a*c,s},vec3ApplyQuaternion(e,t,s=A.vec3()){const n=t[0],i=t[1],a=t[2],r=e[0],l=e[1],o=e[2],c=e[3],u=c*n+l*a-o*i,h=c*i+o*n-r*a,p=c*a+r*i-l*n,d=-r*n-l*i-o*a;return s[0]=u*c+d*-r+h*-o-p*-l,s[1]=h*c+d*-l+p*-r-u*-o,s[2]=p*c+d*-o+u*-l-h*-r,s},quaternionToMat4(e,t){t=A.identityMat4(t);const s=e[0],n=e[1],i=e[2],a=e[3],r=2*s,l=2*n,o=2*i,c=r*a,u=l*a,h=o*a,p=r*s,d=l*s,f=o*s,I=l*n,y=o*n,m=o*i;return t[0]=1-(I+m),t[1]=d+h,t[2]=f-u,t[4]=d-h,t[5]=1-(p+m),t[6]=y+c,t[8]=f+u,t[9]=y-c,t[10]=1-(p+I),t},quaternionToRotationMat4(e,t){const s=e[0],n=e[1],i=e[2],a=e[3],r=s+s,l=n+n,o=i+i,c=s*r,u=s*l,h=s*o,p=n*l,A=n*o,d=i*o,f=a*r,I=a*l,y=a*o;return t[0]=1-(p+d),t[4]=u-y,t[8]=h+I,t[1]=u+y,t[5]=1-(c+d),t[9]=A-f,t[2]=h-I,t[6]=A+f,t[10]=1-(c+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion(e,t=e){const s=A.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/s,t[1]=e[1]/s,t[2]=e[2]/s,t[3]=e[3]/s,t},conjugateQuaternion:(e,t=e)=>(t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t),inverseQuaternion:(e,t)=>A.normalizeQuaternion(A.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=A.vec4()){const s=(e=A.normalizeQuaternion(e,p))[3],n=2*Math.acos(s),i=Math.sqrt(1-s*s);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=n,t},AABB3:e=>new o(e||6),AABB2:e=>new o(e||4),OBB3:e=>new o(e||32),OBB2:e=>new o(e||16),Sphere3:(e,t,s,n)=>new o([e,t,s,n]),transformOBB3(e,t,s=t){let n;const i=t.length;let a,r,l;const o=e[0],c=e[1],u=e[2],h=e[3],p=e[4],A=e[5],d=e[6],f=e[7],I=e[8],y=e[9],m=e[10],v=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n{const e=new o(3),t=new o(3),s=new o(3);return n=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5],A.subVec3(t,e,s),Math.abs(A.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new o(3),t=new o(3),s=new o(3);return(n,i)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5];const a=A.subVec3(t,e,s),r=i[0]-n[0],l=n[3]-i[0],o=i[1]-n[1],c=n[4]-i[1],u=i[2]-n[2],h=n[5]-i[2];return a[0]+=r>l?r:l,a[1]+=o>c?o:c,a[2]+=u>h?u:h,Math.abs(A.lenVec3(a))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const s=t||A.vec3();return s[0]=(e[0]+e[3])/2,s[1]=(e[1]+e[4])/2,s[2]=(e[2]+e[5])/2,s},getAABB2Center(e,t){const s=t||A.vec2();return s[0]=(e[2]+e[0])/2,s[1]=(e[3]+e[1])/2,s},collapseAABB3:(e=A.AABB3())=>(e[0]=A.MAX_DOUBLE,e[1]=A.MAX_DOUBLE,e[2]=A.MAX_DOUBLE,e[3]=A.MIN_DOUBLE,e[4]=A.MIN_DOUBLE,e[5]=A.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=A.OBB3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t),positions3ToAABB3:(()=>{const e=new o(3);return(t,s,n)=>{s=s||A.AABB3();let i,a,r,l=A.MAX_DOUBLE,o=A.MAX_DOUBLE,c=A.MAX_DOUBLE,u=A.MIN_DOUBLE,h=A.MIN_DOUBLE,p=A.MIN_DOUBLE;for(let s=0,d=t.length;su&&(u=i),a>h&&(h=a),r>p&&(p=r);return s[0]=l,s[1]=o,s[2]=c,s[3]=u,s[4]=h,s[5]=p,s}})(),OBB3ToAABB3(e,t=A.AABB3()){let s,n,i,a=A.MAX_DOUBLE,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE,u=A.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToAABB3(e,t=A.AABB3()){let s,n,i,a=A.MAX_DOUBLE,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE,u=A.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToSphere3:(()=>{const e=new o(3);return(t,s)=>{s=s||A.vec4();let n,i=0,a=0,r=0;const l=t.length;for(n=0;nc&&(c=o);return s[3]=c,s}})(),positions3ToSphere3:(()=>{const e=new o(3),t=new o(3);return(s,n)=>{n=n||A.vec4();let i,a=0,r=0,l=0;const o=s.length;let c=0;for(i=0;ic&&(c=h);return n[3]=c,n}})(),OBB3ToSphere3:(()=>{const e=new o(3),t=new o(3);return(s,n)=>{n=n||A.vec4();let i,a=0,r=0,l=0;const o=s.length,c=o/4;for(i=0;ih&&(h=u);return n[3]=h,n}})(),getSphere3Center:(e,t=A.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=A.vec3()){let s=0,n=0,i=0;for(var a=0,r=e.length;a(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]s&&(e[0]=s),e[1]>n&&(e[1]=n),e[2]>i&&(e[2]=i),e[3](e[0]=A.MAX_DOUBLE,e[1]=A.MAX_DOUBLE,e[2]=A.MIN_DOUBLE,e[3]=A.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(n=e[0]*s[0],i=e[0]*s[3]):(n=e[0]*s[3],i=e[0]*s[0]),e[1]>0?(n+=e[1]*s[1],i+=e[1]*s[4]):(n+=e[1]*s[4],i+=e[1]*s[1]),e[2]>0?(n+=e[2]*s[2],i+=e[2]*s[5]):(n+=e[2]*s[5],i+=e[2]*s[2]);if(n<=-t&&i<=-t)return-1;return n>=-t&&i>=-t?1:0},OBB3ToAABB2(e,t=A.AABB2()){let s,n,i,a,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE;for(let t=0,u=e.length;to&&(o=s),n>c&&(c=n);return t[0]=r,t[1]=l,t[2]=o,t[3]=c,t},expandAABB2:(e,t)=>(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]2*(1-e)*(s-t)+2*e*(n-s),tangentQuadraticBezier3:(e,t,s,n,i)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*n*(1-e)-3*e*e*n+3*e*e*i,tangentSpline:e=>6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e),catmullRomInterpolate(e,t,s,n,i){const a=.5*(s-e),r=.5*(n-t),l=i*i;return(2*t-2*s+a+r)*(i*l)+(-3*t+3*s-2*a-r)*l+a*i+t},b2p0(e,t){const s=1-e;return s*s*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,s,n){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,n)},b3p0(e,t){const s=1-e;return s*s*s*t},b3p1(e,t){const s=1-e;return 3*s*s*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,s,n,i){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,n)+this.b3p3(e,i)},triangleNormal(e,t,s,n=A.vec3()){const i=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],l=s[0]-e[0],o=s[1]-e[1],c=s[2]-e[2],u=a*c-r*o,h=r*l-i*c,p=i*o-a*l,d=Math.sqrt(u*u+h*h+p*p);return 0===d?(n[0]=0,n[1]=0,n[2]=0):(n[0]=u/d,n[1]=h/d,n[2]=p/d),n},rayTriangleIntersect:(()=>{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3);return(a,r,l,o,c,u)=>{u=u||A.vec3();const h=A.subVec3(o,l,e),p=A.subVec3(c,l,t),d=A.cross3Vec3(r,p,s),f=A.dotVec3(h,d);if(f<1e-6)return null;const I=A.subVec3(a,l,n),y=A.dotVec3(I,d);if(y<0||y>f)return null;const m=A.cross3Vec3(I,h,i),v=A.dotVec3(r,m);if(v<0||y+v>f)return null;const w=A.dotVec3(p,m)/f;return u[0]=a[0]+w*r[0],u[1]=a[1]+w*r[1],u[2]=a[2]+w*r[2],u}})(),rayPlaneIntersect:(()=>{const e=new o(3),t=new o(3),s=new o(3),n=new o(3);return(i,a,r,l,o,c)=>{c=c||A.vec3(),a=A.normalizeVec3(a,e);const u=A.subVec3(l,r,t),h=A.subVec3(o,r,s),p=A.cross3Vec3(u,h,n);A.normalizeVec3(p,p);const d=-A.dotVec3(r,p),f=-(A.dotVec3(i,p)+d)/A.dotVec3(a,p);return c[0]=i[0]+f*a[0],c[1]=i[1]+f*a[1],c[2]=i[2]+f*a[2],c}})(),cartesianToBarycentric:(()=>{const e=new o(3),t=new o(3),s=new o(3);return(n,i,a,r,l)=>{const o=A.subVec3(r,i,e),c=A.subVec3(a,i,t),u=A.subVec3(n,i,s),h=A.dotVec3(o,o),p=A.dotVec3(o,c),d=A.dotVec3(o,u),f=A.dotVec3(c,c),I=A.dotVec3(c,u),y=h*f-p*p;if(0===y)return null;const m=1/y,v=(f*d-p*I)*m,w=(h*I-p*d)*m;return l[0]=1-v-w,l[1]=w,l[2]=v,l}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,n,i=A.vec3()){const a=e[0],r=e[1],l=e[2];return i[0]=t[0]*a+s[0]*r+n[0]*l,i[1]=t[1]*a+s[1]*r+n[1]*l,i[2]=t[2]*a+s[2]*r+n[2]*l,i},mergeVertices(e,t,s,n){const i={},a=[],r=[],l=t?[]:null,o=s?[]:null,c=[];let u,h,p,A;const d=1e4;let f,I,y=0;for(f=0,I=e.length;f{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3),a=new o(3);return(r,l,o)=>{let c,u;const h=new Array(r.length/3);let p,d,f,I,y,m,v;for(c=0,u=l.length;c{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3),a=new o(3),r=new o(3);return(l,o,c)=>{const u=new Float32Array(l.length);for(let h=0;h>24&255,u=p>>16&255,c=p>>8&255,o=255&p,l=t[s],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+1],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+2],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,p++;return{positions:i,colors:a}},faceToVertexNormals(e,t,s={}){const n=s.smoothNormalsAngleThreshold||20,i={},a=[],r={};let l,o,c,u,h;const p=1e4;let d,f,I,y,m,v;for(f=0,y=e.length;f{const e=new o(4),t=new o(4);return(s,n,i,a,r)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=1,A.transformVec4(s,e,t),a[0]=t[0],a[1]=t[1],a[2]=t[2],e[0]=i[0],e[1]=i[1],e[2]=i[2],A.transformVec3(s,e,t),A.normalizeVec3(t),r[0]=t[0],r[1]=t[1],r[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new o(16),t=new o(16),s=new o(4),n=new o(4),i=new o(4),a=new o(4);return(r,l,o,c,u,h)=>{const p=A.mulMat4(o,l,e),d=A.inverseMat4(p,t),f=r.width,I=r.height,y=(c[0]-f/2)/(f/2),m=-(c[1]-I/2)/(I/2);s[0]=y,s[1]=m,s[2]=-1,s[3]=1,A.transformVec4(d,s,n),A.mulVec4Scalar(n,1/n[3]),i[0]=y,i[1]=m,i[2]=1,i[3]=1,A.transformVec4(d,i,a),A.mulVec4Scalar(a,1/a[3]),u[0]=a[0],u[1]=a[1],u[2]=a[2],A.subVec3(a,n,h),A.normalizeVec3(h)}})(),canvasPosToLocalRay:(()=>{const e=new o(3),t=new o(3);return(s,n,i,a,r,l,o)=>{A.canvasPosToWorldRay(s,n,i,r,e,t),A.worldRayToLocalRay(a,e,t,l,o)}})(),worldRayToLocalRay:(()=>{const e=new o(16),t=new o(4),s=new o(4);return(n,i,a,r,l)=>{const o=A.inverseMat4(n,e);t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,A.transformVec4(o,t,s),r[0]=s[0],r[1]=s[1],r[2]=s[2],A.transformVec3(o,a,l)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,n,i,a){const r=new o(6),l={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:r};let c,u;for(r[0]=r[1]=r[2]=Number.POSITIVE_INFINITY,r[3]=r[4]=r[5]=Number.NEGATIVE_INFINITY,c=0,u=s.length;cr[3]&&(r[3]=i[t]),i[t+1]r[4]&&(r[4]=i[t+1]),i[t+2]r[5]&&(r[5]=i[t+2])}}if(s.length<20||a>10)return l.triangles=s,l.leaf=!0,l;e[0]=r[3]-r[0],e[1]=r[4]-r[1],e[2]=r[5]-r[2];let p=0;e[1]>e[p]&&(p=1),e[2]>e[p]&&(p=2),l.splitDim=p;const A=(r[p]+r[p+3])/2,d=new Array(s.length);let f=0;const I=new Array(s.length);let y=0;for(c=0,u=s.length;c{const n=e.length/3,i=new Array(n);for(let e=0;e=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t},octDecodeVec2s(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t}};A.buildEdgeIndices=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}(),A.planeClipsPositions3=function(e,t,s,n=3){for(let i=0,a=s.length;i{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const s=e.objects[t];this._insertEntity(this._root,s,1)}this._needsRebuild=!1}_insertEntity(e,t,s){const n=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&A.containsAABB3(e.left.aabb,n))return void this._insertEntity(e.left,t,s+1);if(e.right&&A.containsAABB3(e.right.aabb,n))return void this._insertEntity(e.right,t,s+1);const i=e.aabb;d[0]=i[3]-i[0],d[1]=i[4]-i[1],d[2]=i[5]-i[2];let a=0;if(d[1]>d[a]&&(a=1),d[2]>d[a]&&(a=2),!e.left){const r=i.slice();if(r[a+3]=(i[a]+i[a+3])/2,e.left={aabb:r},A.containsAABB3(r,n))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const r=i.slice();if(r[a]=(i[a]+i[a+3])/2,e.right={aabb:r},A.containsAABB3(r,n))return void this._insertEntity(e.right,t,s+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class I{constructor(){this._head=[],this._headLength=0,this._tail=[],this._index=0,this._length=0}get length(){return this._length}shift(){if(this._index>=this._headLength){const e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}const e=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,e}push(e){return this._length++,this._tail.push(e),this}unshift(e){return this._head[--this._index]=e,this._length++,this}}const y={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var m=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],s=e[0].charCodeAt(0),n=s+e[1],i=s;i{};t=t||n,s=s||n;var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",e,!0),i.addEventListener("load",(function(e){var n=e.target.response;if(200===this.status){var i;try{i=JSON.parse(n)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(i)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(n))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),i.addEventListener("error",(function(e){s(e)}),!1),i.send(null)},loadArraybuffer:function(e,t,s){var n=e=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{T.removeItem(e.id),delete B.scenes[e.id],delete E[e.id],y.components.scenes--}))},this.clear=function(){let e;for(const t in B.scenes)B.scenes.hasOwnProperty(t)&&(e=B.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete B.scenes[e.id]))},this.scheduleTask=function(e,t){b.push(e),b.push(t)},this.runTasks=function(e=-1){let t,s,n=(new Date).getTime(),i=0;for(;b.length>0&&(e<0||n0&&R>0){var t=1e3/R;_+=t,P.push(t),P.length>=30&&(_-=P.shift()),y.frame.fps=Math.round(_/P.length)}!function(e){const t=B.runTasks(e+10),s=B.getNumTasks();y.frame.tasksRun=t,y.frame.tasksScheduled=s,y.frame.tasksBudget=10}(e),function(e){for(var t in D.time=e,B.scenes)if(B.scenes.hasOwnProperty(t)){var s=B.scenes[t];D.sceneId=t,D.startTime=s.startTime,D.deltaTime=null!=D.prevTime?D.time-D.prevTime:0,s.fire("tick",D,!0)}D.prevTime=e}(e),function(){const e=B.scenes,t=!1;let s,n,i,a,r;for(r in e)e.hasOwnProperty(r)&&(s=e[r],n=E[r],n||(n=E[r]={}),i=s.ticksPerOcclusionTest,n.ticksPerOcclusionTest!==i&&(n.ticksPerOcclusionTest=i,n.renderCountdown=i),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=i),a=s.ticksPerRender,n.ticksPerRender!==a&&(n.ticksPerRender=a,n.renderCountdown=a),0==--n.renderCountdown&&(s.render(t),n.renderCountdown=a))}(),C=e,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(O):requestAnimationFrame(O)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(O):requestAnimationFrame(O);class S{get type(){return"Component"}get isComponent(){return!0}constructor(e=null,t={}){if(this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=t.viewer;else{if("Scene"===e.type)this.scene=e;else{if(!(e instanceof S))throw"Invalid param: owner must be a Component";this.scene=e.scene}this._owner=e}this._dontClear=!!t.dontClear,this._renderer=this.scene._renderer,this.meta=t.meta||{},this.id=t.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,e&&e._own(this)}glRedraw(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}glResort(){this._renderer&&this._renderer.needStateSort()}get owner(){return this._owner}isType(e){return this.type===e}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}_message(e){return" ["+this.type+" "+g.inQuotes(this.id)+"]: "+e}warn(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}error(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}_attach(e){const t=e.name;if(!t)return void this.error("Component 'name' expected");let s=e.component;const n=e.sceneDefault,i=e.sceneSingleton,a=e.type,r=e.on,l=!1!==e.recompiles;if(s&&(g.isNumeric(s)||g.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+g.inQuotes(e))}if(!s)if(!0===i){const e=this.scene.types[a];for(const t in e)if(e.hasOwnProperty){s=e[t];break}if(!s)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===n&&(s=this.scene[t],!s))return this.error("Scene has no default component for '"+t+"'"),null;if(s){if(s.scene.id!==this.scene.id)return void this.error("Not in same scene: "+s.type+" "+g.inQuotes(s.id));if(a&&!s.isType(a))return void this.error("Expected a "+a+" type or subtype: "+s.type+" "+g.inQuotes(s.id))}this._attachments||(this._attachments={});const o=this._attached[t];let c,u,h;if(o){if(s&&o.id===s.id)return;const e=this._attachments[o.id];for(c=e.subs,u=0,h=c.length;u{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():B.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}_update(){}clear(){if(this._ownedComponents)for(var e in this._ownedComponents)if(this._ownedComponents.hasOwnProperty(e)){this._ownedComponents[e].destroy(),delete this._ownedComponents[e]}}destroy(){if(this.destroyed)return;let e,t,s,n,i,a;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],s=t.component,n=t.subs,i=0,a=n.length;i=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class F{constructor(){this.planes=[new M,new M,new M,new M,new M,new M]}}function H(e,t,s){const n=A.mulMat4(s,t,L),i=n[0],a=n[1],r=n[2],l=n[3],o=n[4],c=n[5],u=n[6],h=n[7],p=n[8],d=n[9],f=n[10],I=n[11],y=n[12],m=n[13],v=n[14],w=n[15];e.planes[0].set(l-i,h-o,I-p,w-y),e.planes[1].set(l+i,h+o,I+p,w+y),e.planes[2].set(l-a,h-c,I-d,w-m),e.planes[3].set(l+a,h+c,I+d,w+m),e.planes[4].set(l-r,h-u,I-f,w-v),e.planes[5].set(l+r,h+u,I+f,w+v)}function U(e,t){let s=F.INSIDE;const n=N,i=x;n[0]=t[0],n[1]=t[1],n[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];const a=[n,i];for(let t=0;t<6;++t){const n=e.planes[t];if(n.normal[0]*a[n.testVertex[0]][0]+n.normal[1]*a[n.testVertex[1]][1]+n.normal[2]*a[n.testVertex[2]][2]+n.offset<0)return F.OUTSIDE;n.normal[0]*a[1-n.testVertex[0]][0]+n.normal[1]*a[1-n.testVertex[1]][1]+n.normal[2]*a[1-n.testVertex[2]][2]+n.offset<0&&(s=F.INTERSECT)}return s}F.INSIDE=0,F.INTERSECT=1,F.OUTSIDE=2;class G extends S{constructor(e={}){if(!e.viewer)throw"[MarqueePicker] Missing config: viewer";if(!e.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";super(e.viewer.scene,e),this.viewer=e.viewer,this._objectsKdTree3=e.objectsKdTree3,this._canvasMarqueeCorner1=A.vec2(),this._canvasMarqueeCorner2=A.vec2(),this._canvasMarquee=A.AABB2(),this._marqueeFrustum=new F,this._marqueeFrustumProjMat=A.mat4(),this._pickMode=!1,this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement),this._marqueeElement.style.position="absolute",this._marqueeElement.style["z-index"]="40000005",this._marqueeElement.style.width="8px",this._marqueeElement.style.height="8px",this._marqueeElement.style.visibility="hidden",this._marqueeElement.style.top="0px",this._marqueeElement.style.left="0px",this._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",this._marqueeElement.style.opacity=1,this._marqueeElement.style["pointer-events"]="none"}setMarqueeCorner1(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarqueeCorner2(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarquee(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}setMarqueeVisible(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}getMarqueeVisible(){return this._marqueVisible}setPickMode(e){if(e!==G.PICK_MODE_INSIDE&&e!==G.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===G.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const e=[],t=(s,n=F.INTERSECT)=>{if(n===F.INTERSECT&&(n=U(this._marqueeFrustum,s.aabb)),n!==F.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,n=t.length;s3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&t(this._objectsKdTree3.root),this.fire("picked",e),e}_updateMarquee(){this._canvasMarquee[0]=Math.min(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[1]=Math.min(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._canvasMarquee[2]=Math.max(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[3]=Math.max(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._marqueeElement.style.width=this._canvasMarquee[2]-this._canvasMarquee[0]+"px",this._marqueeElement.style.height=this._canvasMarquee[3]-this._canvasMarquee[1]+"px",this._marqueeElement.style.left=`${this._canvasMarquee[0]}px`,this._marqueeElement.style.top=`${this._canvasMarquee[1]}px`}_buildMarqueeFrustum(){const e=this.viewer.scene.canvas.canvas,t=e.clientWidth,s=e.clientHeight,n=e.clientLeft,i=e.clientTop,a=2/t,r=2/s,l=e.clientHeight/e.clientWidth,o=(this._canvasMarquee[0]-n)*a-1,c=(this._canvasMarquee[2]-n)*a-1,u=-(this._canvasMarquee[3]-i)*r+1,h=-(this._canvasMarquee[1]-i)*r+1,p=this.viewer.scene.camera.frustum.near*(17*l);A.frustumMat4(o,c,u*l,h*l,p,1e4,this._marqueeFrustumProjMat),H(this._marqueeFrustum,this.viewer.scene.camera.viewMatrix,this._marqueeFrustumProjMat)}destroy(){super.destroy(),this._marqueeElement.parentElement&&(this._marqueeElement.parentElement.removeChild(this._marqueeElement),this._marqueeElement=null,this._objectsKdTree3=null)}}G.PICK_MODE_INTERSECTS=0,G.PICK_MODE_INSIDE=1;class j extends S{constructor(e){super(e.marqueePicker,e);const t=e.marqueePicker,s=t.viewer.scene.canvas.canvas;let n,i,a,r,l,o,c,u=!1,h=!1,p=!1;s.addEventListener("mousedown",(e=>{this.getActive()&&0===e.button&&(c=setTimeout((function(){const a=t.viewer.scene.input;a.keyDown[a.KEY_CTRL]||t.clear(),n=e.pageX,i=e.pageY,l=e.offsetX,t.setMarqueeCorner1([n,i]),u=!0,t.viewer.cameraControl.pointerEnabled=!1,t.setMarqueeVisible(!0),s.style.cursor="crosshair"}),400),h=!0)})),s.addEventListener("mouseup",(e=>{if(!this.getActive())return;if(!u&&!p)return;if(0!==e.button)return;clearTimeout(c),a=e.pageX,r=e.pageY;const s=Math.abs(a-n),l=Math.abs(r-i);u=!1,t.viewer.cameraControl.pointerEnabled=!0,p&&(p=!1),(s>3||l>3)&&t.pick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&0===e.button&&(clearTimeout(c),u&&(t.setMarqueeVisible(!1),u=!1,h=!1,p=!0,t.viewer.cameraControl.pointerEnabled=!0))}),!0),s.addEventListener("mousemove",(e=>{this.getActive()&&0===e.button&&h&&(clearTimeout(c),u&&(a=e.pageX,r=e.pageY,o=e.offsetX,t.setMarqueeVisible(!0),t.setMarqueeCorner2([a,r]),t.setPickMode(l0}log(e){console.log(`[xeokit plugin ${this.id}]: ${e}`)}warn(e){console.warn(`[xeokit plugin ${this.id}]: ${e}`)}error(e){console.error(`[xeokit plugin ${this.id}]: ${e}`)}send(e,t){}destroy(){this.viewer.removePlugin(this)}}const k=A.vec3(),Q=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(n,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,A.transformVec4(n,t,s),A.setMat4Translation(n,s,a),a.slice()}}();function W(e,t,s){const n=Float32Array.from([e[0]])[0],i=e[0]-n,a=Float32Array.from([e[1]])[0],r=e[1]-a,l=Float32Array.from([e[2]])[0],o=e[2]-l;t[0]=n,t[1]=a,t[2]=l,s[0]=i,s[1]=r,s[2]=o}function z(e,t,s,n=1e3){const i=A.getPositionsCenter(e,k),a=Math.round(i[0]/n)*n,r=Math.round(i[1]/n)*n,l=Math.round(i[2]/n)*n;s[0]=a,s[1]=r,s[2]=l;const o=0!==s[0]||0!==s[1]||0!==s[2];if(o)for(let s=0,n=e.length;s0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,s=this.meshes[0]._colorize[3];let n=255;if(t){if(e<0?e=0:e>1&&(e=1),n=Math.floor(255*e),s===n)return}else if(n=255,s===n)return;for(let e=0,t=this.meshes.length;e{this._viewPosDirty=!0,this._needUpdate()})),this._onCameraProjMatrix=this.scene.camera.on("projMatrix",(()=>{this._canvasPosDirty=!0,this._needUpdate()})),this._onEntityDestroyed=null,this._onEntityModelDestroyed=null,this._renderer.addMarker(this),this.entity=t.entity,this.worldPos=t.worldPos,this.occludable=t.occludable}_update(){if(this._viewPosDirty&&(A.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){le.set(this._viewPos),le[3]=1,A.transformPoint4(this.scene.camera.projMatrix,le,oe);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+oe[0]/oe[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-oe[1]/oe[3])*e[3]/2),this._canvasPosDirty=!1,this.fire("canvasPos",this._canvasPos)}}_setVisible(e){this._visible,this._visible=e,this.fire("visible",this._visible)}set entity(e){if(this._entity){if(this._entity===e)return;null!==this._onEntityDestroyed&&(this._entity.off(this._onEntityDestroyed),this._onEntityDestroyed=null),null!==this._onEntityModelDestroyed&&(this._entity.model.off(this._onEntityModelDestroyed),this._onEntityModelDestroyed=null)}this._entity=e,this._entity&&(this._entity instanceof re?this._onEntityModelDestroyed=this._entity.model.on("destroyed",(()=>{this._entity=null,this._onEntityModelDestroyed=null})):this._onEntityDestroyed=this._entity.on("destroyed",(()=>{this._entity=null,this._onEntityDestroyed=null}))),this.fire("entity",this._entity,!0)}get entity(){return this._entity}set occludable(e){(e=!!e)!==this._occludable&&(this._occludable=e)}get occludable(){return this._occludable}set worldPos(e){this._worldPos.set(e||[0,0,0]),W(this._worldPos,this._origin,this._rtcPos),this._occludable&&this._renderer.markerWorldPosUpdated(this),this._viewPosDirty=!0,this.fire("worldPos",this._worldPos),this._needUpdate()}get worldPos(){return this._worldPos}get origin(){return this._origin}get rtcPos(){return this._rtcPos}get viewPos(){return this._update(),this._viewPos}get canvasPos(){return this._update(),this._canvasPos}get visible(){return!!this._visible}destroy(){this.fire("destroyed",!0),this.scene.camera.off(this._onCameraViewMatrix),this.scene.camera.off(this._onCameraProjMatrix),this._entity&&(null!==this._onEntityDestroyed&&this._entity.off(this._onEntityDestroyed),null!==this._onEntityModelDestroyed&&this._entity.model.off(this._onEntityModelDestroyed)),this._renderer.removeMarker(this),super.destroy()}}class ue{constructor(e,t={}){this._color=t.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=t.thickness||1,this._thicknessClickable=t.thicknessClickable||6,this._visible=!0,this._culled=!1;var s=this._wire,n=s.style;n.border="solid "+this._thickness+"px "+this._color,n.position="absolute",n["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,n.width="0px",n.height="0px",n.visibility="visible",n.top="0px",n.left="0px",n["-webkit-transform-origin"]="0 0",n["-moz-transform-origin"]="0 0",n["-ms-transform-origin"]="0 0",n["-o-transform-origin"]="0 0",n["transform-origin"]="0 0",n["-webkit-transform"]="rotate(0deg)",n["-moz-transform"]="rotate(0deg)",n["-ms-transform"]="rotate(0deg)",n["-o-transform"]="rotate(0deg)",n.transform="rotate(0deg)",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._wireClickable,a=i.style;a.border="solid "+this._thicknessClickable+"px "+this._color,a.position="absolute",a["z-index"]=void 0===t.zIndex?"2000002":t.zIndex+1,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}get visible(){return"visible"===this._wire.style.visibility}_update(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,s=this._wire.style;s.width=Math.round(e)+"px",s.left=Math.round(this._x1)+"px",s.top=Math.round(this._y1)+"px",s["-webkit-transform"]="rotate("+t+"deg)",s["-moz-transform"]="rotate("+t+"deg)",s["-ms-transform"]="rotate("+t+"deg)",s["-o-transform"]="rotate("+t+"deg)",s.transform="rotate("+t+"deg)";var n=this._wireClickable.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,n){this._x1=e,this._y1=t,this._x2=s,this._y2=n,this._update()}setColor(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}setOpacity(e){this._wire.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}destroy(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}class he{constructor(e,t={}){this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var s=this._dot,n=s.style;n["border-radius"]="25px",n.border="solid 2px white",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,n.width="8px",n.height="8px",n.visibility=!1!==t.visible?"visible":"hidden",n.top="0px",n.left="0px",n["box-shadow"]="0 2px 5px 0 #182A3D;",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._dotClickable,a=i.style;a["border-radius"]="35px",a.border="solid 10px white",a.position="absolute",a["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,a.width="8px",a.height="8px",a.visibility="visible",a.top="0px",a.left="0px",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.borderColor)}setPos(e,t){this._x=e,this._y=t;var s=this._dot.style;s.left=Math.round(e)-4+"px",s.top=Math.round(t)-4+"px";var n=this._dotClickable.style;n.left=Math.round(e)-9+"px",n.top=Math.round(t)-9+"px"}setFillColor(e){this._dot.style.background=e||"lightgreen"}setBorderColor(e){this._dot.style.border="solid 2px"+(e||"black")}setOpacity(e){this._dot.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}destroy(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}class pe{constructor(e,t={}){this._highlightClass="viewer-ruler-label-highlighted",this._prefix=t.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var s=this._label,n=s.style;n["border-radius"]="5px",n.color="white",n.padding="4px",n.border="solid 1px",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,n.width="auto",n.height="auto",n.visibility="visible",n.top="0px",n.left="0px",n["pointer-events"]="all",n.opacity=1,t.onContextMenu,s.innerText="",e.appendChild(s),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&s.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&s.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),t.onMouseWheel&&s.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onContextMenu&&s.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()}))}setPos(e,t){this._x=e,this._y=t;var s=this._label.style;s.left=Math.round(e)-20+"px",s.top=Math.round(t)-12+"px"}setPosOnWire(e,t,s,n){var i=e+.5*(s-e),a=t+.5*(n-t),r=this._label.style;r.left=Math.round(i)-20+"px",r.top=Math.round(a)-12+"px"}setPosBetweenWires(e,t,s,n,i,a){var r=(e+s+i)/3,l=(t+n+a)/3,o=this._label.style;o.left=Math.round(r)-20+"px",o.top=Math.round(l)-12+"px"}setText(e){this._label.innerHTML=this._prefix+(e||"")}setFillColor(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}setBorderColor(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}setOpacity(e){this._label.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}setClickable(e){this._label.style["pointer-events"]=e?"all":"none"}destroy(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}var Ae=A.vec3(),de=A.vec3();class fe extends S{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._color=t.color||e.defaultColor;var s=this.plugin.viewer.scene;this._originMarker=new ce(s,t.origin),this._cornerMarker=new ce(s,t.corner),this._targetMarker=new ce(s,t.target),this._originWorld=A.vec3(),this._cornerWorld=A.vec3(),this._targetWorld=A.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const n=t.onMouseOver?e=>{t.onMouseOver(e,this)}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this)}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._cornerDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._originWire=new ue(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetWire=new ue(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._angleLabel=new pe(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._visible=!1,this._originVisible=!1,this._cornerVisible=!1,this._targetVisible=!1,this._originWireVisible=!1,this._targetWireVisible=!1,this._angleVisible=!1,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._cornerMarker.on("worldPos",(e=>{this._cornerWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.cornerVisible=t.cornerVisible,this.targetVisible=t.targetVisible,this.originWireVisible=t.originWireVisible,this.targetWireVisible=t.targetWireVisible,this.angleVisible=t.angleVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(A.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){const p=-.3,d=this._originMarker.viewPos[2],f=this._cornerMarker.viewPos[2],I=this._targetMarker.viewPos[2];if(d>p||f>p||I>p)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);A.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,s=this._cp,n=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var i=n.top-y.top,a=n.left-y.left,r=e.canvas.boundary,l=r[2],o=r[3],c=0,u=0,h=t.length;u{e.snappedToVertex||e.snappedToEdge?(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.canvasPos,n.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(i=!0,a=e.entity,o.set(e.worldPos),c.set(s),this._mouseState){case 0:this.markerDiv.style.marginLeft=s[0]-5+"px",this.markerDiv.style.marginTop=s[1]-5+"px";break;case 1:this._currentAngleMeasurement&&(this._currentAngleMeasurement.originWireVisible=!0,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.cornerVisible=!0,this._currentAngleMeasurement.angleVisible=!1,this._currentAngleMeasurement.corner.worldPos=e.worldPos,this._currentAngleMeasurement.corner.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer";break;case 2:this._currentAngleMeasurement&&(this._currentAngleMeasurement.targetWireVisible=!0,this._currentAngleMeasurement.targetVisible=!0,this._currentAngleMeasurement.angleVisible=!0,this._currentAngleMeasurement.target.worldPos=e.worldPos,this._currentAngleMeasurement.target.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(r=e.clientX,l=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>r+20||e.clientXl+20||e.clientY{if(i=!1,n&&(n.visible=!0,n.pointerPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!1),this.markerDiv.style.marginLeft="-100px",this.markerDiv.style.marginTop="-100px",this._currentAngleMeasurement){switch(this._mouseState){case 0:this._currentAngleMeasurement.originVisible=!1;break;case 1:this._currentAngleMeasurement.cornerVisible=!1,this._currentAngleMeasurement.originWireVisible=!1,this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1;break;case 2:this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1}t.style.cursor="default"}})),this._active=!0}deactivate(){if(!this._active)return;this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.angleMeasurementsPlugin.viewer.cameraControl;t.off(this._onMouseHoverSurface),t.off(this._onPickedSurface),t.off(this._onHoverNothing),t.off(this._onPickedNothing),this._currentAngleMeasurement=null,this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentAngleMeasurement&&(this._currentAngleMeasurement.destroy(),this._currentAngleMeasurement=null),this._mouseState=0)}destroy(){this.deactivate(),super.destroy()}}class me extends V{constructor(e,t={}){super("AngleMeasurements",e),this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,angleMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get control(){return this._defaultControl||(this._defaultControl=new ye(this,{})),this._defaultControl}get measurements(){return this._measurements}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.corner,n=e.target,i=new fe(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:s.entity,worldPos:s.worldPos},target:{entity:n.entity,worldPos:n.worldPos},visible:e.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(()=>{delete this._measurements[i.id]})),this.fire("measurementCreated",i),i}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{this.plugin.fire("markerClicked",this)}),this._marker.addEventListener("mouseenter",this._onMouseEnterExternalMarker=()=>{this.plugin.fire("markerMouseEnter",this)}),this._marker.addEventListener("mouseleave",this._onMouseLeaveExternalMarker=()=>{this.plugin.fire("markerMouseLeave",this)}),this._markerExternal=!0):(this._markerHTML=t.markerHTML,this._htmlDirty=!0,this._markerExternal=!1),t.labelElement?(this._label=t.labelElement,this._labelExternal=!0):(this._labelHTML=t.labelHTML,this._htmlDirty=!0,this._labelExternal=!1),this._markerShown=!!t.markerShown,this._labelShown=!!t.labelShown,this._values=t.values||{},this._layoutDirty=!0,this._visibilityDirty=!0,this._buildHTML(),this._onTick=this.scene.on("tick",(()=>{this._htmlDirty&&(this._buildHTML(),this._htmlDirty=!1,this._layoutDirty=!0,this._visibilityDirty=!0),(this._layoutDirty||this._visibilityDirty)&&(this._markerShown||this._labelShown)&&(this._updatePosition(),this._layoutDirty=!1),this._visibilityDirty&&(this._marker.style.visibility=this.visible&&this._markerShown?"visible":"hidden",this._label.style.visibility=this.visible&&this._markerShown&&this._labelShown?"visible":"hidden",this._visibilityDirty=!1)})),this.on("canvasPos",(()=>{this._layoutDirty=!0})),this.on("visible",(()=>{this._visibilityDirty=!0})),this.setMarkerShown(!1!==t.markerShown),this.setLabelShown(t.labelShown),this.eye=t.eye?t.eye.slice():null,this.look=t.look?t.look.slice():null,this.up=t.up?t.up.slice():null,this.projection=t.projection}_buildHTML(){if(!this._markerExternal){this._marker&&(this._container.removeChild(this._marker),this._marker=null);let e=this._markerHTML||"

";g.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._marker=t.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(()=>{this.plugin.fire("markerClicked",this)})),this._marker.addEventListener("mouseenter",(()=>{this.plugin.fire("markerMouseEnter",this)})),this._marker.addEventListener("mouseleave",(()=>{this.plugin.fire("markerMouseLeave",this)})),this._marker.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);let e=this._labelHTML||"

";g.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._label=t.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}}_updatePosition(){const e=this.scene.canvas.boundary,t=e[0],s=e[1],n=this.canvasPos;this._marker.style.left=Math.floor(t+n[0])-12+"px",this._marker.style.top=Math.floor(s+n[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+n[0]+20)+"px",this._label.style.top=Math.floor(s+n[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}_renderTemplate(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){const s=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),s)}return e}setMarkerShown(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}getMarkerShown(){return this._markerShown}setLabelShown(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}getLabelShown(){return this._labelShown}setField(e,t){this._values[e]=t||"",this._htmlDirty=!0}getField(e){return this._values[e]}setValues(e){for(var t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setField(t,s)}}getValues(){return this._values}destroy(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),super.destroy()}}const we=A.vec3(),ge=A.vec3(),Ee=A.vec3();class Te extends V{constructor(e,t){super("Annotations",e),this._labelHTML=t.labelHTML||"
",this._markerHTML=t.markerHTML||"
",this._container=t.container||document.body,this._values=t.values||{},this.annotations={},this.surfaceOffset=t.surfaceOffset}getContainerElement(){return this._container}send(e,t){if("clearAnnotations"===e)this.clear()}set surfaceOffset(e){null==e&&(e=.3),this._surfaceOffset=e}get surfaceOffset(){return this._surfaceOffset}createAnnotation(e){var t,s;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){const n=e.pickResult;if(n.worldPos&&n.worldNormal){const e=A.normalizeVec3(n.worldNormal,we),i=A.mulVec3Scalar(e,this._surfaceOffset,ge);t=A.addVec3(n.worldPos,i,Ee),s=n.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,s=e.entity;var n=null;e.markerElementId&&((n=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var i=null;e.labelElementId&&((i=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));const a=new ve(this.viewer.scene,{id:e.id,plugin:this,entity:s,worldPos:t,container:this._container,markerElement:n,labelElement:i,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:g.apply(e.values,g.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[a.id]=a,a.on("destroyed",(()=>{delete this.annotations[a.id],this.fire("annotationDestroyed",a.id)})),this.fire("annotationCreated",a.id),a}destroyAnnotation(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}clear(){const e=Object.keys(this.annotations);for(var t=0,s=e.length;t
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}_injectDefaultCSS(){const e="xeokit-spinner-css";if(document.getElementById(e))return;const t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}_adjustPosition(){if(this._isCustom)return;const e=this._canvas,t=this._element,s=t.style;s.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",s.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}set processes(e){if(e=e||0,this._processes===e)return;if(e<0)return;const t=this._processes;this._processes=e;const s=this._element;s&&(s.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}get processes(){return this._processes}_destroy(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);const e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}const De=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class Pe extends S{constructor(e,t={}){super(e,t),this._backgroundColor=A.vec3([t.backgroundColor?t.backgroundColor[0]:1,t.backgroundColor?t.backgroundColor[1]:1,t.backgroundColor?t.backgroundColor[2]:1]),this._backgroundColorFromAmbientLight=!!t.backgroundColorFromAmbientLight,this.canvas=t.canvas,this.gl=null,this.webgl2=!1,this.transparent=!!t.transparent,this.contextAttr=t.contextAttr||{},this.contextAttr.alpha=this.transparent,this.contextAttr.preserveDrawingBuffer=!!this.contextAttr.preserveDrawingBuffer,this.contextAttr.stencil=!1,this.contextAttr.premultipliedAlpha=!!this.contextAttr.premultipliedAlpha,this.contextAttr.antialias=!1!==this.contextAttr.antialias,this.resolutionScale=t.resolutionScale,this.canvas.width=Math.round(this.canvas.clientWidth*this._resolutionScale),this.canvas.height=Math.round(this.canvas.clientHeight*this._resolutionScale),this.boundary=[this.canvas.offsetLeft,this.canvas.offsetTop,this.canvas.clientWidth,this.canvas.clientHeight],this._initWebGL(t);const s=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),s.scene._webglContextLost(),s.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){s._initWebGL(),s.gl&&(s.scene._webglContextRestored(s.gl),s.fire("webglcontextrestored",s.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let n=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(n=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{n&&(n=!1,s.canvas.width=Math.round(s.canvas.clientWidth*s._resolutionScale),s.canvas.height=Math.round(s.canvas.clientHeight*s._resolutionScale),s.boundary[0]=s.canvas.offsetLeft,s.boundary[1]=s.canvas.offsetTop,s.boundary[2]=s.canvas.clientWidth,s.boundary[3]=s.canvas.clientHeight,s.fire("boundary",s.boundary))})),this._spinner=new be(this.scene,{canvas:this.canvas,elementId:t.spinnerElementId})}get type(){return"Canvas"}get backgroundColorFromAmbientLight(){return this._backgroundColorFromAmbientLight}set backgroundColorFromAmbientLight(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}get resolutionScale(){return this._resolutionScale}set resolutionScale(e){if((e=e||1)===this._resolutionScale)return;this._resolutionScale=e;const t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}get spinner(){return this._spinner}_createCanvas(){const e="xeokit-canvas-"+A.createUUID(),t=document.getElementsByTagName("body")[0],s=document.createElement("div"),n=s.style;n.height="100%",n.width="100%",n.padding="0",n.margin="0",n.background="rgba(0,0,0,0);",n.float="left",n.left="0",n.top="0",n.position="absolute",n.opacity="1.0",n["z-index"]="-10000",s.innerHTML+='',t.appendChild(s),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,s=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,s+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:s}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?Ce.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?Ce.FS_MAX_FLOAT_PRECISION="mediump":Ce.FS_MAX_FLOAT_PRECISION="lowp":Ce.FS_MAX_FLOAT_PRECISION="mediump",Ce.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),Ce.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),Ce.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),Ce.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),Ce.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Ce.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),Ce.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),Ce.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),Ce.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),Ce.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){Ce.SUPPORTED_EXTENSIONS[e]=!0})))}class Be{constructor(){this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}get canvasPos(){return this._gotCanvasPos?this._canvasPos:null}set canvasPos(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}get origin(){return this._gotOrigin?this._origin:null}set origin(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}get direction(){return this._gotDirection?this._direction:null}set direction(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}get indices(){return this.entity&&this._gotIndices?this._indices:null}set indices(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}get localPos(){return this.entity&&this._gotLocalPos?this._localPos:null}set localPos(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}get snappedCanvasPos(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null}set snappedCanvasPos(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}get worldPos(){return this._gotWorldPos?this._worldPos:null}set worldPos(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}get viewPos(){return this.entity&&this._gotViewPos?this._viewPos:null}set viewPos(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}get bary(){return this.entity&&this._gotBary?this._bary:null}set bary(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}get worldNormal(){return this.entity&&this._gotWorldNormal?this._worldNormal:null}set worldNormal(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}get uv(){return this.entity&&this._gotUV?this._uv:null}set uv(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}reset(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}class Oe{constructor(e,t,s){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,s),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=s.split("\n"),n=[];for(let e=0;e0&&"/"===s.charAt(n+1)&&(s=s.substring(0,n)),t.push(s);return t.join("\n")}function Me(e){console.error(e.join("\n"))}class Fe{constructor(e,t){this.id=xe.addItem({}),this.source=t,this.init(e)}init(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new Oe(e,e.VERTEX_SHADER,Le(this.source.vertex)),this._fragmentShader=new Oe(e,e.FRAGMENT_SHADER,Le(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Me(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Me(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Me(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Me(this.errors);let t,s,n,i,a;if(this.compiled=!0,this.handle=e.createProgram(),!this.handle)return void(this.errors=["Failed to allocate program"]);if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void Me(this.errors);const r=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(s=0;sthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}setData(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}bind(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}unbind(){this.allocated&&this._gl.bindBuffer(this.type,null)}destroy(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}class Ue{constructor(e,t){this.scene=e,this.aabb=A.AABB3(),this.origin=A.vec3(t),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}addMarker(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}markerWorldPosUpdated(e){if(!this.markers[e.id])return;const t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}removeMarker(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}update(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}_buildMarkerList(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}_buildPositions(){let e=0;for(let t=0;t-t){s._setVisible(!1);continue}const r=s.canvasPos,l=r[0],o=r[1];l+10<0||o+10<0||l-10>n||o-10>i?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[a++]=l,this.pixels[a++]=o):s._setVisible(!0):s._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let s=0;s{this._occlusionTestListDirty=!0})),this._onCameraProjMatrix=e.camera.on("projMatrix",(()=>{this._occlusionTestListDirty=!0})),this._onCanvasBoundary=e.canvas.on("boundary",(()=>{this._occlusionTestListDirty=!0}))}addMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s||(s=new Ue(this._scene,e.origin),this._occlusionLayers[s.originHash]=s,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s,this._occlusionTestListDirty=!0}markerWorldPosUpdated(e){const t=this._markersToOcclusionLayersMap[e.id];if(!t)return void e.error("Marker has not been added to OcclusionTester");const s=e.origin.join();if(s!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let n=this._occlusionLayers[s];n||(n=new Ue(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),n.addMarker(e),this._markersToOcclusionLayersMap[e.id]=n}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s&&(1===s.numMarkers?(s.destroy(),delete this._occlusionLayers[s.originHash],this._occlusionLayersListDirty=!0):s.removeMarker(e),delete this._markersToOcclusionLayersMap[e.id])}get needOcclusionTest(){return this._occlusionTestListDirty}bindRenderBuf(){const e=[this._scene.canvas.canvas.id,this._scene._sectionPlanesState.getHash()].join(";");if(e!==this._shaderSourceHash&&(this._shaderSourceHash=e,this._shaderSourceDirty=!0),this._shaderSourceDirty&&(this._buildShaderSource(),this._shaderSourceDirty=!1,this._programDirty=!0),this._programDirty&&(this._buildProgram(),this._programDirty=!1,this._occlusionTestListDirty=!0),this._occlusionLayersListDirty&&(this._buildOcclusionLayersList(),this._occlusionLayersListDirty=!1),this._occlusionTestListDirty){for(let e=0,t=this._occlusionLayersList.length;e0,s=[];return s.push("#version 300 es"),s.push("// OcclusionTester vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("vec4 worldPosition = vec4(position, 1.0); "),s.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&s.push(" vWorldPosition = worldPosition;"),s.push(" vec4 clipPos = projMatrix * viewPosition;"),s.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?s.push("vFragDepth = 1.0 + clipPos.w;"):s.push("clipPos.z += -0.001;"),s.push(" gl_Position = clipPos;"),s.push("}"),s}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,s=t.sectionPlanes.length>0,n=[];if(n.push("#version 300 es"),n.push("// OcclusionTester fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),n.push("}"),n}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Fe(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=n.sectionPlanes;for(let n=0;n{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=A.mat4();return()=>(e&&A.inverseMat4(n.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,n=this._scene,i=n.sao,a=t.drawingBufferWidth,r=t.drawingBufferHeight,l=n.camera.project._state,o=l.near,c=l.far,u=l.matrix,h=this._getInverseProjectMat(),p=Math.random(),d="perspective"===n.camera.projection;ke[0]=a,ke[1]=r,t.viewport(0,0,a,r),t.clearColor(0,0,0,1),t.disable(t.DEPTH_TEST),t.disable(t.BLEND),t.frontFace(t.CCW),t.clear(t.COLOR_BUFFER_BIT),s.bind(),t.uniform1f(this._uCameraNear,o),t.uniform1f(this._uCameraFar,c),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,u),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,h),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,i.scale*(c/5)),t.uniform1f(this._uIntensity,i.intensity),t.uniform1f(this._uBias,i.bias),t.uniform1f(this._uKernelRadius,i.kernelRadius),t.uniform1f(this._uMinResolution,i.minResolution),t.uniform2fv(this._uViewport,ke),t.uniform1f(this._uRandomSeed,p);const f=e.getDepthTexture();s.bindTexture(this._uDepthTexture,f,0),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),t.drawElements(t.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}_build(){let e=!1;const t=this._scene.sao;if(t.numSamples!==this._numSamples&&(this._numSamples=Math.floor(t.numSamples),e=!0),!e)return;const s=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Fe(s,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV; \n \n out vec2 vUV;\n \n void main () {\n gl_Position = vec4(aPosition, 1.0);\n vUV = aUV;\n }"],fragment:[`#version 300 es \n precision highp float;\n precision highp int; \n \n #define NORMAL_TEXTURE 0\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n #define NUM_SAMPLES ${this._numSamples}\n #define NUM_RINGS 4 \n \n in vec2 vUV;\n \n uniform sampler2D uDepthTexture;\n \n uniform float uCameraNear;\n uniform float uCameraFar;\n uniform mat4 uProjectMatrix;\n uniform mat4 uInverseProjectMatrix;\n \n uniform bool uPerspective;\n\n uniform float uScale;\n uniform float uIntensity;\n uniform float uBias;\n uniform float uKernelRadius;\n uniform float uMinResolution;\n uniform vec2 uViewport;\n uniform float uRandomSeed;\n\n float pow2( const in float x ) { return x*x; }\n \n highp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract(sin(sn) * c);\n }\n\n vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n const float packUpscale = 256. / 255.;\n const float unpackDownScale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. ); \n\n const float shiftRights = 1. / 256.;\n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float unpackRGBAToFloat( const in vec4 v ) { \n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n }\n\n float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n }\n \n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n if (uPerspective) {\n return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );\n } else {\n return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );\n }\n }\n\n vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {\n \tfloat clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];\n \tvec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );\n \tclipPosition *= clipW; \n \treturn ( uInverseProjectMatrix * clipPosition ).xyz;\n }\n\n vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) { \n return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n }\n\n float scaleDividedByCameraFar;\n float minResolutionMultipliedByCameraFar;\n\n float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n \tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n \tfloat viewDistance = length( viewDelta );\n \tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n \treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );\n }\n\n const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n float getAmbientOcclusion( const in vec3 centerViewPosition ) {\n \n \tscaleDividedByCameraFar = uScale / uCameraFar;\n \tminResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;\n \tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );\n\n \tfloat angle = rand( vUV + uRandomSeed ) * PI2;\n \tvec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;\n \tvec2 radiusStep = radius;\n\n \tfloat occlusionSum = 0.0;\n \tfloat weightSum = 0.0;\n\n \tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n \t\tvec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;\n \t\tradius += radiusStep;\n \t\tangle += ANGLE_STEP;\n\n \t\tfloat sampleDepth = getDepth( sampleUv );\n \t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }`]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const n=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new He(s,s.ARRAY_BUFFER,i,i.length,3,s.STATIC_DRAW),this._uvBuf=new He(s,s.ARRAY_BUFFER,n,n.length,2,s.STATIC_DRAW),this._indicesBuf=new He(s,s.ELEMENT_ARRAY_BUFFER,a,a.length,1,s.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}destroy(){this._program&&(this._program.destroy(),this._program=null)}}const We=new Float32Array(Je(17,[0,1])),ze=new Float32Array(Je(17,[1,0])),Ke=new Float32Array(function(e,t){const s=[];for(let n=0;n<=e;n++)s.push(qe(n,t));return s}(17,4)),Ye=new Float32Array(2);class Xe{constructor(e){this._scene=e,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}init(){const e=this._scene.canvas.gl;if(this._program=new Fe(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS 16\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }"]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const t=new Float32Array([1,1,0,1,0,0,1,0]),s=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),n=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new He(e,e.ARRAY_BUFFER,s,s.length,3,e.STATIC_DRAW),this._uvBuf=new He(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new He(e,e.ELEMENT_ARRAY_BUFFER,n,n.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}render(e,t,s){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=A.mat4();return()=>(e&&A.inverseMat4(a.camera.projMatrix,t),t)})());const n=this._scene.canvas.gl,i=this._program,a=this._scene,r=n.drawingBufferWidth,l=n.drawingBufferHeight,o=a.camera.project._state,c=o.near,u=o.far;n.viewport(0,0,r,l),n.clearColor(0,0,0,1),n.enable(n.DEPTH_TEST),n.disable(n.BLEND),n.frontFace(n.CCW),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),i.bind(),Ye[0]=r,Ye[1]=l,n.uniform2fv(this._uViewport,Ye),n.uniform1f(this._uCameraNear,c),n.uniform1f(this._uCameraFar,u),n.uniform1f(this._uDepthCutoff,.01),0===s?n.uniform2fv(this._uSampleOffsets,ze):n.uniform2fv(this._uSampleOffsets,We),n.uniform1fv(this._uSampleWeights,Ke);const h=e.getDepthTexture(),p=t.getTexture();i.bindTexture(this._uDepthTexture,h,0),i.bindTexture(this._uOcclusionTexture,p,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),n.drawElements(n.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function qe(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Je(e,t){const s=[];for(let n=0;n<=e;n++)s.push(t[0]*n),s.push(t[1]*n);return s}class Ze{constructor(e,t,s){s=s||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=s.size,this._hasDepthTexture=!!s.depthTexture}setSize(e){this.size=e}webglContextRestored(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}bind(...e){if(this._touch(...e),this.bound)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}createTexture(e,t,s=null){const n=this.gl,i=n.createTexture();return n.bindTexture(n.TEXTURE_2D,i),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),s?n.texStorage2D(n.TEXTURE_2D,1,s,e,t):n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,t,0,n.RGBA,n.UNSIGNED_BYTE,null),i}_touch(...e){let t,s;const n=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=n.drawingBufferWidth,s=n.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>n.deleteTexture(e))),n.deleteFramebuffer(this.buffer.framebuf),n.deleteRenderbuffer(this.buffer.renderbuf)}const i=[];let a;e.length>0?i.push(...e.map((e=>this.createTexture(t,s,e)))):i.push(this.createTexture(t,s)),this._hasDepthTexture&&(a=n.createTexture(),n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texImage2D(n.TEXTURE_2D,0,n.DEPTH_COMPONENT32F,t,s,0,n.DEPTH_COMPONENT,n.FLOAT,null));const r=n.createRenderbuffer();n.bindRenderbuffer(n.RENDERBUFFER,r),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT32F,t,s);const l=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,l);for(let e=0;e0&&n.drawBuffers(i.map(((e,t)=>n.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,a,0):n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,r),n.bindTexture(n.TEXTURE_2D,null),n.bindRenderbuffer(n.RENDERBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,l),!n.isFramebuffer(l))throw"Invalid framebuffer";n.bindFramebuffer(n.FRAMEBUFFER,null);const o=n.checkFramebufferStatus(n.FRAMEBUFFER);switch(o){case n.FRAMEBUFFER_COMPLETE:break;case n.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case n.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+o}this.buffer={framebuf:l,renderbuf:r,texture:i[0],textures:i,depthTexture:a,width:t,height:s},this.bound=!1}clear(){if(!this.bound)throw"Render buffer not bound";const e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}read(e,t,s=null,n=null,i=Uint8Array,a=4,r=0){const l=e,o=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,c=new i(a),u=this.gl;return u.readBuffer(u.COLOR_ATTACHMENT0+r),u.readPixels(l,o,1,1,s||u.RGBA,n||u.UNSIGNED_BYTE,c,0),c}readArray(e=null,t=null,s=Uint8Array,n=4,i=0){const a=new s(this.buffer.width*this.buffer.height*n),r=this.gl;return r.readBuffer(r.COLOR_ATTACHMENT0+i),r.readPixels(0,0,this.buffer.width,this.buffer.height,e||r.RGBA,t||r.UNSIGNED_BYTE,a,0),a}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,n=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const r=this.buffer.width,l=this.buffer.height,o=l/2|0,c=4*r,u=new Uint8Array(4*r);for(let e=0;ee.deleteTexture(t))),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}class $e{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let n=s[e];return n||(n=new Ze(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=n),n}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function et(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let s;switch(t){case"WEBGL_depth_texture":s=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=e.getExtension(t)}return e._cachedExtensions[t]=s,s}const tt=function(t,s){s=s||{};const n=new Re(t),i=t.canvas.canvas,a=t.canvas.gl,r=!!s.transparent,l=s.alphaDepthMask,o=new e({});let c={},u={},h=!0,p=!0,d=!0,f=!0,I=!0,m=!0,v=!0,w=!0;const g=new $e(t);let E=!1;const T=new Qe(t),b=new Xe(t);function D(){h&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableMap,n=t.drawableListPreCull;let i=0;for(let e in s)s.hasOwnProperty(e)&&(n[i++]=s[e]);n.length=i}}(),h=!1,p=!0),p&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),p=!1,d=!0),d&&function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableListPreCull,n=t.drawableList;let i=0;for(let e=0,t=s.length;e0)for(n.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||k>0||H>0||U>0){if(a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,l||a.depthMask(!1),(H>0||U>0)&&a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),U>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(n.lastProgramId=null,t.highlightMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.enable(a.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||J>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),J>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=p.size[0],n=t%s-Math.floor(s/2),i=Math.floor(t/s)-Math.floor(s/2),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2));R.push({x:n,y:i,dist:a,isVertex:r&&l?m[e+3]>y.length/2:r,result:[m[e+0],m[e+1],m[e+2],m[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[w[e+0],w[e+1],w[e+2],w[e+3]]})}let O=null,S=null,N=null,x=null;if(R.length>0){R.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),x=R[0].isVertex?"vertex":"edge";const e=R[0].result,t=R[0].normal,s=R[0].id,n=y[e[3]],i=n.origin,a=n.coordinateScale;S=A.normalizeVec3([t[0]/A.MAX_INT,t[1]/A.MAX_INT,t[2]/A.MAX_INT]),O=[e[0]*a[0]+i[0],e[1]*a[1]+i[1],e[2]*a[2]+i[2]],N=o.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===E&&null==O)return null;let L=null;null!==O&&(L=t.camera.projectWorldPos(O));const M=N&&N.delegatePickedEntity?N.delegatePickedEntity():N;return u.reset(),u.snappedToEdge="edge"===x,u.snappedToVertex="vertex"===x,u.worldPos=O,u.worldNormal=S,u.entity=M,u.canvasPos=s,u.snappedCanvasPos=L||s,u}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new Ve(t,g),this._occlusionTester.addMarker(e),t.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){D(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.clearColor(0,0,0,0),a.enable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.disable(a.BLEND),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);for(let e in c)if(c.hasOwnProperty(e)){const t=c[e].drawableList;for(let e=0,s=t.length;e{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!0:e.keyCode===this.KEY_ALT?this.altDown=!0:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!0),this.keyDown[e.keyCode]=!0,this.fire("keydown",e.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=e=>{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!1:e.keyCode===this.KEY_ALT?this.altDown=!1:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!1),this.keyDown[e.keyCode]=!1,this.fire("keyup",e.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=e=>{this.enabled&&(this.mouseover=!0,this._getMouseCanvasPos(e),this.fire("mouseenter",this.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=e=>{this.enabled&&(this.mouseover=!1,this._getMouseCanvasPos(e),this.fire("mouseleave",this.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!0;break;case 2:this.mouseDownMiddle=!0;break;case 3:this.mouseDownRight=!0}this._getMouseCanvasPos(e),this.element.focus(),this.fire("mousedown",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!1;break;case 2:this.mouseDownMiddle=!1;break;case 3:this.mouseDownRight=!1}this.fire("mouseup",this.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("click",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("dblclick",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}});const e=this.scene.tickify((()=>this.fire("mousemove",this.mouseCanvasPos,!0)));this.element.addEventListener("mousemove",this._mouseMoveListener=t=>{this.enabled&&(this._getMouseCanvasPos(t),e(),this.mouseover&&t.preventDefault())});const t=this.scene.tickify((e=>{this.fire("mousewheel",e,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=(e,s)=>{if(!this.enabled)return;const n=Math.max(-1,Math.min(1,40*-e.deltaY));t(n)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(n=>{e>=n[0]-s&&e<=n[0]+s&&t>=n[1]-s&&t<=n[1]+s&&this.fire("mouseclicked",n,!0)}))}this._eventsBound=!0}_unbindEvents(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}_getMouseCanvasPos(e){if(e){let t=e.target,s=0,n=0;for(;t.offsetParent;)s+=t.offsetLeft,n+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-n}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}setEnabled(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}getEnabled(){return this.enabled}setKeyboardEnabled(e){this.keyboardEnabled=e}getKeyboardEnabled(){return this.keyboardEnabled}destroy(){super.destroy(),this._unbindEvents()}}const nt=new e({});class it{constructor(e){this.id=nt.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){nt.removeItem(this.id)}}class at extends S{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new it({boundary:[0,0,100,100]}),this.boundary=t.boundary,this.autoBoundary=t.autoBoundary}set boundary(e){if(!this._autoBoundary){if(!e){const t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}get boundary(){return this._state.boundary}set autoBoundary(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){const t=e[2],s=e[3];this._state.boundary=[0,0,t,s],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}get autoBoundary(){return this._autoBoundary}_getState(){return this._state}destroy(){super.destroy(),this._state.destroy()}}class rt extends S{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this._fov=60,this._canvasResized=this.scene.canvas.on("boundary",this._needUpdate,this),this.fov=t.fov,this.fovAxis=t.fovAxis,this.near=t.near,this.far=t.far}_update(){const e=this.scene.canvas.boundary,t=e[2]/e[3],s=this._fovAxis;let n=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(n/=t),n=Math.min(n,120),A.perspectiveMat4(n*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}set fov(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}get fov(){return this._fov}set fovAxis(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}get fovAxis(){return this._fovAxis}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class lt extends S{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.scale=t.scale,this.near=t.near,this.far=t.far,this._onCanvasBoundary=this.scene.canvas.on("boundary",this._needUpdate,this)}_update(){const e=this.scene,t=.5*this._scale,s=e.canvas.boundary,n=s[2],i=s[3],a=n/i;let r,l,o,c;n>i?(r=-t,l=t,o=t/a,c=-t/a):(r=-t*a,l=t*a,o=t,c=-t),A.orthoMat4c(r,l,c,o,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set scale(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}get scale(){return this._scale}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class ot extends S{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:1e4}),this._left=-1,this._right=1,this._bottom=-1,this._top=1,this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.left=t.left,this.right=t.right,this.bottom=t.bottom,this.top=t.top,this.near=t.near,this.far=t.far}_update(){A.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set left(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}get left(){return this._left}set right(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}get right(){return this._right}set top(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}get top(){return this._top}set bottom(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}get bottom(){return this._bottom}set near(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}get near(){return this._state.near}set far(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class ct extends S{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4()}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!1,this.matrix=t.matrix}set matrix(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}get matrix(){return this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy()}}const ut=A.vec3(),ht=A.vec3(),pt=A.vec3(),At=A.vec3(),dt=A.vec3(),ft=A.vec3(),It=A.vec4(),yt=A.vec4(),mt=A.vec4(),vt=A.mat4(),wt=A.mat4(),gt=A.vec3(),Et=A.vec3(),Tt=A.vec3(),bt=A.vec3();class Dt extends S{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new it({deviceMatrix:A.mat4(),hasDeviceMatrix:!1,matrix:A.mat4(),normalMatrix:A.mat4(),inverseMatrix:A.mat4()}),this._perspective=new rt(this),this._ortho=new lt(this),this._frustum=new ot(this),this._customProjection=new ct(this),this._project=this._perspective,this._eye=A.vec3([0,0,10]),this._look=A.vec3([0,0,0]),this._up=A.vec3([0,1,0]),this._worldUp=A.vec3([0,1,0]),this._worldRight=A.vec3([1,0,0]),this._worldForward=A.vec3([0,0,-1]),this.deviceMatrix=t.deviceMatrix,this.eye=t.eye,this.look=t.look,this.up=t.up,this.worldAxis=t.worldAxis,this.gimbalLock=t.gimbalLock,this.constrainPitch=t.constrainPitch,this.projection=t.projection,this._perspective.on("matrix",(()=>{"perspective"===this._projectionType&&this.fire("projMatrix",this._perspective.matrix)})),this._ortho.on("matrix",(()=>{"ortho"===this._projectionType&&this.fire("projMatrix",this._ortho.matrix)})),this._frustum.on("matrix",(()=>{"frustum"===this._projectionType&&this.fire("projMatrix",this._frustum.matrix)})),this._customProjection.on("matrix",(()=>{"customProjection"===this._projectionType&&this.fire("projMatrix",this._customProjection.matrix)}))}_update(){const e=this._state;let t;"ortho"===this.projection?(A.subVec3(this._eye,this._look,gt),A.normalizeVec3(gt,Et),A.mulVec3Scalar(Et,1e3,Tt),A.addVec3(this._look,Tt,bt),t=bt):t=this._eye,e.hasDeviceMatrix?(A.lookAtMat4v(t,this._look,this._up,wt),A.mulMat4(e.deviceMatrix,wt,e.matrix)):A.lookAtMat4v(t,this._look,this._up,e.matrix),A.inverseMat4(this._state.matrix,this._state.inverseMatrix),A.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}orbitYaw(e){let t=A.subVec3(this._eye,this._look,ut);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,vt),t=A.transformPoint3(vt,t,ht),this.eye=A.addVec3(this._look,t,pt),this.up=A.transformPoint3(vt,this._up,At)}orbitPitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._eye,this._look,ut);const s=A.cross3Vec3(A.normalizeVec3(t,ht),A.normalizeVec3(this._up,pt));A.rotationMat4v(.0174532925*e,s,vt),t=A.transformPoint3(vt,t,At),this.up=A.transformPoint3(vt,this._up,dt),this.eye=A.addVec3(t,this._look,ft)}yaw(e){let t=A.subVec3(this._look,this._eye,ut);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,vt),t=A.transformPoint3(vt,t,ht),this.look=A.addVec3(t,this._eye,pt),this._gimbalLock&&(this.up=A.transformPoint3(vt,this._up,At))}pitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._look,this._eye,ut);const s=A.cross3Vec3(A.normalizeVec3(t,ht),A.normalizeVec3(this._up,pt));A.rotationMat4v(.0174532925*e,s,vt),this.up=A.transformPoint3(vt,this._up,ft),t=A.transformPoint3(vt,t,At),this.look=A.addVec3(t,this._eye,dt)}pan(e){const t=A.subVec3(this._eye,this._look,ut),s=[0,0,0];let n;if(0!==e[0]){const i=A.cross3Vec3(A.normalizeVec3(t,[]),A.normalizeVec3(this._up,ht));n=A.mulVec3Scalar(i,e[0]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]}0!==e[1]&&(n=A.mulVec3Scalar(A.normalizeVec3(this._up,pt),e[1]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),0!==e[2]&&(n=A.mulVec3Scalar(A.normalizeVec3(t,At),e[2]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),this.eye=A.addVec3(this._eye,s,dt),this.look=A.addVec3(this._look,s,ft)}zoom(e){const t=A.subVec3(this._eye,this._look,ut),s=Math.abs(A.lenVec3(t,ht)),n=Math.abs(s+e);if(n<.5)return;const i=A.normalizeVec3(t,pt);this.eye=A.addVec3(this._look,A.mulVec3Scalar(i,n),At)}set eye(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}get eye(){return this._eye}set look(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}get look(){return this._look}set up(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}get up(){return this._up}set deviceMatrix(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}get deviceMatrix(){return this._state.deviceMatrix}set worldAxis(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=A.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}get worldAxis(){return this._worldAxis}get worldUp(){return this._worldUp}get xUp(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}get yUp(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}get zUp(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}get worldRight(){return this._worldRight}get worldForward(){return this._worldForward}set gimbalLock(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}get gimbalLock(){return this._gimbalLock}set constrainPitch(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}get eyeLookDist(){return A.lenVec3(A.subVec3(this._look,this._eye,ut))}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get viewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get normalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get viewNormalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get inverseViewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}get projMatrix(){return this[this.projection].matrix}get perspective(){return this._perspective}get ortho(){return this._ortho}get frustum(){return this._frustum}get customProjection(){return this._customProjection}set projection(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}get projection(){return this._projectionType}get project(){return this._project}projectWorldPos(e){const t=It,s=yt,n=mt;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,A.mulMat4v4(this.viewMatrix,t,s),A.mulMat4v4(this.projMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1;const i=this.scene.canvas.canvas,a=i.offsetWidth/2,r=i.offsetHeight/2;return[n[0]*a+a,n[1]*r+r]}destroy(){super.destroy(),this._state.destroy()}}class Pt extends S{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class Rt extends Pt{get type(){return"DirLight"}constructor(e,t={}){super(e,t),this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const s=this.scene.camera,n=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=n.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new it({type:"dir",dir:A.vec3([1,1,1]),color:A.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=A.identityMat4());const e=this.scene.camera,t=this._state.dir,s=e.look,n=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],i=[0,1,0];A.lookAtMat4v(n,s,i,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=A.identityMat4()),A.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new Ze(this.scene.canvas.canvas,this.scene.canvas.gl,{size:[1024,1024]})),this._shadowRenderBuf)}),this.dir=t.dir,this.color=t.color,this.intensity=t.intensity,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set dir(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get dir(){return this._state.dir}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}class Ct extends Pt{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:A.vec3([.7,.7,.7]),intensity:1},this.color=t.color,this.intensity=t.intensity,this.scene._lightCreated(this)}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}get intensity(){return this._state.intensity}destroy(){super.destroy(),this.scene._lightDestroyed(this)}}class _t extends S{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),y.memory.meshes++}destroy(){super.destroy(),y.memory.meshes--}}var Bt=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}();const Ot=function(){const e=A.mat4(),t=A.mat4();return function(s,n){n=n||A.mat4();const i=s[0],a=s[1],r=s[2],l=s[3]-i,o=s[4]-a,c=s[5]-r,u=65535;return A.identityMat4(e),A.translationMat4v(s,e),A.identityMat4(t),A.scalingMat4v([l/u,o/u,c/u],t),A.mulMat4(e,t,n),n}}();var St=function(){const e=A.mat4(),t=A.mat4();return function(s,n,i){const a=new Uint16Array(s.length),r=new Float32Array([i[0]!==n[0]?65535/(i[0]-n[0]):0,i[1]!==n[1]?65535/(i[1]-n[1]):0,i[2]!==n[2]?65535/(i[2]-n[2]):0]);let l;for(l=0;l=0?1:-1),t=(1-Math.abs(i))*(a>=0?1:-1);i=e,a=t}return new Int8Array([Math[s](127.5*i+(i<0?-1:0)),Math[n](127.5*a+(a<0?-1:0))])}function Lt(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}function Mt(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Ft={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let n,i;for(n=0;n<3;n++)t[n]=Number.MAX_VALUE,s[n]=-Number.MAX_VALUE;for(n=0;nr&&(i=s,r=a),s=xt(e,l,"floor","ceil"),n=Lt(s),a=Mt(e,l,n),a>r&&(i=s,r=a),s=xt(e,l,"ceil","ceil"),n=Lt(s),a=Mt(e,l,n),a>r&&(i=s,r=a),t[l]=i[0],t[l+1]=i[1];return t},decompressNormals:function(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t},decompressNormal:function(e,t){let s=e[0],n=e[1];s=(2*s+1)/255,n=(2*n+1)/255;const i=1-Math.abs(s)-Math.abs(n);i<0&&(s=(1-Math.abs(n))*(s>=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t}},Ht=y.memory,Ut=A.AABB3();class Gt extends _t{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new it({compressGeometry:!!t.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._edgeIndicesBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._aabbDirty=!0,this._boundingSphere=!0,this._aabb=null,this._aabbDirty=!0,this._obb=null,this._obbDirty=!0;const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Ft.getPositionsBounds(t.positions),n=Ft.compressPositions(t.positions,e.min,e.max);s.positions=n.quantized,s.positionsDecodeMatrix=n.decodeMatrix}else s.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(s.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Ft.getUVBounds(t.uv),n=Ft.compressUVs(t.uv,e.min,e.max);s.uv=n.quantized,s.uvDecodeMatrix=n.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Ft.compressNormals(t.normals):s.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(s.indices=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)),this._buildHash(),Ht.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Ht.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new He(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Ht.positions+=e.positionsBuf.numItems),e.normals){let s=e.compressGeometry;e.normalsBuf=new He(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,s),Ht.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new He(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Ht.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new He(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Ht.uvs+=e.uvBuf.numItems)}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}_getPickTrianglePositions(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}_getPickTriangleColors(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}_buildEdgeIndices(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=Bt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,s,s.length,1,t.STATIC_DRAW),Ht.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=A.buildPickTriangles(e.positions,e.indices,e.compressGeometry),n=s.positions,i=s.colors;this._pickTrianglePositionsBuf=new He(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Ht.positions+=this._pickTrianglePositionsBuf.numItems,Ht.colors+=this._pickTriangleColorsBuf.numItems}_buildPickVertexVBOs(){}_webglContextLost(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}_webglContextRestored(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}get primitive(){return this._state.primitiveName}get compressGeometry(){return this._state.compressGeometry}get positions(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Ft.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(e){const t=this._state,s=t.positions;if(s)if(s.length===e.length){if(this._state.compressGeometry){const s=Ft.getPositionsBounds(e),n=Ft.compressPositions(e,s.min,s.max);e=n.quantized,t.positionsDecodeMatrix=n.decodeMatrix}s.set(e),t.positionsBuf&&t.positionsBuf.setData(s),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}get normals(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){const e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Ft.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}}set normals(e){if(this._state.compressGeometry)return void this.error("can't update geometry normals - quantized geometry is immutable");const t=this._state,s=t.normals;s?s.length===e.length?(s.set(e),t.normalsBuf&&t.normalsBuf.setData(s),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}get uv(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Ft.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null}set uv(e){if(this._state.compressGeometry)return void this.error("can't update geometry UVs - quantized geometry is immutable");const t=this._state,s=t.uv;s?s.length===e.length?(s.set(e),t.uvBuf&&t.uvBuf.setData(s),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}get colors(){return this._state.colors}set colors(e){if(this._state.compressGeometry)return void this.error("can't update geometry colors - quantized geometry is immutable");const t=this._state,s=t.colors;s?s.length===e.length?(s.set(e),t.colorsBuf&&t.colorsBuf.setData(s),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}get indices(){return this._state.indices}get aabb(){return this._aabbDirty&&(this._aabb||(this._aabb=A.AABB3()),A.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=A.OBB3()),A.positions3ToAABB3(this._state.positions,Ut,this._state.positionsDecodeMatrix),A.AABB3ToOBB3(Ut,this._obb),this._obbDirty=!1),this._obb}get numTriangles(){return this._numTriangles}_setAABBDirty(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Ht.meshes--}}function jt(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return g.apply(e,{positions:[h,p,A,o,p,A,o,c,A,h,c,A,h,p,A,h,c,A,h,c,u,h,p,u,h,p,A,h,p,u,o,p,u,o,p,A,o,p,A,o,p,u,o,c,u,o,c,A,o,c,u,h,c,u,h,c,A,o,c,A,h,c,u,o,c,u,o,p,u,h,p,u],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}class Vt extends S{get type(){return"Material"}constructor(e,t={}){super(e,t),y.memory.materials++}destroy(){super.destroy(),y.memory.materials--}}const kt={opaque:0,mask:1,blend:2},Qt=["opaque","mask","blend"];class Wt extends Vt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new it({type:"PhongMaterial",ambient:A.vec3([1,1,1]),diffuse:A.vec3([1,1,1]),specular:A.vec3([1,1,1]),emissive:A.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),this.ambient=t.ambient,this.diffuse=t.diffuse,this.specular=t.specular,this.emissive=t.emissive,this.alpha=t.alpha,this.shininess=t.shininess,this.reflectivity=t.reflectivity,this.lineWidth=t.lineWidth,this.pointSize=t.pointSize,t.ambientMap&&(this._ambientMap=this._checkComponent("Texture",t.ambientMap)),t.diffuseMap&&(this._diffuseMap=this._checkComponent("Texture",t.diffuseMap)),t.specularMap&&(this._specularMap=this._checkComponent("Texture",t.specularMap)),t.emissiveMap&&(this._emissiveMap=this._checkComponent("Texture",t.emissiveMap)),t.alphaMap&&(this._alphaMap=this._checkComponent("Texture",t.alphaMap)),t.reflectivityMap&&(this._reflectivityMap=this._checkComponent("Texture",t.reflectivityMap)),t.normalMap&&(this._normalMap=this._checkComponent("Texture",t.normalMap)),t.occlusionMap&&(this._occlusionMap=this._checkComponent("Texture",t.occlusionMap)),t.diffuseFresnel&&(this._diffuseFresnel=this._checkComponent("Fresnel",t.diffuseFresnel)),t.specularFresnel&&(this._specularFresnel=this._checkComponent("Fresnel",t.specularFresnel)),t.emissiveFresnel&&(this._emissiveFresnel=this._checkComponent("Fresnel",t.emissiveFresnel)),t.alphaFresnel&&(this._alphaFresnel=this._checkComponent("Fresnel",t.alphaFresnel)),t.reflectivityFresnel&&(this._reflectivityFresnel=this._checkComponent("Fresnel",t.reflectivityFresnel)),this.alphaMode=t.alphaMode,this.alphaCutoff=t.alphaCutoff,this.backfaces=t.backfaces,this.frontface=t.frontface,this._makeHash()}_makeHash(){const e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}set ambient(e){let t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get ambient(){return this._state.ambient}set diffuse(e){let t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get diffuse(){return this._state.diffuse}set specular(e){let t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get specular(){return this._state.specular}set emissive(e){let t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}get emissive(){return this._state.emissive}set alpha(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}get alpha(){return this._state.alpha}set shininess(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}get shininess(){return this._state.shininess}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set pointSize(e){this._state.pointSize=e||1,this.glRedraw()}get pointSize(){return this._state.pointSize}set reflectivity(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}get reflectivity(){return this._state.reflectivity}get normalMap(){return this._normalMap}get ambientMap(){return this._ambientMap}get diffuseMap(){return this._diffuseMap}get specularMap(){return this._specularMap}get emissiveMap(){return this._emissiveMap}get alphaMap(){return this._alphaMap}get reflectivityMap(){return this._reflectivityMap}get occlusionMap(){return this._occlusionMap}get diffuseFresnel(){return this._diffuseFresnel}get specularFresnel(){return this._specularFresnel}get emissiveFresnel(){return this._emissiveFresnel}get alphaFresnel(){return this._alphaFresnel}get reflectivityFresnel(){return this._reflectivityFresnel}set alphaMode(e){let t=kt[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}get alphaMode(){return Qt[this._state.alphaMode]}set alphaCutoff(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}get alphaCutoff(){return this._state.alphaCutoff}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set frontface(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}get frontface(){return this._state.frontface?"ccw":"cw"}destroy(){super.destroy(),this._state.destroy()}}const zt={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}};class Kt extends Vt{get type(){return"EmphasisMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new it({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),this._preset="default",t.preset?(this.preset=t.preset,void 0!==t.fill&&(this.fill=t.fill),t.fillColor&&(this.fillColor=t.fillColor),void 0!==t.fillAlpha&&(this.fillAlpha=t.fillAlpha),void 0!==t.edges&&(this.edges=t.edges),t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth),void 0!==t.backfaces&&(this.backfaces=t.backfaces),void 0!==t.glowThrough&&(this.glowThrough=t.glowThrough)):(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.backfaces=t.backfaces,this.glowThrough=t.glowThrough)}set fill(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}get fill(){return this._state.fill}set fillColor(e){let t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}get fillColor(){return this._state.fillColor}set fillAlpha(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}get fillAlpha(){return this._state.fillAlpha}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set glowThrough(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}get glowThrough(){return this._state.glowThrough}set preset(e){if(e=e||"default",this._preset===e)return;const t=zt[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(zt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Yt={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}};class Xt extends Vt{get type(){return"EdgeMaterial"}get presets(){return Yt}constructor(e,t={}){super(e,t),this._state=new it({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),this._preset="default",t.preset?(this.preset=t.preset,t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth)):(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth),this.edges=!1!==t.edges}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=Yt[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Yt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const qt={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}};class Jt extends S{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=A.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return qt}set units(e){e||(e="meters");qt[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}get units(){return this._units}set scale(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}get scale(){return this._scale}set origin(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}get origin(){return this._origin}worldToRealPos(e,t=A.vec3(3)){t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}realToWorldPos(e,t=A.vec3(3)){return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}class Zt extends S{constructor(e,t={}){super(e,t),this._supported=Ce.SUPPORTED_EXTENSIONS.OES_standard_derivatives,this.enabled=t.enabled,this.kernelRadius=t.kernelRadius,this.intensity=t.intensity,this.bias=t.bias,this.scale=t.scale,this.minResolution=t.minResolution,this.numSamples=t.numSamples,this.blur=t.blur,this.blendCutoff=t.blendCutoff,this.blendFactor=t.blendFactor}get supported(){return this._supported}set enabled(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}get enabled(){return this._enabled}get possible(){if(!this._supported)return!1;if(!this._enabled)return!1;const e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}get active(){return this._active}set kernelRadius(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}get kernelRadius(){return this._kernelRadius}set intensity(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}get intensity(){return this._intensity}set bias(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}get bias(){return this._bias}set scale(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}get scale(){return this._scale}set minResolution(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}get minResolution(){return this._minResolution}set numSamples(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}get numSamples(){return this._numSamples}set blur(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}get blur(){return this._blur}set blendCutoff(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}get blendCutoff(){return this._blendCutoff}set blendFactor(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}get blendFactor(){return this._blendFactor}destroy(){super.destroy()}}const $t={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class es extends Vt{get type(){return"PointsMaterial"}get presets(){return $t}constructor(e,t={}){super(e,t),this._state=new it({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),t.preset?(this.preset=t.preset,void 0!==t.pointSize&&(this.pointSize=t.pointSize),void 0!==t.roundPoints&&(this.roundPoints=t.roundPoints),void 0!==t.perspectivePoints&&(this.perspectivePoints=t.perspectivePoints),void 0!==t.minPerspectivePointSize&&(this.minPerspectivePointSize=t.minPerspectivePointSize),void 0!==t.maxPerspectivePointSize&&(this.maxPerspectivePointSize=t.minPerspectivePointSize)):(this._preset="default",this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize),this.filterIntensity=t.filterIntensity,this.minIntensity=t.minIntensity,this.maxIntensity=t.maxIntensity}set pointSize(e){this._state.pointSize=e||2,this.glRedraw()}get pointSize(){return this._state.pointSize}set roundPoints(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}get roundPoints(){return this._state.roundPoints}set perspectivePoints(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}get perspectivePoints(){return this._state.perspectivePoints}set minPerspectivePointSize(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}get minPerspectivePointSize(){return this._state.minPerspectivePointSize}set maxPerspectivePointSize(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}get maxPerspectivePointSize(){return this._state.maxPerspectivePointSize}set filterIntensity(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}get filterIntensity(){return this._state.filterIntensity}set minIntensity(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}get minIntensity(){return this._state.minIntensity}set maxIntensity(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}get maxIntensity(){return this._state.maxIntensity}set preset(e){if(e=e||"default",this._preset===e)return;const t=$t[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys($t).join(", "))}get preset(){return this._preset}get hash(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}destroy(){super.destroy(),this._state.destroy()}}const ts={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class ss extends Vt{get type(){return"LinesMaterial"}get presets(){return ts}constructor(e,t={}){super(e,t),this._state=new it({type:"LinesMaterial",lineWidth:null}),t.preset?(this.preset=t.preset,void 0!==t.lineWidth&&(this.lineWidth=t.lineWidth)):(this._preset="default",this.lineWidth=t.lineWidth)}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=ts[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(ts).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function ns(e,t){const s={};let n,i;for(let a=0,r=t.length;a{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new tt(this,{transparent:n,alphaDepthMask:i}),this._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;let e=null;this.getHash=function(){if(e)return e;const t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";const s=[];for(let e=0,n=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=A.vec4([0,0,0,0]),t=A.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let s=null,n=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let n;for(let s=0,i=t.length;s0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),s=e.join(""),s},this.addLight=function(e){this.lights.push(e),n=null,s=null},this.removeLight=function(e){for(let t=0,i=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+g.inQuotes(e.id)+" already exists in Scene - ignoring ID, will randomly-generate instead"),e.id=null),!e.id)for(void 0===window.nextID&&(window.nextID=0),e.id="__"+window.nextID++;this.components[e.id];)e.id=A.createUUID();this.components[e.id]=e;const t=e.type;let s=this.types[e.type];s||(s=this.types[t]={}),s[e.id]=e,e.compile&&(this._compilables[e.id]=e),e.isDrawable&&(this._renderer.addDrawable(e.id,e),this._collidables[e.id]=e)}_removeComponent(e){var t=e.id,s=e.type;delete this.components[t];const n=this.types[s];n&&(delete n[t],g.isEmptyObject(n)&&delete this.types[s]),e.compile&&delete this._compilables[e.id],e.isDrawable&&(this._renderer.removeDrawable(e.id),delete this._collidables[e.id])}_sectionPlaneCreated(e){this.sectionPlanes[e.id]=e,this.scene._sectionPlanesState.addSectionPlane(e._state),this.scene.fire("sectionPlaneCreated",e,!0),this._needRecompile=!0}_bitmapCreated(e){this.bitmaps[e.id]=e,this.scene.fire("bitmapCreated",e,!0)}_lineSetCreated(e){this.lineSets[e.id]=e,this.scene.fire("lineSetCreated",e,!0)}_lightCreated(e){this.lights[e.id]=e,this.scene._lightsState.addLight(e._state),this._needRecompile=!0}_lightMapCreated(e){this.lightMaps[e.id]=e,this.scene._lightsState.addLightMap(e._state),this._needRecompile=!0}_reflectionMapCreated(e){this.reflectionMaps[e.id]=e,this.scene._lightsState.addReflectionMap(e._state),this._needRecompile=!0}_sectionPlaneDestroyed(e){delete this.sectionPlanes[e.id],this.scene._sectionPlanesState.removeSectionPlane(e._state),this.scene.fire("sectionPlaneDestroyed",e,!0),this._needRecompile=!0}_bitmapDestroyed(e){delete this.bitmaps[e.id],this.scene.fire("bitmapDestroyed",e,!0)}_lineSetDestroyed(e){delete this.lineSets[e.id],this.scene.fire("lineSetDestroyed",e,!0)}_lightDestroyed(e){delete this.lights[e.id],this.scene._lightsState.removeLight(e._state),this._needRecompile=!0}_lightMapDestroyed(e){delete this.lightMaps[e.id],this.scene._lightsState.removeLightMap(e._state),this._needRecompile=!0}_reflectionMapDestroyed(e){delete this.reflectionMaps[e.id],this.scene._lightsState.removeReflectionMap(e._state),this._needRecompile=!0}_registerModel(e){this.models[e.id]=e,this._modelIds=null}_deregisterModel(e){const t=e.id;delete this.models[t],this._modelIds=null,this.fire("modelUnloaded",t)}_registerObject(e){this.objects[e.id]=e,this._numObjects++,this._objectIds=null}_deregisterObject(e){delete this.objects[e.id],this._numObjects--,this._objectIds=null}_objectVisibilityUpdated(e,t=!0){e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}_objectXRayedUpdated(e,t=!0){e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}_objectHighlightedUpdated(e,t=!0){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}_objectSelectedUpdated(e,t=!0){e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_objectOpacityUpdated(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}_objectOffsetUpdated(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}_webglContextLost(){this.canvas.spinner.processes++;for(const e in this.components)if(this.components.hasOwnProperty(e)){const t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}_webglContextRestored(){const e=this.canvas.gl;for(const t in this.components)if(this.components.hasOwnProperty(t)){const s=this.components[t];s._webglContextRestored&&s._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}get capabilities(){return this._renderer.capabilities}get entityOffsetsEnabled(){return this._entityOffsetsEnabled}get pickSurfacePrecisionEnabled(){return!1}get logarithmicDepthBufferEnabled(){return this._logarithmicDepthBufferEnabled}set numCachedSectionPlanes(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}get numCachedSectionPlanes(){return this._sectionPlanesState.getNumCachedSectionPlanes()}set pbrEnabled(e){this._pbrEnabled=!!e,this.glRedraw()}get pbrEnabled(){return this._pbrEnabled}set dtxEnabled(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}get dtxEnabled(){return this._dtxEnabled}set colorTextureEnabled(e){this._colorTextureEnabled=!!e,this.glRedraw()}get colorTextureEnabled(){return this._colorTextureEnabled}doOcclusionTest(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}render(e){e&&B.runTasks();const t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),!e&&!this._renderer.needsRender())return;t.sceneId=this.id;const s=this._passes,n=this._clearEachPass;let i,a;for(i=0;ii&&(i=e[3]),e[4]>a&&(a=e[4]),e[5]>r&&(r=e[5]),c=!0}c||(t=-100,s=-100,n=-100,i=100,a=100,r=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=n,this._aabb[3]=i,this._aabb[4]=a,this._aabb[5]=r,this._aabbDirty=!1}return this._aabb}_setAABBDirty(){this._aabbDirty=!0,this.fire("boundary")}pick(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");const s=e.includeEntities||e.include;s&&(e.includeEntityIds=ns(this,s));const n=e.excludeEntities||e.exclude;return n&&(e.excludeEntityIds=ns(this,n)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}snapPick(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}clear(){var e;for(const t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}clearLights(){const e=Object.keys(this.lights);for(let t=0,s=e.length;t{if(e.collidable){const o=e.aabb;o[0]a&&(a=o[3]),o[4]>r&&(r=o[4]),o[5]>l&&(l=o[5]),t=!0}})),t){const e=A.AABB3();return e[0]=s,e[1]=n,e[2]=i,e[3]=a,e[4]=r,e[5]=l,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const s=e.visible!==t;return e.visible=t,s}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const s=e.collidable!==t;return e.collidable=t,s}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const s=e.culled!==t;return e.culled=t,s}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const s=e.selected!==t;return e.selected=t,s}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const s=e.highlighted!==t;return e.highlighted=t,s}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const s=e.xrayed!==t;return e.xrayed=t,s}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const s=e.edges!==t;return e.edges=t,s}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const s=e.opacity!==t;return e.opacity=t,s}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const s=e.pickable!==t;return e.pickable=t,s}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){g.isString(e)&&(e=[e]);let s=!1;for(let n=0,i=e.length;n{i>n&&(n=i,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:r,wrapperFunc:a},a}destroy(){super.destroy();for(const e in this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}const as=1e3,rs=1001,ls=1002,os=1003,cs=1004,us=1004,hs=1005,ps=1005,As=1006,ds=1007,fs=1007,Is=1008,ys=1008,ms=1009,vs=1010,ws=1011,gs=1012,Es=1013,Ts=1014,bs=1015,Ds=1016,Ps=1017,Rs=1018,Cs=1020,_s=1021,Bs=1022,Os=1023,Ss=1024,Ns=1025,xs=1026,Ls=1027,Ms=1028,Fs=1029,Hs=1030,Us=1031,Gs=1033,js=33776,Vs=33777,ks=33778,Qs=33779,Ws=35840,zs=35841,Ks=35842,Ys=35843,Xs=36196,qs=37492,Js=37496,Zs=37808,$s=37809,en=37810,tn=37811,sn=37812,nn=37813,an=37814,rn=37815,ln=37816,on=37817,cn=37818,un=37819,hn=37820,pn=37821,An=36492,dn=3e3,fn=3001,In=1e4,yn=10001,mn=10002,vn=10003,wn=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,r=e._state.stationary,l=s.getNumAllocatedSectionPlanes()>0,o=!!i.compressGeometry,c=[];c.push("#version 300 es"),c.push("// Lambertian drawing vertex shader"),c.push("in vec3 position;"),c.push("uniform mat4 modelMatrix;"),c.push("uniform mat4 viewMatrix;"),c.push("uniform mat4 projMatrix;"),c.push("uniform vec4 colorize;"),c.push("uniform vec3 offset;"),o&&c.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(c.push("uniform float logDepthBufFC;"),c.push("out float vFragDepth;"),c.push("bool isPerspectiveMatrix(mat4 m) {"),c.push(" return (m[2][3] == - 1.0);"),c.push("}"),c.push("out float isPerspective;"));l&&c.push("out vec4 vWorldPosition;");if(c.push("uniform vec4 lightAmbient;"),c.push("uniform vec4 materialColor;"),c.push("uniform vec3 materialEmissive;"),i.normalsBuf){c.push("in vec3 normal;"),c.push("uniform mat4 modelNormalMatrix;"),c.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=n.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),c.push(" }"),c.push(" return normalize(v);"),c.push("}"))}c.push("out vec4 vColor;"),"points"===i.primitiveName&&c.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(c.push("void billboard(inout mat4 mat) {"),c.push(" mat[0][0] = 1.0;"),c.push(" mat[0][1] = 0.0;"),c.push(" mat[0][2] = 0.0;"),"spherical"===a&&(c.push(" mat[1][0] = 0.0;"),c.push(" mat[1][1] = 1.0;"),c.push(" mat[1][2] = 0.0;")),c.push(" mat[2][0] = 0.0;"),c.push(" mat[2][1] = 0.0;"),c.push(" mat[2][2] =1.0;"),c.push("}"));c.push("void main(void) {"),c.push("vec4 localPosition = vec4(position, 1.0); "),c.push("vec4 worldPosition;"),o&&c.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(o?c.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):c.push("vec4 localNormal = vec4(normal, 0.0); "),c.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),c.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));c.push("mat4 viewMatrix2 = viewMatrix;"),c.push("mat4 modelMatrix2 = modelMatrix;"),r&&c.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(c.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),c.push("billboard(modelMatrix2);"),c.push("billboard(viewMatrix2);"),c.push("billboard(modelViewMatrix);"),i.normalsBuf&&(c.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),c.push("billboard(modelNormalMatrix2);"),c.push("billboard(viewNormalMatrix2);"),c.push("billboard(modelViewNormalMatrix);")),c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&c.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(c.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),c.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),c.push("float lambertian = 1.0;"),i.normalsBuf)for(let e=0,t=n.lights.length;e0,a=t.gammaOutput,r=[];r.push("#version 300 es"),r.push("// Lambertian drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("in vec4 vWorldPosition;"),r.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),r.push("}")}"points"===n.primitiveName&&(r.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),r.push("float r = dot(cxy, cxy);"),r.push("if (r > 1.0) {"),r.push(" discard;"),r.push("}"));t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?r.push("outColor = linearToGamma(vColor, gammaFactor);"):r.push("outColor = vColor;");return r.push("}"),r}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,n=t._sectionPlanesState,i=e._geometry._state,a=t._lightsState;let r;const l=s.billboard,o=s.background,c=s.stationary,u=function(e){if(!e._geometry._state.uvBuf)return!1;const t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),h=Tn(e),p=n.getNumAllocatedSectionPlanes()>0,A=En(e),d=!!i.compressGeometry,f=[];f.push("#version 300 es"),f.push("// Drawing vertex shader"),f.push("in vec3 position;"),d&&f.push("uniform mat4 positionsDecodeMatrix;");f.push("uniform mat4 modelMatrix;"),f.push("uniform mat4 viewMatrix;"),f.push("uniform mat4 projMatrix;"),f.push("out vec3 vViewPosition;"),f.push("uniform vec3 offset;"),p&&f.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(f.push("uniform float logDepthBufFC;"),f.push("out float vFragDepth;"),f.push("bool isPerspectiveMatrix(mat4 m) {"),f.push(" return (m[2][3] == - 1.0);"),f.push("}"),f.push("out float isPerspective;"));a.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(h){f.push("in vec3 normal;"),f.push("uniform mat4 modelNormalMatrix;"),f.push("uniform mat4 viewNormalMatrix;"),f.push("out vec3 vViewNormal;");for(let e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),f.push(" }"),f.push(" return normalize(v);"),f.push("}"))}u&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));i.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===i.primitiveName&&f.push("uniform float pointSize;");"spherical"!==l&&"cylindrical"!==l||(f.push("void billboard(inout mat4 mat) {"),f.push(" mat[0][0] = 1.0;"),f.push(" mat[0][1] = 0.0;"),f.push(" mat[0][2] = 0.0;"),"spherical"===l&&(f.push(" mat[1][0] = 0.0;"),f.push(" mat[1][1] = 1.0;"),f.push(" mat[1][2] = 0.0;")),f.push(" mat[2][0] = 0.0;"),f.push(" mat[2][1] = 0.0;"),f.push(" mat[2][2] =1.0;"),f.push("}"));if(A){f.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(let e=0,t=a.lights.length;e0&&f.push("vWorldNormal = worldNormal;"),f.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),f.push("vec3 tmpVec3;"),f.push("float lightDist;");for(let e=0,t=a.lights.length;e0,o=Tn(e),c=n.uvBuf,u="PhongMaterial"===r.type,h="MetallicMaterial"===r.type,p="SpecularMaterial"===r.type,A=En(e);t.gammaInput;const d=t.gammaOutput,f=[];f.push("#version 300 es"),f.push("// Drawing fragment shader"),f.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),f.push("precision highp float;"),f.push("precision highp int;"),f.push("#else"),f.push("precision mediump float;"),f.push("precision mediump int;"),f.push("#endif"),t.logarithmicDepthBufferEnabled&&(f.push("in float isPerspective;"),f.push("uniform float logDepthBufFC;"),f.push("in float vFragDepth;"));A&&(f.push("float unpackDepth (vec4 color) {"),f.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),f.push(" return dot(color, bitShift);"),f.push("}"));f.push("uniform float gammaFactor;"),f.push("vec4 linearToLinear( in vec4 value ) {"),f.push(" return value;"),f.push("}"),f.push("vec4 sRGBToLinear( in vec4 value ) {"),f.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),f.push("}"),f.push("vec4 gammaToLinear( in vec4 value) {"),f.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),f.push("}"),d&&(f.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),f.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),f.push("}"));if(l){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var I=0;I0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("uniform mat4 viewMatrix;"),f.push("#define PI 3.14159265359"),f.push("#define RECIPROCAL_PI 0.31830988618"),f.push("#define RECIPROCAL_PI2 0.15915494"),f.push("#define EPSILON 1e-6"),f.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),f.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),f.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),f.push("}"),f.push("struct IncidentLight {"),f.push(" vec3 color;"),f.push(" vec3 direction;"),f.push("};"),f.push("struct ReflectedLight {"),f.push(" vec3 diffuse;"),f.push(" vec3 specular;"),f.push("};"),f.push("struct Geometry {"),f.push(" vec3 position;"),f.push(" vec3 viewNormal;"),f.push(" vec3 worldNormal;"),f.push(" vec3 viewEyeDir;"),f.push("};"),f.push("struct Material {"),f.push(" vec3 diffuseColor;"),f.push(" float specularRoughness;"),f.push(" vec3 specularColor;"),f.push(" float shine;"),f.push("};"),u&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = "+gn[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),f.push(" radiance *= PI;"),f.push(" reflectedLight.specular += radiance;")),f.push("}")),f.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),f.push(" vec3 irradiance = dotNL * directLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),f.push("}")),(h||p)&&(f.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),f.push(" float r = ggxRoughness + 0.0001;"),f.push(" return (2.0 / (r * r) - 2.0);"),f.push("}"),f.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),f.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),f.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),f.push("}"),a.reflectionMaps.length>0&&(f.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),f.push(" vec3 envMapColor = "+gn[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),f.push(" return envMapColor;"),f.push("}")),f.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),f.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),f.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),f.push("}"),f.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" return 1.0 / ( gl * gv );"),f.push("}"),f.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" return 0.5 / max( gv + gl, EPSILON );"),f.push("}"),f.push("float D_GGX(const in float alpha, const in float dotNH) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),f.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float alpha = ( roughness * roughness );"),f.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),f.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),f.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),f.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),f.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),f.push(" vec3 F = F_Schlick( specularColor, dotLH );"),f.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),f.push(" float D = D_GGX( alpha, dotNH );"),f.push(" return F * (G * D);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),f.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),f.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),f.push(" vec4 r = roughness * c0 + c1;"),f.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),f.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),f.push(" return specularColor * AB.x + AB.y;"),f.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),f.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),f.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),f.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),f.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),f.push("}")),f.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),f.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),f.push("}")));f.push("in vec3 vViewPosition;"),n.colors&&f.push("in vec4 vColor;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._occlusionMap||s._alphaMap)&&f.push("in vec2 vUV;");o&&(a.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));r.ambient&&f.push("uniform vec3 materialAmbient;");r.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==r.alpha&&null!==r.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");r.emissive&&f.push("uniform vec3 materialEmissive;");r.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==r.glossiness&&null!==r.glossiness&&f.push("uniform float materialGlossiness;");void 0!==r.shininess&&null!==r.shininess&&f.push("uniform float materialShininess;");r.specular&&f.push("uniform vec3 materialSpecular;");void 0!==r.metallic&&null!==r.metallic&&f.push("uniform float materialMetallic;");void 0!==r.roughness&&null!==r.roughness&&f.push("uniform float materialRoughness;");void 0!==r.specularF0&&null!==r.specularF0&&f.push("uniform float materialSpecularF0;");c&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));c&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));c&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));c&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));o&&c&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));o&&c&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));o&&c&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));o&&s._normalMap&&(f.push("uniform sampler2D normalMap;"),s._normalMap._state.matrix&&f.push("uniform mat4 normalMapMatrix;"),f.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),f.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),f.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),f.push(" vec2 st0 = dFdx( uv.st );"),f.push(" vec2 st1 = dFdy( uv.st );"),f.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),f.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),f.push(" vec3 N = normalize( surf_norm );"),f.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),f.push(" mat3 tsn = mat3( S, T, N );"),f.push(" return normalize( tsn * mapN );"),f.push("}"));c&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));c&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));o&&c&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));o&&c&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));o&&c&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));o&&(s._diffuseFresnel||s._specularFresnel||s._alphaFresnel||s._emissiveFresnel||s._reflectivityFresnel)&&(f.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),f.push(" float fr = abs(dot(eyeDir, normal));"),f.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),f.push(" return pow(finalFr, power);"),f.push("}"),s._diffuseFresnel&&(f.push("uniform float diffuseFresnelCenterBias;"),f.push("uniform float diffuseFresnelEdgeBias;"),f.push("uniform float diffuseFresnelPower;"),f.push("uniform vec3 diffuseFresnelCenterColor;"),f.push("uniform vec3 diffuseFresnelEdgeColor;")),s._specularFresnel&&(f.push("uniform float specularFresnelCenterBias;"),f.push("uniform float specularFresnelEdgeBias;"),f.push("uniform float specularFresnelPower;"),f.push("uniform vec3 specularFresnelCenterColor;"),f.push("uniform vec3 specularFresnelEdgeColor;")),s._alphaFresnel&&(f.push("uniform float alphaFresnelCenterBias;"),f.push("uniform float alphaFresnelEdgeBias;"),f.push("uniform float alphaFresnelPower;"),f.push("uniform vec3 alphaFresnelCenterColor;"),f.push("uniform vec3 alphaFresnelEdgeColor;")),s._reflectivityFresnel&&(f.push("uniform float materialSpecularF0FresnelCenterBias;"),f.push("uniform float materialSpecularF0FresnelEdgeBias;"),f.push("uniform float materialSpecularF0FresnelPower;"),f.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),f.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),s._emissiveFresnel&&(f.push("uniform float emissiveFresnelCenterBias;"),f.push("uniform float emissiveFresnelEdgeBias;"),f.push("uniform float emissiveFresnelPower;"),f.push("uniform vec3 emissiveFresnelCenterColor;"),f.push("uniform vec3 emissiveFresnelEdgeColor;")));if(f.push("uniform vec4 lightAmbient;"),o)for(let e=0,t=a.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===n.primitiveName&&(f.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),f.push("float r = dot(cxy, cxy);"),f.push("if (r > 1.0) {"),f.push(" discard;"),f.push("}"));f.push("float occlusion = 1.0;"),r.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");r.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):r.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");n.colors&&f.push("diffuseColor *= vColor.rgb;");r.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");r.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==r.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");n.colors&&f.push("alpha *= vColor.a;");void 0!==r.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==r.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==r.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==r.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._occlusionMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._alphaMap)&&(f.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),f.push("vec2 textureCoord;"));c&&s._ambientMap&&(s._ambientMap._state.matrix?f.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),f.push("ambientTexel = "+gn[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));c&&s._diffuseMap&&(s._diffuseMap._state.matrix?f.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),f.push("diffuseTexel = "+gn[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));c&&s._baseColorMap&&(s._baseColorMap._state.matrix?f.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),f.push("baseColorTexel = "+gn[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));c&&s._emissiveMap&&(s._emissiveMap._state.matrix?f.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),f.push("emissiveTexel = "+gn[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));c&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));c&&s._occlusionMap&&(s._occlusionMap._state.matrix?f.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(o&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){c&&s._normalMap?(s._normalMap._state.matrix?f.push("textureCoord = (normalMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):f.push("vec3 viewNormal = normalize(vViewNormal);"),c&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),c&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),c&&s._specularGlossinessMap&&(s._specularGlossinessMap._state.matrix?f.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),f.push("specular *= specGlossRGB.rgb;"),f.push("glossiness *= specGlossRGB.a;")),c&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),c&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),c&&s._metallicRoughnessMap&&(s._metallicRoughnessMap._state.matrix?f.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),f.push("metallic *= metalRoughRGB.b;"),f.push("roughness *= metalRoughRGB.g;")),f.push("vec3 viewEyeDir = normalize(-vViewPosition);"),s._diffuseFresnel&&(f.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),f.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),s._specularFresnel&&(f.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),f.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),s._alphaFresnel&&(f.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),f.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),s._emissiveFresnel&&(f.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),f.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),f.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),f.push(" discard;"),f.push("}"),f.push("IncidentLight light;"),f.push("Material material;"),f.push("Geometry geometry;"),f.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),f.push("vec3 viewLightDir;"),u&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),p&&(f.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),f.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),f.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),f.push("material.specularColor = specular;")),h&&(f.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),f.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),f.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),f.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),f.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),u&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||h)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePBRLightMapping(geometry, material, reflectedLight);"),f.push("float shadow = 1.0;"),f.push("float shadowAcneRemover = 0.007;"),f.push("vec3 fragmentDepth;"),f.push("float texelSize = 1.0 / 1024.0;"),f.push("float amountInLight = 0.0;"),f.push("vec3 shadowCoord;"),f.push("vec4 rgbaDepth;"),f.push("float depth;");for(let e=0,t=a.lights.length;e0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(u=0,h=a.sectionPlanes.length;u0&&i.lightMaps[0].texture&&this._uLightMap&&(l.bindTexture(this._uLightMap,i.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),i.reflectionMaps.length>0&&i.reflectionMaps[0].texture&&this._uReflectionMap&&(l.bindTexture(this._uReflectionMap,i.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&n.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class Cn{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,n=function(e){const t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,r=e._state.billboard,l=e._state.stationary,o=[];o.push("#version 300 es"),o.push("// EmphasisFillShaderSource vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec4 colorize;"),o.push("uniform vec3 offset;"),a&&o.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));i&&o.push("out vec4 vWorldPosition;");if(o.push("uniform vec4 lightAmbient;"),o.push("uniform vec4 fillColor;"),n){o.push("in vec3 normal;"),o.push("uniform mat4 modelNormalMatrix;"),o.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"))}o.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===r&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),a&&o.push("localPosition = positionsDecodeMatrix * localPosition;");n&&(a?o.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):o.push("vec4 localNormal = vec4(normal, 0.0); "),o.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),o.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),l&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),n&&(o.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),o.push("billboard(modelNormalMatrix2);"),o.push("billboard(viewNormalMatrix2);"),o.push("billboard(modelViewNormalMatrix);")),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&o.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),n)for(let e=0,t=s.lights.length;e0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const _n=new e({}),Bn=A.vec3(),On=function(e,t){this.id=_n.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Cn(t),this._allocate(t)},Sn={};On.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Sn[t];return s||(s=new On(t,e),Sn[t]=s,y.memory.programs++),s._useCount++,s},On.prototype.put=function(){0==--this._useCount&&(_n.removeItem(this.id),this._program&&this._program.destroy(),delete Sn[this._hash],y.memory.programs--)},On.prototype.webglContextRestored=function(){this._program=null},On.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl,r=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,l=t._state,o=t._geometry._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(l.originHash,c):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Edges drawing vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec4 edgeColor;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));s&&r.push("out vec4 vWorldPosition;");r.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.push("vColor = edgeColor;"),s&&r.push("vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene.gammaOutput,i=s.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const xn=new e({}),Ln=A.vec3(),Mn=function(e,t){this.id=xn.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Nn(t),this._allocate(t)},Fn={};Mn.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Fn[t];return s||(s=new Mn(t,e),Fn[t]=s,y.memory.programs++),s._useCount++,s},Mn.prototype.put=function(){0==--this._useCount&&(xn.removeItem(this.id),this._program&&this._program.destroy(),delete Fn[this._hash],y.memory.programs--)},Mn.prototype.webglContextRestored=function(){this._program=null},Mn.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl;let r;const l=t._state,o=t._geometry,c=o._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(l.originHash,u):i.viewMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh picking vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("out vec4 vViewPosition;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("uniform vec2 pickClipPos;"),r.push("vec4 remapClipPos(vec4 clipPos) {"),r.push(" clipPos.xy /= clipPos.w;"),r.push(" clipPos.xy -= pickClipPos;"),r.push(" clipPos.xy *= clipPos.w;"),r.push(" return clipPos;"),r.push("}"),r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"));r.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = remapClipPos(clipPos);"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(e)}}const Un=A.vec3(),Gn=function(e,t){this._hash=e,this._shaderSource=new Hn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},jn={};Gn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=jn[t];if(!s){if(s=new Gn(t,e),s.errors)return console.log(s.errors.join("\n")),null;jn[t]=s,y.memory.programs++}return s._useCount++,s},Gn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete jn[this._hash],y.memory.programs--)},Gn.prototype.webglContextRestored=function(){this._program=null},Gn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t>24&255,u=o>>16&255,h=o>>8&255,p=255&o;n.uniform4f(this._uPickColor,p/255,h/255,u/255,c/255),n.uniform2fv(this._uPickClipPos,e.pickClipPos),r.indicesBuf?(n.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&n.drawArrays(n.TRIANGLES,0,r.positions.numItems)},Gn.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Fe(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,n=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),s&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),n&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),n&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(e)}}const kn=A.vec3(),Qn=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Vn(t),this._allocate(t)},Wn={};Qn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Wn[t];if(!s){if(s=new Qn(t,e),s.errors)return console.log(s.errors.join("\n")),null;Wn[t]=s,y.memory.programs++}return s._useCount++,s},Qn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Wn[this._hash],y.memory.programs--)},Qn.prototype.webglContextRestored=function(){this._program=null},Qn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry,l=t._geometry._state,o=t.origin,c=a.backfaces,u=a.frontface,h=s.camera.project,p=r._getPickTrianglePositions(),A=r._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(h.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}if(n.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh occlusion vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(e)}}const Kn=A.vec3(),Yn=function(e,t){this._hash=e,this._shaderSource=new zn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Xn={};Yn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let s=Xn[t];if(!s){if(s=new Yn(t,e),s.errors)return console.log(s.errors.join("\n")),null;Xn[t]=s,y.memory.programs++}return s._useCount++,s},Yn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Xn[this._hash],y.memory.programs--)},Yn.prototype.webglContextRestored=function(){this._program=null},Yn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._material._state,a=t._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){const t=i.backfaces;e.backfaces!==t&&(t?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=t);const s=i.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),this._lastMaterialId=i.id}const o=s.camera;if(n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCViewMatrix(a.originHash,l):o.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,n=[];n.push("// Mesh shadow vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t&&n.push("out vec4 vWorldPosition;");n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("worldPosition = modelMatrix * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&n.push("vWorldPosition = worldPosition;");return n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(e)}}const Jn=function(e,t){this._hash=e,this._shaderSource=new qn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Zn={};Jn.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let n=Zn[s];if(!n){if(n=new Jn(s,e),n.errors)return console.log(n.errors.join("\n")),null;Zn[s]=n,y.memory.programs++}return n._useCount++,n},Jn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Zn[this._hash],y.memory.programs--)},Jn.prototype.webglContextRestored=function(){this._program=null},Jn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,n=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.id!==this._lastMaterialId){const t=n.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=n.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),e.lineWidth!==n.lineWidth&&(s.lineWidth(n.lineWidth),e.lineWidth=n.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,n.pointSize),this._lastMaterialId=n.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),i.combineGeometry){const n=t.vertexBufs;n.id!==this._lastVertexBufsId&&(n.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(n.positionsBuf,n.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=n.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(s.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(s.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(s.drawArrays(s.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},Jn.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Fe(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uShadowViewMatrix=n.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=n.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,i,a,r;for(let l=0,o=this._uSectionPlanes.length;l0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const hi=function(){const e=A.vec3(),t=A.vec3(),s=A.vec3(),n=A.vec3(),i=A.vec3(),a=A.vec3(),r=A.vec4(),l=A.vec3(),o=A.vec3(),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3(),y=A.vec4(),m=A.vec4(),v=A.vec4(),w=A.vec3(),g=A.vec3(),E=A.vec3(),T=A.vec3(),b=A.vec3(),D=A.vec3(),P=A.vec3(),R=A.vec3(),C=A.vec3(),_=A.vec3(),B=A.vec3();return function(O,S,N,x){var L=x.primIndex;if(null!=L&&L>-1){const U=O.geometry._state,G=O.scene,j=G.camera,V=G.canvas;if("triangles"===U.primitiveName){x.primitive="triangle";const G=L,k=U.indices,W=U.positions;let z,K,Y;if(k){var M=k[G+0],F=k[G+1],H=k[G+2];a[0]=M,a[1]=F,a[2]=H,x.indices=a,z=3*M,K=3*F,Y=3*H}else z=3*G,K=z+3,Y=K+3;if(s[0]=W[z+0],s[1]=W[z+1],s[2]=W[z+2],n[0]=W[K+0],n[1]=W[K+1],n[2]=W[K+2],i[0]=W[Y+0],i[1]=W[Y+1],i[2]=W[Y+2],U.compressGeometry){const e=U.positionsDecodeMatrix;e&&(Ft.decompressPosition(s,e,s),Ft.decompressPosition(n,e,n),Ft.decompressPosition(i,e,i))}x.canvasPos?A.canvasPosToLocalRay(V.canvas,O.origin?Q(S,O.origin):S,N,O.worldMatrix,x.canvasPos,e,t):x.origin&&x.direction&&A.worldRayToLocalRay(O.worldMatrix,x.origin,x.direction,e,t),A.normalizeVec3(t),A.rayPlaneIntersect(e,t,s,n,i,r),x.localPos=r,x.position=r,y[0]=r[0],y[1]=r[1],y[2]=r[2],y[3]=1,A.transformVec4(O.worldMatrix,y,m),l[0]=m[0],l[1]=m[1],l[2]=m[2],x.canvasPos&&O.origin&&(l[0]+=O.origin[0],l[1]+=O.origin[1],l[2]+=O.origin[2]),x.worldPos=l,A.transformVec4(j.matrix,m,v),o[0]=v[0],o[1]=v[1],o[2]=v[2],x.viewPos=o,A.cartesianToBarycentric(r,s,n,i,c),x.bary=c;const X=U.normals;if(X){if(U.compressGeometry){const e=3*M,t=3*F,s=3*H;Ft.decompressNormal(X.subarray(e,e+2),u),Ft.decompressNormal(X.subarray(t,t+2),h),Ft.decompressNormal(X.subarray(s,s+2),p)}else u[0]=X[z],u[1]=X[z+1],u[2]=X[z+2],h[0]=X[K],h[1]=X[K+1],h[2]=X[K+2],p[0]=X[Y],p[1]=X[Y+1],p[2]=X[Y+2];const e=A.addVec3(A.addVec3(A.mulVec3Scalar(u,c[0],w),A.mulVec3Scalar(h,c[1],g),E),A.mulVec3Scalar(p,c[2],T),b);x.worldNormal=A.normalizeVec3(A.transformVec3(O.worldNormalMatrix,e,D))}const q=U.uv;if(q){if(d[0]=q[2*M],d[1]=q[2*M+1],f[0]=q[2*F],f[1]=q[2*F+1],I[0]=q[2*H],I[1]=q[2*H+1],U.compressGeometry){const e=U.uvDecodeMatrix;e&&(Ft.decompressUV(d,e,d),Ft.decompressUV(f,e,f),Ft.decompressUV(I,e,I))}x.uv=A.addVec3(A.addVec3(A.mulVec2Scalar(d,c[0],P),A.mulVec2Scalar(f,c[1],R),C),A.mulVec2Scalar(I,c[2],_),B)}}}}}();function pi(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let s=e.radiusBottom||1;s<0&&(console.error("negative radiusBottom not allowed - will invert"),s*=-1);let n=e.height||1;n<0&&(console.error("negative height not allowed - will invert"),n*=-1);let i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);let a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);const r=!!e.openEnded;let l=e.center;const o=l?l[0]:0,c=l?l[1]:0,u=l?l[2]:0,h=n/2,p=n/a,A=2*Math.PI/i,d=1/i,f=(t-s)/a,I=[],y=[],m=[],v=[];let w,E,T,b,D,P,R,C,_,B,O;const S=(90-180*Math.atan(n/(s-t))/Math.PI)/90;for(w=0;w<=a;w++)for(D=t-w*f,P=h-w*p,E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),y.push(D*T),y.push(S),y.push(D*b),m.push(E*d),m.push(1*w/a),I.push(D*T+o),I.push(P+c),I.push(D*b+u);for(w=0;w0){for(_=I.length/3,y.push(0),y.push(1),y.push(0),m.push(.5),m.push(.5),I.push(0+o),I.push(h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(t*T),y.push(1),y.push(t*b),m.push(B),m.push(O),I.push(t*T+o),I.push(h+c),I.push(t*b+u);for(E=0;E0){for(_=I.length/3,y.push(0),y.push(-1),y.push(0),m.push(.5),m.push(.5),I.push(0+o),I.push(0-h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(s*T),y.push(-1),y.push(s*b),m.push(B),m.push(O),I.push(s*T+o),I.push(0-h+c),I.push(s*b+u);for(E=0;E":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function fi(e={}){var t=e.origin||[0,0,0],s=t[0],n=t[1],i=t[2],a=e.size||1,r=[],l=[],o=e.text;g.isNumeric(o)&&(o=""+o);for(var c,u,h,p,A,d,f,I,y,m=(o||"").split("\n"),v=0,w=0,E=.04,T=0;T0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let s=0,n=e.length;s1;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,this.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE);const a=Li(s,this.wrapS);a&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,a);const r=Li(s,this.wrapT);if(r&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,r),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=Li(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}i?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,Ui(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,Ui(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,Li(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,Li(s,this.magFilter)));const l=Li(s,this.format,this.encoding),o=Li(s,this.type),c=Hi(s,this.internalFormat,l,o,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,n,c,e[0].width,e[0].height);for(let t=0,n=e.length;t>t;return e+1}class ki extends S{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new it({texture:new Fi({gl:this.scene.canvas.gl}),matrix:A.identityMat4(),hasMatrix:t.translate&&(0!==t.translate[0]||0!==t.translate[1])||!!t.rotate||t.scale&&(0!==t.scale[0]||0!==t.scale[1]),minFilter:this._checkMinFilter(t.minFilter),magFilter:this._checkMagFilter(t.magFilter),wrapS:this._checkWrapS(t.wrapS),wrapT:this._checkWrapT(t.wrapT),flipY:this._checkFlipY(t.flipY),encoding:this._checkEncoding(t.encoding)}),this._src=null,this._image=null,this._translate=A.vec2([0,0]),this._scale=A.vec2([1,1]),this._rotate=A.vec2([0,0]),this._matrixDirty=!1,this.translate=t.translate,this.scale=t.scale,this.rotate=t.rotate,t.src?this.src=t.src:t.image&&(this.image=t.image),y.memory.textures++}_checkMinFilter(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}_checkMagFilter(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}_checkWrapS(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkWrapT(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this._state.texture=new Fi({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}_update(){const e=this._state;if(this._matrixDirty){let t,s;0===this._translate[0]&&0===this._translate[1]||(t=A.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(s=A.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?A.mulMat4(t,s):s),0!==this._rotate&&(s=A.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?A.mulMat4(t,s):s),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=Gi(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}get image(){return this._image}set src(e){this.scene.loading++,this.scene.canvas.spinner.processes++;const t=this;let s=new Image;s.onload=function(){s=Gi(s),t._state.texture.setImage(s,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},s.src=e,this._src=e,this._image=null}get src(){return this._src}set translate(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}get translate(){return this._translate}set scale(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}get scale(){return this._scale}set rotate(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}get rotate(){return this._rotate}get minFilter(){return this._state.minFilter}get magFilter(){return this._state.magFilter}get wrapS(){return this._state.wrapS}get wrapT(){return this._state.wrapT}get flipY(){return this._state.flipY}get encoding(){return this._state.encoding}destroy(){super.destroy(),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),y.memory.textures--}}class Qi extends S{get type(){return"Fresnel"}constructor(e,t={}){super(e,t),this._state=new it({edgeColor:A.vec3([0,0,0]),centerColor:A.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),this.edgeColor=t.edgeColor,this.centerColor=t.centerColor,this.edgeBias=t.edgeBias,this.centerBias=t.centerBias,this.power=t.power}set edgeColor(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set centerColor(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}get centerColor(){return this._state.centerColor}set edgeBias(e){this._state.edgeBias=e||0,this.glRedraw()}get edgeBias(){return this._state.edgeBias}set centerBias(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}get centerBias(){return this._state.centerBias}set power(e){this._state.power=null!=e?e:1,this.glRedraw()}get power(){return this._state.power}destroy(){super.destroy(),this._state.destroy()}}const Wi=y.memory,zi=A.AABB3();class Ki extends _t{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new it({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._aabb=null,this._obb=A.OBB3();const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var i;if(t.positionsDecodeMatrix);else{const e=Ft.getPositionsBounds(t.positions),a=Ft.compressPositions(t.positions,e.min,e.max);i=a.quantized,s.positionsDecodeMatrix=a.decodeMatrix,s.positionsBuf=new He(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),Wi.positions+=s.positionsBuf.numItems,A.positions3ToAABB3(t.positions,this._aabb),A.positions3ToAABB3(i,zi,s.positionsDecodeMatrix),A.AABB3ToOBB3(zi,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new He(n,n.ARRAY_BUFFER,e,e.length,4,n.STATIC_DRAW),Wi.colors+=s.colorsBuf.numItems}if(t.uv){const e=Ft.getUVBounds(t.uv),i=Ft.compressUVs(t.uv,e.min,e.max),a=i.quantized;s.uvDecodeMatrix=i.decodeMatrix,s.uvBuf=new He(n,n.ARRAY_BUFFER,a,a.length,2,n.STATIC_DRAW),Wi.uvs+=s.uvBuf.numItems}if(t.normals){const e=Ft.compressNormals(t.normals);let i=s.compressGeometry;s.normalsBuf=new He(n,n.ARRAY_BUFFER,e,e.length,3,n.STATIC_DRAW,i),Wi.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,e,e.length,1,n.STATIC_DRAW),Wi.indices+=s.indicesBuf.numItems;const a=Bt(i,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),Wi.meshes++}else this.error("Config expected: indices");else this.error("Config expected: positions")}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf}get primitive(){return this._state.primitiveName}get aabb(){return this._aabb}get obb(){return this._obb}get numTriangles(){return this._numTriangles}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),Wi.meshes--}}var Yi={};function Xi(e,t={}){return new Promise((function(s,n){t.src||(console.error("load3DSGeometry: Parameter expected: src"),n());var i=e.canvas.spinner;i.processes++,g.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("load3DSGeometry: no data loaded"),i.processes--,n());var a=Yi.parse.from3DS(e).edit.objects[0].mesh,r=a.vertices,l=a.uvt,o=a.indices;i.processes--,s(g.apply(t,{primitive:"triangles",positions:r,normals:null,uv:l,indices:o}))}),(function(e){console.error("load3DSGeometry: "+e),i.processes--,n()}))}))}function qi(e,t={}){return new Promise((function(s,n){t.src||(console.error("loadOBJGeometry: Parameter expected: src"),n());var i=e.canvas.spinner;i.processes++,g.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("loadOBJGeometry: no data loaded"),i.processes--,n());for(var a=Yi.parse.fromOBJ(e),r=Yi.edit.unwrap(a.i_verts,a.c_verts,3),l=Yi.edit.unwrap(a.i_norms,a.c_norms,3),o=Yi.edit.unwrap(a.i_uvt,a.c_uvt,2),c=new Int32Array(a.i_verts.length),u=0;u0?l:null,autoNormals:0===l.length,uv:o,indices:c}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,n()}))}))}function Ji(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return g.apply(e,{primitive:"lines",positions:[o,c,u,o,c,A,o,p,u,o,p,A,h,c,u,h,c,A,h,p,u,h,p,A],indices:[0,1,1,3,3,2,2,0,4,5,5,7,7,6,6,4,0,4,1,5,2,6,3,7]})}function Zi(e={}){let t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);let s=e.divisions||1;s<0&&(console.error("negative divisions not allowed - will invert"),s*=-1),s<1&&(s=1),t=t||10,s=s||10;const n=t/s,i=t/2,a=[],r=[];let l=0;for(let e=0,t=-i;e<=s;e++,t+=n)a.push(-i),a.push(0),a.push(t),a.push(i),a.push(0),a.push(t),a.push(t),a.push(0),a.push(-i),a.push(t),a.push(0),a.push(i),r.push(l++),r.push(l++),r.push(l++),r.push(l++);return g.apply(e,{primitive:"lines",positions:a,indices:r})}function $i(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);let n=e.xSegments||1;n<0&&(console.error("negative xSegments not allowed - will invert"),n*=-1),n<1&&(n=1);let i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);const a=e.center,r=a?a[0]:0,l=a?a[1]:0,o=a?a[2]:0,c=t/2,u=s/2,h=Math.floor(n)||1,p=Math.floor(i)||1,A=h+1,d=p+1,f=t/h,I=s/p,y=new Float32Array(A*d*3),m=new Float32Array(A*d*3),v=new Float32Array(A*d*2);let w,E,T,b,D,P,R,C=0,_=0;for(w=0;w65535?Uint32Array:Uint16Array)(h*p*6);for(w=0;w360&&(a=360);const r=e.center;let l=r?r[0]:0,o=r?r[1]:0;const c=r?r[2]:0,u=[],h=[],p=[],d=[];let f,I,y,m,v,w,E,T,b,D,P,R;for(T=0;T<=i;T++)for(E=0;E<=n;E++)f=E/n*a,I=.785398+T/i*Math.PI*2,l=t*Math.cos(f),o=t*Math.sin(f),y=(t+s*Math.cos(I))*Math.cos(f),m=(t+s*Math.cos(I))*Math.sin(f),v=s*Math.sin(I),u.push(y+l),u.push(m+o),u.push(v+c),p.push(1-E/n),p.push(T/i),w=A.normalizeVec3(A.subVec3([y,m,v],[l,o,c],[]),[]),h.push(w[0]),h.push(w[1]),h.push(w[2]);for(T=1;T<=i;T++)for(E=1;E<=n;E++)b=(n+1)*T+E-1,D=(n+1)*(T-1)+E-1,P=(n+1)*(T-1)+E,R=(n+1)*T+E,d.push(b),d.push(D),d.push(P),d.push(P),d.push(R),d.push(b);return g.apply(e,{positions:u,normals:h,uv:p,indices:d})}Yi.load=function(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(e){t(e.target.response)},s.send()},Yi.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(Yi.parse._buffToStr(e));window.location.href=s},Yi.clone=function(e){return JSON.parse(JSON.stringify(e))},Yi.bin={},Yi.bin.f=new Float32Array(1),Yi.bin.fb=new Uint8Array(Yi.bin.f.buffer),Yi.bin.rf=function(e,t){for(var s=Yi.bin.f,n=Yi.bin.fb,i=0;i<4;i++)n[i]=e[t+i];return s[0]},Yi.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Yi.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Yi.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},Yi.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},Yi.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},Yi.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},Yi.parse={},Yi.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",n=0;ni&&(i=o),ca&&(a=c),ur&&(r=u)}return{min:{x:t,y:s,z:n},max:{x:i,y:a,z:r}}};class ta extends S{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=A.vec3(t.pos||[0,0,0]),this._up=A.vec3(t.up||[0,1,0]),this._normal=A.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=A.vec3(),this._rtcPos=A.vec3(),this._imageSize=A.vec2(),this._texture=new ki(this,{flipY:!0}),this._image=new Image,"jpg"!==this._type&&"png"!==this._type&&(this.error('Unsupported type - defaulting to "jpg"'),this._type="jpg"),this._node=new Ri(this,{matrix:A.inverseMat4(A.lookAtMat4v(this._pos,A.subVec3(this._pos,this._normal,A.mat4()),this._up,A.mat4())),children:[this._bitmapMesh=new ui(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new Gt(this,$i({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0})})]}),t.image?this.image=t.image:t.src?this.src=t.src:t.imageData&&(this.imageData=t.imageData),this.scene._bitmapCreated(this)}set visible(e){this._bitmapMesh.visible=e}get visible(){return this._bitmapMesh.visible}set image(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}get image(){return this._image}set src(e){if(e){this._image.onload=()=>{this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale()},this._image.src=e;switch(e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}}get src(){return this._image.src}set imageData(e){this._image.onload=()=>{this._texture.image=image,this._imageSize[0]=image.width,this._imageSize[1]=image.height,this._updateBitmapMeshScale()},this._image.src=e}get imageData(){const e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")}set type(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}get type(){return this._type}get pos(){return this._pos}get normal(){return this._normal}get up(){return this._up}set height(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}get height(){return this._height}set collidable(e){this._bitmapMesh.collidable=!1!==e}get collidable(){return this._bitmapMesh.collidable}set clippable(e){this._bitmapMesh.clippable=!1!==e}get clippable(){return this._bitmapMesh.clippable}set pickable(e){this._bitmapMesh.pickable=!1!==e}get pickable(){return this._bitmapMesh.pickable}set opacity(e){this._bitmapMesh.opacity=e}get opacity(){return this._bitmapMesh.opacity}destroy(){super.destroy(),this.scene._bitmapDestroyed(this)}_updateBitmapMeshScale(){const e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}const sa=A.OBB3(),na=A.OBB3(),ia=A.OBB3();class aa{constructor(e,t,s,n,i,a,r=null,l=0){this.model=e,this.object=null,this.parent=null,this.transform=i,this.textureSet=a,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=A.AABB3(),this._aabbWorldDirty=!1,this.layer=r,this.portionId=l,this._color=new Uint8Array([s[0],s[1],s[2],n]),this._colorize=new Uint8Array([s[0],s[1],s[2],n]),this._colorizing=!1,this._transparent=n<255,this.numTriangles=0,this.origin=null,this.entity=null,i&&i._addMesh(this)}_sceneModelDirty(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}_transformDirty(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}_updateMatrix(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}_finalize(e){this.layer.initFlags(this.portionId,e,this._transparent)}_finalize2(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}_setVisible(e){this.layer.setVisible(this.portionId,e,this._transparent)}_setColor(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}_setColorize(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}_setOpacity(e,t){const s=e<255,n=this._transparent!==s;this._color[3]=e,this._colorize[3]=e,this._transparent=s,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),n&&this.layer.setTransparent(this.portionId,t,s)}_setOffset(e){this.layer.setOffset(this.portionId,e)}_setHighlighted(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}_setXRayed(e){this.layer.setXRayed(this.portionId,e,this._transparent)}_setSelected(e){this.layer.setSelected(this.portionId,e,this._transparent)}_setEdges(e){this.layer.setEdges(this.portionId,e,this._transparent)}_setClippable(e){this.layer.setClippable(this.portionId,e,this._transparent)}_setCollidable(e){this.layer.setCollidable(this.portionId,e)}_setPickable(e){this.layer.setPickable(this.portionId,e,this._transparent)}_setCulled(e){this.layer.setCulled(this.portionId,e,this._transparent)}canPickTriangle(){return!1}drawPickTriangles(e,t){}pickTriangleSurface(e){}precisionRayPickSurface(e,t,s,n){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,n)}canPickWorldPos(){return!0}drawPickDepths(e){this.model.drawPickDepths(e)}drawPickNormals(e){this.model.drawPickNormals(e)}delegatePickedEntity(){return this.parent}getEachVertex(e){this.layer.getEachVertex(this.portionId,e)}set aabb(e){this._aabbLocal=e}get aabb(){if(this._aabbWorldDirty){if(A.AABB3ToOBB3(this._aabbLocal,sa),this.transform?(A.transformOBB3(this.transform.worldMatrix,sa,na),A.transformOBB3(this.model.worldMatrix,na,ia),A.OBB3ToAABB3(ia,this._aabbWorld)):(A.transformOBB3(this.model.worldMatrix,sa,na),A.OBB3ToAABB3(na,this._aabbWorld)),this.origin){const e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld}_destroy(){this.model.scene._renderer.putPickID(this.pickId)}}const ra=new class{constructor(){this._uint8Arrays={},this._float32Arrays={}}_clear(){this._uint8Arrays={},this._float32Arrays={}}getUInt8Array(e){let t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}getFloat32Array(e){let t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}};let la=0;const oa={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},ca=new Float32Array([1,1,1,1]),ua=new Float32Array([0,0,0,1]),ha=A.vec4(),pa=A.vec3(),Aa=A.vec3(),da=A.mat4();class fa{constructor(e,t=!1,{instancing:s=!1,edges:n=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=n,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}_getHash(){return this._scene._sectionPlanesState.getHash()}_buildShader(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}_buildVertexShader(){return[""]}_buildFragmentShader(){return[""]}_addMatricesUniformBlockLines(e,t=!1){return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}_addRemapClipPosLines(e,t=1){return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${t}));`),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}getValid(){return this._hash===this._getHash()}setSectionPlanesStateUniforms(e){const t=this._scene,{gl:s}=t.canvas,{model:n,layerIndex:i}=e,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),r=t._sectionPlanesState.sectionPlanes.length;if(a>0){const l=t._sectionPlanesState.sectionPlanes,o=i*r,c=n.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),s.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&d.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,d.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),d.lightMaps.length>0&&d.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,d.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),this._withSAO){const t=r.sao;if(t.possible){const s=l.drawingBufferWidth,n=l.drawingBufferHeight;ha[0]=s,ha[1]=n,ha[2]=t.blendCutoff,ha[3]=t.blendFactor,l.uniform4fv(this._uSAOParams,ha),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++}}if(n){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=r.xrayMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=r.highlightMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=r.selectedMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else l.uniform4fv(this._uColor,this._edges?ua:ca)}this._draw({state:o,frameCtx:e,incrementDrawState:i}),l.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,y.memory.programs--}}class Ia extends fa{constructor(e,t,{instancing:s=!1,edges:n=!1}={}){super(e,t,{instancing:s,edges:n})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=n.pickElementsCount||s.indicesBuf.numItems,a=n.pickElementsOffset?n.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,a),i&&n.drawElements++}}}class ya extends Ia{constructor(e,t){super(e,t,{instancing:!1,edges:!0})}}class ma extends fa{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;this._edges?t.drawElementsInstanced(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0,s.numInstances):(t.drawElementsInstanced(t.TRIANGLES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++)}}class va extends ma{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class wa extends fa{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),i&&n.drawArrays++}}class ga extends fa{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArraysInstanced(t.POINTS,0,s.positionsBuf.numItems,s.numInstances),i&&n.drawArrays++}}class Ea extends fa{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),i&&n.drawElements++}}class Ta extends fa{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElementsInstanced(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++}}class ba extends Ia{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i;const a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class Da extends Ia{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching flat-shading draw vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._lightsState,s=e._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),n){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,s=t.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}class Ra extends ya{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ca extends ya{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class _a extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class Ba extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Oa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec3 worldNormal = octDecode(normal.xy); "),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Sa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching occlusion vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching occlusion fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class Na extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching depth fragment shader"),n.push("precision highp float;"),n.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}}class xa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class La extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry shadow vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push(" int colorFlag = int(flags) & 0xF;"),s.push(" bool visible = (colorFlag > 0);"),s.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push(" if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry shadow fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class Ma extends Ia{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Triangles batching quality draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),r.push("uniform sampler2D uAOMap;"),r.push("in vec4 vViewPosition;"),r.push("in vec3 vViewNormal;"),r.push("in vec4 vColor;"),r.push("in vec2 vUV;"),r.push("in vec2 vMetallicRoughness;"),n.lightMaps.length>0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick flat normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick flat normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Ha extends Ia{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching color texture vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._lightsState,n=e._sectionPlanesState,i=n.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,t=s.lights.length;e4096?e=4096:e<1024&&(e=1024),ja=e}get maxDataTextureHeight(){return ja}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Va=e}get maxGeometryBatchSize(){return Va}}const Qa=new ka;class Wa{constructor(){this.maxVerts=Qa.maxGeometryBatchSize,this.maxIndices=3*Qa.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const za=A.mat4(),Ka=A.mat4();function Ya(e,t,s){const n=e.length,i=new Uint16Array(n),a=t[0],r=t[1],l=t[2],o=t[3]-a,c=t[4]-r,u=t[5]-l,h=65525,p=h/o,d=h/c,f=h/u,I=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(n))*(i>=0?1:-1),n=e,i=t}return new Int8Array([Math[t](127.5*n+(n<0?-1:0)),Math[s](127.5*i+(i<0?-1:0))])}function Ja(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}const Za=A.vec3(),$a=A.vec3(),er=A.vec3(),tr=A.vec3(),sr=A.mat4();class nr extends fa{drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Za;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=$a;if(o){const e=er;A.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,sr),y=tr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),l.indicesBuf.bind(),r.drawElements(r.TRIANGLES,l.indicesBuf.numItems,l.indicesBuf.itemType,0),l.indicesBuf.unbind()}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ir=A.vec3(),ar=A.vec3(),rr=A.vec3(),lr=A.vec3(),or=A.mat4();class cr extends fa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=ir;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=ar;if(o){const e=rr;A.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,or),y=lr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElements(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0),l.edgeIndicesBuf.unbind()):r.drawArrays(r.POINTS,0,l.positionsBuf.numItems)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;const s=[];return s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class ur{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new nr(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new cr(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new nr(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new cr(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const hr={};const pr=A.mat4(),Ar=A.mat4(),dr=A.vec4([0,0,0,1]),fr=A.vec3(),Ir=A.vec3(),yr=A.vec3(),mr=A.vec3(),vr=A.vec3(),wr=A.vec3(),gr=A.vec3();class Er{constructor(e){this.model=e.model,this.sortId="TrianglesBatchingLayer"+(e.solid?"-solid":"-surface")+(e.autoNormals?"-autonormals":"-normals")+(e.textureSet&&e.textureSet.colorTexture?"-colorTexture":"")+(e.textureSet&&e.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Ga[t];return s||(s=new Ua(e),Ga[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ga[t],s._destroy()}))),s}(e.model.scene),this._snapBatchingRenderers=function(e){const t=e.id;let s=hr[t];return s||(s=new ur(e),hr[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete hr[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Wa(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({origin:A.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:e.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=A.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=A.mat3(e.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,e.origin&&this._state.origin.set(e.origin),this.solid=!!e.solid}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=a.length;e0){const e=pr;y?A.inverseMat4(A.transposeMat4(y,Ar),e):A.identityMat4(e,e),function(e,t,s,n,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let r,l,o,c,u,h,p=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(h=0;hu&&(o=r,u=c),r=qa(d,"floor","ceil"),l=Ja(r),c=a(d,l),c>u&&(o=r,u=c),r=qa(d,"ceil","ceil"),l=Ja(r),c=a(d,l),c>u&&(o=r,u=c),n[i+h+0]=o[0],n[i+h+1]=o[1],n[i+h+2]=0}(e,i,i.length,w.normals,w.normals.length)}if(o)for(let e=0,t=o.length;e0)for(let e=0,t=r.length;e0)for(let e=0,t=l.length;e0){const n=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):Ya(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=A.mat4());if(e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const n=new Int8Array(s.normals);let i=!0;e.normalsBuf=new He(t,t.ARRAY_BUFFER,n,s.normals.length,3,t.STATIC_DRAW,i)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.uv.length>0)if(e.uvDecodeMatrix){let n=!1;e.uvBuf=new He(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,n)}else{const n=Ft.getUVBounds(s.uv),i=Ft.compressUVs(s.uv,n.min,n.max),a=i.quantized;let r=!1;e.uvDecodeMatrix=A.mat3(i.decodeMatrix),e.uvBuf=new He(t,t.ARRAY_BUFFER,a,a.length,2,t.STATIC_DRAW,r)}if(s.metallicRoughness.length>0){const n=new Uint8Array(s.metallicRoughness);let i=!1;e.metallicRoughnessBuf=new He(t,t.ARRAY_BUFFER,n,s.metallicRoughness.length,2,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n),a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new He(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const n=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}isEmpty(){return!this._state.indicesBuf}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=e,n=this._portions[s],i=4*n.vertsBaseIndex,a=4*n.numVerts,r=this._scratchMemory.getUInt8Array(a),l=t[0],o=t[1],c=t[2],u=t[3];for(let e=0;em)&&(m=e,n.set(v),i&&A.triangleNormal(d,f,I,i),y=!0)}}return y&&i&&(A.transformVec3(this.model.worldNormalMatrix,i,i),A.normalizeVec3(i)),y}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}class Tr extends ma{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i,a,r;const l=[];for(l.push("#version 300 es"),l.push("// Instancing geometry drawing vertex shader"),l.push("uniform int renderPass;"),l.push("in vec3 position;"),l.push("in vec2 normal;"),l.push("in vec4 color;"),l.push("in float flags;"),e.entityOffsetsEnabled&&l.push("in vec3 offset;"),l.push("in vec4 modelMatrixCol0;"),l.push("in vec4 modelMatrixCol1;"),l.push("in vec4 modelMatrixCol2;"),l.push("in vec4 modelNormalMatrixCol0;"),l.push("in vec4 modelNormalMatrixCol1;"),l.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(l,!0),e.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;")),l.push("uniform vec4 lightAmbient;"),i=0,a=s.lights.length;i= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"),n&&(l.push("out vec4 vWorldPosition;"),l.push("out float vFlags;")),l.push("out vec4 vColor;"),l.push("void main(void) {"),l.push("int colorFlag = int(flags) & 0xF;"),l.push("if (colorFlag != renderPass) {"),l.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),l.push("} else {"),l.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),l.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix * worldPosition; "),l.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),l.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),l.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),i=0,a=s.lights.length;i0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class br extends ma{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState;let n,i;const a=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry flat-shading drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),a){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}for(r.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),r.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),r.push("float lambertian = 1.0;"),r.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),r.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),r.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),n=0,i=s.lights.length;n0,s=[];return s.push("#version 300 es"),s.push("// Instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing fill fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Pr extends va{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Rr extends va{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Cr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class _r extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Br extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec2 normal;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("in vec4 modelNormalMatrixCol0;"),s.push("in vec4 modelNormalMatrixCol1;"),s.push("in vec4 modelNormalMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Or extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class Sr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}class Nr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class xr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}const Lr={3e3:"linearToLinear",3001:"sRGBToLinear"};class Mr extends ma{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Instancing geometry quality drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),r.push("#define PI 3.14159265359"),r.push("#define RECIPROCAL_PI 0.31830988618"),r.push("#define RECIPROCAL_PI2 0.15915494"),r.push("#define EPSILON 1e-6"),r.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),r.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),r.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),r.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),r.push(" return normalize(surf_norm );"),r.push(" }"),r.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),r.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),r.push(" vec2 st0 = dFdx( uv.st );"),r.push(" vec2 st1 = dFdy( uv.st );"),r.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),r.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),r.push(" vec3 N = normalize( surf_norm );"),r.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),r.push(" mat3 tsn = mat3( S, T, N );"),r.push(" return normalize( tsn * mapN );"),r.push("}"),r.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),r.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),r.push("}"),r.push("struct IncidentLight {"),r.push(" vec3 color;"),r.push(" vec3 direction;"),r.push("};"),r.push("struct ReflectedLight {"),r.push(" vec3 diffuse;"),r.push(" vec3 specular;"),r.push("};"),r.push("struct Geometry {"),r.push(" vec3 position;"),r.push(" vec3 viewNormal;"),r.push(" vec3 worldNormal;"),r.push(" vec3 viewEyeDir;"),r.push("};"),r.push("struct Material {"),r.push(" vec3 diffuseColor;"),r.push(" float specularRoughness;"),r.push(" vec3 specularColor;"),r.push(" float shine;"),r.push("};"),r.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),r.push(" float r = ggxRoughness + 0.0001;"),r.push(" return (2.0 / (r * r) - 2.0);"),r.push("}"),r.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),r.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),r.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),r.push("}"),n.reflectionMaps.length>0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = "+Lr[n.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = "+Lr[n.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&s.push("out float vFlags;"),s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&s.push("vFlags = flags;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Hr extends ma{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState;let i,a;const r=s.getNumAllocatedSectionPlanes()>0,l=[];if(l.push("#version 300 es"),l.push("// Instancing geometry drawing fragment shader"),l.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),l.push("precision highp float;"),l.push("precision highp int;"),l.push("#else"),l.push("precision mediump float;"),l.push("precision mediump int;"),l.push("#endif"),e.logarithmicDepthBufferEnabled&&(l.push("in float isPerspective;"),l.push("uniform float logDepthBufFC;"),l.push("in float vFragDepth;")),l.push("uniform sampler2D uColorMap;"),this._withSAO&&(l.push("uniform sampler2D uOcclusionTexture;"),l.push("uniform vec4 uSAOParams;"),l.push("const float packUpscale = 256. / 255.;"),l.push("const float unpackDownScale = 255. / 256.;"),l.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),l.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),l.push("float unpackRGBToFloat( const in vec4 v ) {"),l.push(" return dot( v, unPackFactors );"),l.push("}")),l.push("uniform float gammaFactor;"),l.push("vec4 linearToLinear( in vec4 value ) {"),l.push(" return value;"),l.push("}"),l.push("vec4 sRGBToLinear( in vec4 value ) {"),l.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),l.push("}"),l.push("vec4 gammaToLinear( in vec4 value) {"),l.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),l.push("}"),t&&(l.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),l.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),l.push("}")),r){l.push("in vec4 vWorldPosition;"),l.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),l.push(" if (clippable) {"),l.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),l.push(" discard;"),l.push(" }"),l.push("}")}for(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),l.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),l.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),l.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,a=n.lights.length;i0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Kr=A.vec3(),Yr=A.vec3(),Xr=A.vec3(),qr=A.vec3(),Jr=A.mat4();class Zr extends fa{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Kr;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Yr;if(o){const e=A.transformPoint3(u,o,Xr);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,Jr),y=qr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(l.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(l.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(l.modelMatrixCol2Buf),r.vertexAttribDivisor(this._aModelMatrixCol0.location,1),r.vertexAttribDivisor(this._aModelMatrixCol1.location,1),r.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(l.flagsBuf),r.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElementsInstanced(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0,l.numInstances),l.edgeIndicesBuf.unbind()):r.drawArraysInstanced(r.POINTS,0,l.positionsBuf.numItems,l.numInstances),r.vertexAttribDivisor(this._aModelMatrixCol0.location,0),r.vertexAttribDivisor(this._aModelMatrixCol1.location,0),r.vertexAttribDivisor(this._aModelMatrixCol2.location,0),r.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&r.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class $r{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new zr(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Zr(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new zr(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Zr(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const el={};const tl=new Float32Array(1),sl=A.vec4([0,0,0,1]),nl=new Float32Array(3),il=A.vec3(),al=A.vec3(),rl=A.vec3(),ll=A.vec3(),ol=A.vec3(),cl=A.vec3(),ul=A.vec3(),hl=new Float32Array(4);class pl{constructor(e){this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._instancingRenderers=function(e){const t=e.id;let s=Gr[t];return s||(s=new Ur(e),Gr[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Gr[t],s._destroy()}))),s}(e.model.scene),this._snapInstancingRenderers=function(e){const t=e.id;let s=el[t];return s||(s=new $r(e),el[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete el[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({numInstances:0,obb:A.OBB3(),origin:A.vec3(),geometry:e.geometry,textureSet:e.textureSet,pbrSupported:!1,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,e.origin&&this._state.origin.set(e.origin),this._finalized=!1,this.solid=!!e.solid,this.numIndices=e.geometry.numIndices}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new He(n,n.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,n.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new He(n,n.ARRAY_BUFFER,t,this._metallicRoughness.length,2,n.STATIC_DRAW,s)}if(a>0){let t=!1;e.flagsBuf=new He(n,n.ARRAY_BUFFER,new Float32Array(a),a,1,n.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,n.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new He(n,n.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,n.STATIC_DRAW,s),e.positionsDecodeMatrix=A.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),i=!1;e.colorsBuf=new He(n,n.ARRAY_BUFFER,s,s.length,4,n.STATIC_DRAW,i)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new He(n,n.ARRAY_BUFFER,s,s.length,2,n.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,n.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,n.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelMatrixCol1Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelMatrixCol2Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new He(n,n.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,n.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&s&&s.colorTexture&&s.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!s&&!!s.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?1:0)<<16,tl[0]=A,this._state.flagsBuf&&this._state.flagsBuf.setData(tl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(nl[0]=t[0],nl[1]=t[1],nl[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(nl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const s=this._state,n=s.geometry,i=this._portions[e];if(!i)return void this.model.error("portion not found: "+e);const a=n.quantizedPositions,r=s.origin,l=i.offset,o=r[0]+l[0],c=r[1]+l[1],u=r[2]+l[2],h=sl,p=i.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=a.length;ev)&&(v=e,n.set(w),i&&A.triangleNormal(f,I,y,i),m=!0)}}return m&&i&&(A.transformVec3(l.normalMatrix,i,i),A.transformVec3(this.model.worldNormalMatrix,i,i),A.normalizeVec3(i)),m}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}class Al extends Ea{drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class dl extends Ea{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class fl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Al(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new dl(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const Il={};class yl{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class ml{constructor(e){this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Il[t];return s||(s=new fl(e),Il[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Il[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new yl(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:A.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=A.vec3(e.origin))}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ya(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.colors.length>0){const n=s.colors.length/4,i=new Float32Array(n);let a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2],c=t[3];for(let e=0;e0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 lightAmbient;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class wl extends Ta{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 color;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class gl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new vl(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new wl(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const El={};const Tl=new Uint8Array(4),bl=new Float32Array(1),Dl=new Float32Array(3),Pl=new Float32Array(4);class Rl{constructor(e){this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._linesInstancingRenderers=function(e){const t=e.id;let s=El[t];return s||(s=new gl(e),El[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete El[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({obb:A.OBB3(),numInstances:0,origin:null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=A.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new He(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(s>0){let t=!1;this._state.flagsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(s),s,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Tl[0]=t[0],Tl[1]=t[1],Tl[2]=t[2],Tl[3]=t[3],this._state.colorsBuf.setData(Tl,4*e,4)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?255:0)<<16,bl[0]=A,this._state.flagsBuf.setData(bl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Dl[0]=t[0],Dl[1]=t[1],Dl[2]=t[2],this._state.offsetsBuf.setData(Dl,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Pl[0]=t[0],Pl[1]=t[4],Pl[2]=t[8],Pl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Pl,s),Pl[0]=t[1],Pl[1]=t[5],Pl[2]=t[9],Pl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Pl,s),Pl[0]=t[2],Pl[1]=t[6],Pl[2]=t[10],Pl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Pl,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawPickNormals(e,t){}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}class Cl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial,n=[];return n.push("#version 300 es"),n.push("// Points batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class _l extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}class Bl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class Ol extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batched pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batched pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Sl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push(" gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}class Nl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Cl(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new _l(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Bl(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ol(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Sl(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const xl={};class Ll{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]}}class Ml{constructor(e){this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._pointsBatchingRenderers=function(e){const t=e.id;let s=xl[t];return s||(s=new Nl(e),xl[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete xl[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Ll(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:A.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=A.vec3(e.origin))}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ya(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n);let a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new He(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2];for(let e=0;e0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Hl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 silhouetteColor;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ul extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick mesh fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class Gl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class jl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Vl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class kl extends ga{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("gl_PointSize = pointSize;"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }"),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class Ql{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Fl(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Hl(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vl(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ul(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Gl(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new jl(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new kl(this._scene)),this._shadowRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}const Wl={};const zl=new Uint8Array(4),Kl=new Float32Array(1),Yl=new Float32Array(3),Xl=new Float32Array(4);class ql{constructor(e){this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._pointsInstancingRenderers=function(e){const t=e.id;let s=Wl[t];return s||(s=new Ql(e),Wl[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Wl[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({obb:A.OBB3(),numInstances:0,origin:e.origin?A.vec3(e.origin):null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let n=!1;s.flagsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,n)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;s.offsetsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(n.positionsCompressed&&n.positionsCompressed.length>0){const t=!1;s.positionsBuf=new He(e,e.ARRAY_BUFFER,n.positionsCompressed,n.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=A.mat4(n.positionsDecodeMatrix)}if(n.colorsCompressed&&n.colorsCompressed.length>0){const t=new Uint8Array(n.colorsCompressed),i=!1;s.colorsBuf=new He(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,i)}if(this._modelMatrixCol0.length>0){const t=!1;s.modelMatrixCol0Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),s.modelMatrixCol1Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),s.modelMatrixCol2Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){const t=!1;s.pickColorsBuf=new He(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}s.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";zl[0]=t[0],zl[1]=t[1],zl[2]=t[2],this._state.colorsBuf.setData(zl,3*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?255:0)<<16,Kl[0]=A,this._state.flagsBuf.setData(Kl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Yl[0]=t[0],Yl[1]=t[1],Yl[2]=t[2],this._state.offsetsBuf.setData(Yl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Xl[0]=t[0],Xl[1]=t[4],Xl[2]=t[8],Xl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Xl,s),Xl[0]=t[1],Xl[1]=t[5],Xl[2]=t[9],Xl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Xl,s),Xl[0]=t[2],Xl[1]=t[6],Xl[2]=t[10],Xl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Xl,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,oa.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,oa.PICK)}drawPickNormals(e,t){}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}class Jl{constructor(e){this.id=e.id,this.colorTexture=e.colorTexture,this.metallicRoughnessTexture=e.metallicRoughnessTexture,this.normalsTexture=e.normalsTexture,this.emissiveTexture=e.emissiveTexture,this.occlusionTexture=e.occlusionTexture}destroy(){}}class Zl{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const $l={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class eo{constructor(e,t,s){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=s}itemStart(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}itemEnd(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}itemError(e){void 0!==this.onError&&this.onError(e)}resolveURL(e){return this.urlModifier?this.urlModifier(e):e}setURLModifier(e){return this.urlModifier=e,this}addHandler(e,t){return this.handlers.push(e,t),this}removeHandler(e){const t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}getHandler(e){for(let t=0,s=this.handlers.length;t{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==no[e])return void no[e].push({onLoad:t,onProgress:s,onError:n});no[e]=[],no[e].push({onLoad:t,onProgress:s,onError:n});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),r=this.mimeType,l=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body.getReader)return t;const s=no[e],n=t.body.getReader(),i=t.headers.get("Content-Length"),a=i?parseInt(i):0,r=0!==a;let l=0;const o=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{l+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:r,loaded:l,total:a});for(let e=0,t=s.length;e{switch(l){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,r)));case"json":return e.json();default:if(void 0===r)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(r),s=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(s);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{$l.add(e,t);const s=no[e];delete no[e];for(let e=0,n=s.length;e{const s=no[e];if(void 0===s)throw this.manager.itemError(e),t;delete no[e];for(let e=0,n=s.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class ao{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let ro=0;class lo{constructor({viewer:e,transcoderPath:t,workerLimit:s}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new ao,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const n=e.capabilities;this._workerConfig={astcSupported:n.astcSupported,etc1Supported:n.etc1Supported,etc2Supported:n.etc2Supported,dxtSupported:n.dxtSupported,bptcSupported:n.bptcSupported,pvrtcSupported:n.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new io;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new io;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const n=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,n]).then((([e,t])=>{const s=lo.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(lo.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(lo.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(lo.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([n])),this._transcoderBinary=t,this._workerPool.setWorkerCreator((()=>{const e=new Worker(this._workerSourceURL),t=this._transcoderBinary.slice(0);return e.postMessage({type:"init",config:this._workerConfig,transcoderBinary:t},[t]),e}))})),ro>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),ro++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((n,i)=>{const a=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:a},e))).then((e=>{const s=e.data,{mipmaps:a,width:r,height:l,format:o,type:c,error:u,dfdTransferFn:h,dfdFlags:p}=s;if("error"===c)return i(u);t.setCompressedData({mipmaps:a,props:{format:o,minFilter:1===a.length?1006:1008,magFilter:1===a.length?1006:1008,encoding:2===h?3001:3e3,premultiplyAlpha:!!(1&p)}}),n()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),ro--}}lo.BasisFormat={ETC1S:0,UASTC_4x4:1},lo.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},lo.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},lo.BasisWorker=function(){let e,t,s;const n=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(r){const u=r.data;switch(u.type){case"init":e=u.config,h=u.transcoderBinary,t=new Promise((e=>{s={wasmBinary:h,onRuntimeInitialized:e},BASIS(s)})).then((()=>{s.initializeBasis(),void 0===s.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:r,hasAlpha:h,mipmaps:p,format:A,dfdTransferFn:d,dfdFlags:f}=function(t){const r=new s.KTX2File(new Uint8Array(t));function u(){r.close(),r.delete()}if(!r.isValid())throw u(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const h=r.isUASTC()?a.UASTC_4x4:a.ETC1S,p=r.getWidth(),A=r.getHeight(),d=r.getLevels(),f=r.getHasAlpha(),I=r.getDFDTransferFunc(),y=r.getDFDFlags(),{transcoderFormat:m,engineFormat:v}=function(t,s,r,u){let h,p;const A=t===a.ETC1S?l:o;for(let n=0;n{delete oo[t],s.destroy()}))),s} +class e{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}const t=new e;class s{constructor(e){this.id=e,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class n{constructor(){this.items=[]}}class i{constructor(e,t,s,n,i){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=n,this.getShown=i,this.itemElement=null,this.subMenu=null,this.enabled=!0}}class a{constructor(e={}){this._id=t.addItem(),this._context=null,this._enabled=!1,this._itemsCfg=[],this._rootMenu=null,this._menuList=[],this._menuMap={},this._itemList=[],this._itemMap={},this._shown=!1,this._nextId=0,this._eventSubs={},!1!==e.hideOnMouseDown&&(document.addEventListener("mousedown",(e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{e.target.classList.contains("xeokit-context-menu-item")||this.hide()})),e.items&&(this.items=e.items),this._hideOnAction=!1!==e.hideOnAction,this.context=e.context,this.enabled=!1!==e.enabled,this.hide()}on(e,t){let s=this._eventSubs[e];s||(s=[],this._eventSubs[e]=s),s.push(t)}fire(e,t){const s=this._eventSubs[e];if(s)for(let e=0,n=s.length;e{const a=this._getNextId(),r=new s(a);for(let s=0,a=e.length;s0,c=this._getNextId(),u=s.getTitle||(()=>s.title||""),h=s.doAction||s.callback||(()=>{}),p=s.getEnabled||(()=>!0),A=s.getShown||(()=>!0),d=new i(c,u,h,p,A);if(d.parentMenu=r,l.items.push(d),o){const e=t(n);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(r),this._menuMap[r.id]=r,r};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const s=t.groups;for(let t=0,n=s.length;t'),s.push("
    "),t)for(let e=0,n=t.length;e'+o+" [MORE]"):s.push('
  • '+o+"
  • ")}}s.push("
"),s.push("");const n=s.join("");document.body.insertAdjacentHTML("beforeend",n);const i=document.querySelector("."+e.id);e.menuElement=i,i.style["border-radius"]="4px",i.style.display="none",i.style["z-index"]=3e5,i.style.background="white",i.style.border="1px solid black",i.style["box-shadow"]="0 4px 5px 0 gray",i.oncontextmenu=e=>{e.preventDefault()};const a=this;let r=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(r&&(a._hideMenu(r.id),r=null));if(r&&r.id!==s.id&&(a._hideMenu(r.id),r=null),!1===t.enabled)return;const n=t.itemElement,i=s.menuElement,l=n.getBoundingClientRect();i.getBoundingClientRect();l.right+200>window.innerWidth?a._showMenu(s.id,l.left-200,l.top-1):a._showMenu(s.id,l.right-5,l.top-1),r=s})),n||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),a._context&&!1!==t.enabled&&(t.doAction&&t.doAction(a._context),this._hideOnAction?a.hide():(a._updateItemsTitles(),a._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(a._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(s=window.innerHeight-n),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}}class r{constructor(e,t={}){this.viewer=e,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=t.zoomLevel||2,this._active=!1!==t.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(()=>{this._active&&this._visible&&this.update()}))}update(){if(!this._active||!this._visible)return;if(!this._canvasPos)return;const e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),s=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",s&&(this._lensPosToggle?this._lensContainer.style.marginTop=t.bottom-t.top-this._lensCanvas.height-85+"px":this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);const n=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-n/2,this._canvasPos[1]-n/2,n,n,0,0,this._lensCanvas.width,this._lensCanvas.height);const i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){const e=this._snappedCanvasPos[0]-this._canvasPos[0],t=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft=i[0]+e*this._zoomLevel-10+"px",this._lensCursorDiv.style.marginTop=i[1]+t*this._zoomLevel-10+"px"}else this._lensCursorDiv.style.marginLeft=i[0]-10+"px",this._lensCursorDiv.style.marginTop=i[1]-10+"px"}set zoomFactor(e){this._zoomFactor=e,this.update()}get zoomFactor(){return this._zoomFactor}set canvasPos(e){this._canvasPos=e,this.update()}get canvasPos(){return this._canvasPos}set snappedCanvasPos(e){this._snappedCanvasPos=e,this.update()}get snappedCanvasPos(){return this._snappedCanvasPos}set snapped(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}get snapped(){return this._snapped}set active(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get active(){return this._active}set visible(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}get visible(){return this._visible}destroy(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}}let l=!0,o=l?Float64Array:Float32Array;const c=new o(3),u=new o(16),h=new o(16),p=new o(4),A={setDoublePrecisionEnabled(e){l=e,o=l?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>l,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(e,t){const s=t.indexOf("#");return s===e.length&&t.startsWith(e)?t.substring(s+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new o(e||2),vec3:e=>new o(e||3),vec4:e=>new o(e||4),mat3:e=>new o(e||9),mat3ToMat4:(e,t=new o(16))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t),mat4:e=>new o(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const n=new o(2);for(let i=0,a=e.length;i{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,s=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&s]}${e[s>>8&255]}-${e[s>>16&15|64]}${e[s>>24&255]}-${e[63&n|128]}${e[n>>8&255]}-${e[n>>16&255]}${e[n>>24&255]}${e[255&i]}${e[i>>8&255]}${e[i>>16&255]}${e[i>>24&255]}`}})(),clamp:(e,t,s)=>Math.max(t,Math.min(s,e)),fmod(e,t){if(ee[0]===t[0]&&e[1]===t[1]&&e[2]===t[2],negateVec3:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t),negateVec4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t),addVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s),addVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s),addVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s),addVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s),subVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s),subVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s),subVec2:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s),geometricMeanVec2(...e){const t=new o(e[0]);for(let s=1;s(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s),subScalarVec4:(e,t,s)=>(s||(s=e),s[0]=t-e[0],s[1]=t-e[1],s[2]=t-e[2],s[3]=t-e[3],s),mulVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]*t[0],s[1]=e[1]*t[1],s[2]=e[2]*t[2],s[3]=e[3]*t[3],s),mulVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s),mulVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s),mulVec2Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s),divVec3:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s),divVec4:(e,t,s)=>(s||(s=e),s[0]=e[0]/t[0],s[1]=e[1]/t[1],s[2]=e[2]/t[2],s[3]=e[3]/t[3],s),divScalarVec3:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s),divVec3Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s),divVec4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]/t,s[1]=e[1]/t,s[2]=e[2]/t,s[3]=e[3]/t,s),divScalarVec4:(e,t,s)=>(s||(s=t),s[0]=e/t[0],s[1]=e/t[1],s[2]=e/t[2],s[3]=e/t[3],s),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const s=e[0],n=e[1],i=e[2],a=t[0],r=t[1],l=t[2];return[n*l-i*r,i*a-s*l,s*r-n*a,0]},cross3Vec3(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=t[0],l=t[1],o=t[2];return s[0]=i*o-a*l,s[1]=a*r-n*o,s[2]=n*l-i*r,s},sqLenVec4:e=>A.dotVec4(e,e),lenVec4:e=>Math.sqrt(A.sqLenVec4(e)),dotVec3:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],dotVec2:(e,t)=>e[0]*t[0]+e[1]*t[1],sqLenVec3:e=>A.dotVec3(e,e),sqLenVec2:e=>A.dotVec2(e,e),lenVec3:e=>Math.sqrt(A.sqLenVec3(e)),distVec3:(()=>{const e=new o(3);return(t,s)=>A.lenVec3(A.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(A.sqLenVec2(e)),distVec2:(()=>{const e=new o(2);return(t,s)=>A.lenVec2(A.subVec2(t,s,e))})(),rcpVec3:(e,t)=>A.divScalarVec3(1,e,t),normalizeVec4(e,t){const s=1/A.lenVec4(e);return A.mulVec4Scalar(e,s,t)},normalizeVec3(e,t){const s=1/A.lenVec3(e);return A.mulVec3Scalar(e,s,t)},normalizeVec2(e,t){const s=1/A.lenVec2(e);return A.mulVec2Scalar(e,s,t)},angleVec3(e,t){let s=A.dotVec3(e,t)/Math.sqrt(A.sqLenVec3(e)*A.sqLenVec3(t));return s=s<-1?-1:s>1?1:s,Math.acos(s)},vec3FromMat4Scale:(()=>{const e=new o(3);return(t,s)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],s[0]=A.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],s[1]=A.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],s[2]=A.lenVec3(e),s)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let s=0,n=(t=Array.prototype.slice.call(t)).length;s({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||A.vec3())[0]=e.x,t[1]=e.y,t[2]=e.z,t),dupMat4:e=>e.slice(0,16),mat4To3:e=>[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]],m4s:e=>[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],setMat4ToZeroes:()=>A.m4s(0),setMat4ToOnes:()=>A.m4s(1),diagonalMat4v:e=>new o([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,n)=>A.diagonalMat4v([e,t,s,n]),diagonalMat4s:e=>A.diagonalMat4c(e,e,e,e),identityMat4:(e=new o(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),identityMat3:(e=new o(9))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e),isIdentityMat4:e=>1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15],negateMat4:(e,t)=>(t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t),addMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]+t[0],s[1]=e[1]+t[1],s[2]=e[2]+t[2],s[3]=e[3]+t[3],s[4]=e[4]+t[4],s[5]=e[5]+t[5],s[6]=e[6]+t[6],s[7]=e[7]+t[7],s[8]=e[8]+t[8],s[9]=e[9]+t[9],s[10]=e[10]+t[10],s[11]=e[11]+t[11],s[12]=e[12]+t[12],s[13]=e[13]+t[13],s[14]=e[14]+t[14],s[15]=e[15]+t[15],s),addMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]+t,s[1]=e[1]+t,s[2]=e[2]+t,s[3]=e[3]+t,s[4]=e[4]+t,s[5]=e[5]+t,s[6]=e[6]+t,s[7]=e[7]+t,s[8]=e[8]+t,s[9]=e[9]+t,s[10]=e[10]+t,s[11]=e[11]+t,s[12]=e[12]+t,s[13]=e[13]+t,s[14]=e[14]+t,s[15]=e[15]+t,s),addScalarMat4:(e,t,s)=>A.addMat4Scalar(t,e,s),subMat4:(e,t,s)=>(s||(s=e),s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],s[3]=e[3]-t[3],s[4]=e[4]-t[4],s[5]=e[5]-t[5],s[6]=e[6]-t[6],s[7]=e[7]-t[7],s[8]=e[8]-t[8],s[9]=e[9]-t[9],s[10]=e[10]-t[10],s[11]=e[11]-t[11],s[12]=e[12]-t[12],s[13]=e[13]-t[13],s[14]=e[14]-t[14],s[15]=e[15]-t[15],s),subMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]-t,s[1]=e[1]-t,s[2]=e[2]-t,s[3]=e[3]-t,s[4]=e[4]-t,s[5]=e[5]-t,s[6]=e[6]-t,s[7]=e[7]-t,s[8]=e[8]-t,s[9]=e[9]-t,s[10]=e[10]-t,s[11]=e[11]-t,s[12]=e[12]-t,s[13]=e[13]-t,s[14]=e[14]-t,s[15]=e[15]-t,s),subScalarMat4:(e,t,s)=>(s||(s=t),s[0]=e-t[0],s[1]=e-t[1],s[2]=e-t[2],s[3]=e-t[3],s[4]=e-t[4],s[5]=e-t[5],s[6]=e-t[6],s[7]=e-t[7],s[8]=e-t[8],s[9]=e-t[9],s[10]=e-t[10],s[11]=e-t[11],s[12]=e-t[12],s[13]=e-t[13],s[14]=e-t[14],s[15]=e-t[15],s),mulMat4(e,t,s){s||(s=e);const n=e[0],i=e[1],a=e[2],r=e[3],l=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=e[9],A=e[10],d=e[11],f=e[12],I=e[13],y=e[14],m=e[15],v=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],x=t[15];return s[0]=v*n+w*l+g*h+E*f,s[1]=v*i+w*o+g*p+E*I,s[2]=v*a+w*c+g*A+E*y,s[3]=v*r+w*u+g*d+E*m,s[4]=T*n+b*l+D*h+P*f,s[5]=T*i+b*o+D*p+P*I,s[6]=T*a+b*c+D*A+P*y,s[7]=T*r+b*u+D*d+P*m,s[8]=R*n+C*l+_*h+B*f,s[9]=R*i+C*o+_*p+B*I,s[10]=R*a+C*c+_*A+B*y,s[11]=R*r+C*u+_*d+B*m,s[12]=O*n+S*l+N*h+x*f,s[13]=O*i+S*o+N*p+x*I,s[14]=O*a+S*c+N*A+x*y,s[15]=O*r+S*u+N*d+x*m,s},mulMat3(e,t,s){s||(s=new o(9));const n=e[0],i=e[3],a=e[6],r=e[1],l=e[4],c=e[7],u=e[2],h=e[5],p=e[8],A=t[0],d=t[3],f=t[6],I=t[1],y=t[4],m=t[7],v=t[2],w=t[5],g=t[8];return s[0]=n*A+i*I+a*v,s[3]=n*d+i*y+a*w,s[6]=n*f+i*m+a*g,s[1]=r*A+l*I+c*v,s[4]=r*d+l*y+c*w,s[7]=r*f+l*m+c*g,s[2]=u*A+h*I+p*v,s[5]=u*d+h*y+p*w,s[8]=u*f+h*m+p*g,s},mulMat4Scalar:(e,t,s)=>(s||(s=e),s[0]=e[0]*t,s[1]=e[1]*t,s[2]=e[2]*t,s[3]=e[3]*t,s[4]=e[4]*t,s[5]=e[5]*t,s[6]=e[6]*t,s[7]=e[7]*t,s[8]=e[8]*t,s[9]=e[9]*t,s[10]=e[10]*t,s[11]=e[11]*t,s[12]=e[12]*t,s[13]=e[13]*t,s[14]=e[14]*t,s[15]=e[15]*t,s),mulMat4v4(e,t,s=A.vec4()){const n=t[0],i=t[1],a=t[2],r=t[3];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12]*r,s[1]=e[1]*n+e[5]*i+e[9]*a+e[13]*r,s[2]=e[2]*n+e[6]*i+e[10]*a+e[14]*r,s[3]=e[3]*n+e[7]*i+e[11]*a+e[15]*r,s},transposeMat4(e,t){const s=e[4],n=e[14],i=e[8],a=e[13],r=e[12],l=e[9];if(!t||e===t){const t=e[1],o=e[2],c=e[3],u=e[6],h=e[7],p=e[11];return e[1]=s,e[2]=i,e[3]=r,e[4]=t,e[6]=l,e[7]=a,e[8]=o,e[9]=u,e[11]=n,e[12]=c,e[13]=h,e[14]=p,e}return t[0]=e[0],t[1]=s,t[2]=i,t[3]=r,t[4]=e[1],t[5]=e[5],t[6]=l,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=n,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const s=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4(e){const t=e[0],s=e[1],n=e[2],i=e[3],a=e[4],r=e[5],l=e[6],o=e[7],c=e[8],u=e[9],h=e[10],p=e[11],A=e[12],d=e[13],f=e[14],I=e[15];return A*u*l*i-c*d*l*i-A*r*h*i+a*d*h*i+c*r*f*i-a*u*f*i-A*u*n*o+c*d*n*o+A*s*h*o-t*d*h*o-c*s*f*o+t*u*f*o+A*r*n*p-a*d*n*p-A*s*l*p+t*d*l*p+a*s*f*p-t*r*f*p-c*r*n*I+a*u*n*I+c*s*l*I-t*u*l*I-a*s*h*I+t*r*h*I},inverseMat4(e,t){t||(t=e);const s=e[0],n=e[1],i=e[2],a=e[3],r=e[4],l=e[5],o=e[6],c=e[7],u=e[8],h=e[9],p=e[10],A=e[11],d=e[12],f=e[13],I=e[14],y=e[15],m=s*l-n*r,v=s*o-i*r,w=s*c-a*r,g=n*o-i*l,E=n*c-a*l,T=i*c-a*o,b=u*f-h*d,D=u*I-p*d,P=u*y-A*d,R=h*I-p*f,C=h*y-A*f,_=p*y-A*I,B=1/(m*_-v*C+w*R+g*P-E*D+T*b);return t[0]=(l*_-o*C+c*R)*B,t[1]=(-n*_+i*C-a*R)*B,t[2]=(f*T-I*E+y*g)*B,t[3]=(-h*T+p*E-A*g)*B,t[4]=(-r*_+o*P-c*D)*B,t[5]=(s*_-i*P+a*D)*B,t[6]=(-d*T+I*w-y*v)*B,t[7]=(u*T-p*w+A*v)*B,t[8]=(r*C-l*P+c*b)*B,t[9]=(-s*C+n*P-a*b)*B,t[10]=(d*E-f*w+y*m)*B,t[11]=(-u*E+h*w-A*m)*B,t[12]=(-r*R+l*D-o*b)*B,t[13]=(s*R-n*D+i*b)*B,t[14]=(-d*g+f*v-I*m)*B,t[15]=(u*g-h*v+p*m)*B,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const s=t||A.identityMat4();return s[12]=e[0],s[13]=e[1],s[14]=e[2],s},translationMat3v(e,t){const s=t||A.identityMat3();return s[6]=e[0],s[7]=e[1],s},translationMat4c:(()=>{const e=new o(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,A.translationMat4v(e,i))})(),translationMat4s:(e,t)=>A.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>A.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,s,n){const i=n[3];n[0]+=i*e,n[1]+=i*t,n[2]+=i*s;const a=n[7];n[4]+=a*e,n[5]+=a*t,n[6]+=a*s;const r=n[11];n[8]+=r*e,n[9]+=r*t,n[10]+=r*s;const l=n[15];return n[12]+=l*e,n[13]+=l*t,n[14]+=l*s,n},setMat4Translation:(e,t,s)=>(s[0]=e[0],s[1]=e[1],s[2]=e[2],s[3]=e[3],s[4]=e[4],s[5]=e[5],s[6]=e[6],s[7]=e[7],s[8]=e[8],s[9]=e[9],s[10]=e[10],s[11]=e[11],s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=e[15],s),rotationMat4v(e,t,s){const n=A.normalizeVec4([t[0],t[1],t[2],0],[]),i=Math.sin(e),a=Math.cos(e),r=1-a,l=n[0],o=n[1],c=n[2];let u,h,p,d,f,I;return u=l*o,h=o*c,p=c*l,d=l*i,f=o*i,I=c*i,(s=s||A.mat4())[0]=r*l*l+a,s[1]=r*u+I,s[2]=r*p-f,s[3]=0,s[4]=r*u-I,s[5]=r*o*o+a,s[6]=r*h+d,s[7]=0,s[8]=r*p+f,s[9]=r*h-d,s[10]=r*c*c+a,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,n,i)=>A.rotationMat4v(e,[t,s,n],i),scalingMat4v:(e,t=A.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=A.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new o(3);return(t,s,n,i)=>(e[0]=t,e[1]=s,e[2]=n,A.scalingMat4v(e,i))})(),scaleMat4c:(e,t,s,n)=>(n[0]*=e,n[4]*=t,n[8]*=s,n[1]*=e,n[5]*=t,n[9]*=s,n[2]*=e,n[6]*=t,n[10]*=s,n[3]*=e,n[7]*=t,n[11]*=s,n),scaleMat4v(e,t){const s=e[0],n=e[1],i=e[2];return t[0]*=s,t[4]*=n,t[8]*=i,t[1]*=s,t[5]*=n,t[9]*=i,t[2]*=s,t[6]*=n,t[10]*=i,t[3]*=s,t[7]*=n,t[11]*=i,t},scalingMat4s:e=>A.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=A.mat4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=n+n,o=i+i,c=a+a,u=n*l,h=n*o,p=n*c,d=i*o,f=i*c,I=a*c,y=r*l,m=r*o,v=r*c;return s[0]=1-(d+I),s[1]=h+v,s[2]=p-m,s[3]=0,s[4]=h-v,s[5]=1-(u+I),s[6]=f+y,s[7]=0,s[8]=p+m,s[9]=f-y,s[10]=1-(u+d),s[11]=0,s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=1,s},mat4ToEuler(e,t,s=A.vec4()){const n=A.clamp,i=e[0],a=e[4],r=e[8],l=e[1],o=e[5],c=e[9],u=e[2],h=e[6],p=e[10];return"XYZ"===t?(s[1]=Math.asin(n(r,-1,1)),Math.abs(r)<.99999?(s[0]=Math.atan2(-c,p),s[2]=Math.atan2(-a,i)):(s[0]=Math.atan2(h,o),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-n(c,-1,1)),Math.abs(c)<.99999?(s[1]=Math.atan2(r,p),s[2]=Math.atan2(l,o)):(s[1]=Math.atan2(-u,i),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(n(h,-1,1)),Math.abs(h)<.99999?(s[1]=Math.atan2(-u,p),s[2]=Math.atan2(-a,o)):(s[1]=0,s[2]=Math.atan2(l,i))):"ZYX"===t?(s[1]=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(s[0]=Math.atan2(h,p),s[2]=Math.atan2(l,i)):(s[0]=0,s[2]=Math.atan2(-a,o))):"YZX"===t?(s[2]=Math.asin(n(l,-1,1)),Math.abs(l)<.99999?(s[0]=Math.atan2(-c,o),s[1]=Math.atan2(-u,i)):(s[0]=0,s[1]=Math.atan2(r,p))):"XZY"===t&&(s[2]=Math.asin(-n(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(h,o),s[1]=Math.atan2(r,i)):(s[0]=Math.atan2(-c,p),s[1]=0)),s},composeMat4:(e,t,s,n=A.mat4())=>(A.quaternionToRotationMat4(t,n),A.scaleMat4v(s,n),A.translateMat4v(e,n),n),decomposeMat4:(()=>{const e=new o(3),t=new o(16);return function(s,n,i,a){e[0]=s[0],e[1]=s[1],e[2]=s[2];let r=A.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const l=A.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const o=A.lenVec3(e);A.determinantMat4(s)<0&&(r=-r),n[0]=s[12],n[1]=s[13],n[2]=s[14],t.set(s);const c=1/r,u=1/l,h=1/o;return t[0]*=c,t[1]*=c,t[2]*=c,t[4]*=u,t[5]*=u,t[6]*=u,t[8]*=h,t[9]*=h,t[10]*=h,A.mat4ToQuaternion(t,i),a[0]=r,a[1]=l,a[2]=o,this}})(),getColMat4(e,t){const s=4*t;return[e[s],e[s+1],e[s+2],e[s+3]]},setRowMat4(e,t,s){e[t]=s[0],e[t+4]=s[1],e[t+8]=s[2],e[t+12]=s[3]},lookAtMat4v(e,t,s,n){n||(n=A.mat4());const i=e[0],a=e[1],r=e[2],l=s[0],o=s[1],c=s[2],u=t[0],h=t[1],p=t[2];if(i===u&&a===h&&r===p)return A.identityMat4();let d,f,I,y,m,v,w,g,E,T;return d=i-u,f=a-h,I=r-p,T=1/Math.sqrt(d*d+f*f+I*I),d*=T,f*=T,I*=T,y=o*I-c*f,m=c*d-l*I,v=l*f-o*d,T=Math.sqrt(y*y+m*m+v*v),T?(T=1/T,y*=T,m*=T,v*=T):(y=0,m=0,v=0),w=f*v-I*m,g=I*y-d*v,E=d*m-f*y,T=Math.sqrt(w*w+g*g+E*E),T?(T=1/T,w*=T,g*=T,E*=T):(w=0,g=0,E=0),n[0]=y,n[1]=w,n[2]=d,n[3]=0,n[4]=m,n[5]=g,n[6]=f,n[7]=0,n[8]=v,n[9]=E,n[10]=I,n[11]=0,n[12]=-(y*i+m*a+v*r),n[13]=-(w*i+g*a+E*r),n[14]=-(d*i+f*a+I*r),n[15]=1,n},lookAtMat4c:(e,t,s,n,i,a,r,l,o)=>A.lookAtMat4v([e,t,s],[n,i,a],[r,l,o],[]),orthoMat4c(e,t,s,n,i,a,r){r||(r=A.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/c,r[11]=0,r[12]=-(e+t)/l,r[13]=-(n+s)/o,r[14]=-(a+i)/c,r[15]=1,r},frustumMat4v(e,t,s){s||(s=A.mat4());const n=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];A.addVec4(i,n,u),A.subVec4(i,n,h);const a=2*n[2],r=h[0],l=h[1],o=h[2];return s[0]=a/r,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=a/l,s[6]=0,s[7]=0,s[8]=u[0]/r,s[9]=u[1]/l,s[10]=-u[2]/o,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i[2]/o,s[15]=0,s},frustumMat4(e,t,s,n,i,a,r){r||(r=A.mat4());const l=t-e,o=n-s,c=a-i;return r[0]=2*i/l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*i/o,r[6]=0,r[7]=0,r[8]=(t+e)/l,r[9]=(n+s)/o,r[10]=-(a+i)/c,r[11]=-1,r[12]=0,r[13]=0,r[14]=-a*i*2/c,r[15]=0,r},perspectiveMat4(e,t,s,n,i){const a=[],r=[];return a[2]=s,r[2]=n,r[1]=a[2]*Math.tan(e/2),a[1]=-r[1],r[0]=r[1]*t,a[0]=-r[0],A.frustumMat4v(a,r,i)},compareMat4:(e,t)=>e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15],transformPoint3(e,t,s=A.vec3()){const n=t[0],i=t[1],a=t[2];return s[0]=e[0]*n+e[4]*i+e[8]*a+e[12],s[1]=e[1]*n+e[5]*i+e[9]*a+e[13],s[2]=e[2]*n+e[6]*i+e[10]*a+e[14],s},transformPoint4:(e,t,s=A.vec4())=>(s[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],s[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],s[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],s[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],s),transformPoints3(e,t,s){const n=s||[],i=t.length;let a,r,l,o;const c=e[0],u=e[1],h=e[2],p=e[3],A=e[4],d=e[5],f=e[6],I=e[7],y=e[8],m=e[9],v=e[10],w=e[11],g=e[12],E=e[13],T=e[14],b=e[15];let D;for(let e=0;e{const e=new o(16),t=new o(16),s=new o(16);return function(n,i,a,r){return this.transformVec3(this.mulMat4(this.inverseMat4(i,e),this.inverseMat4(a,t),s),n,r)}})(),lerpVec3(e,t,s,n,i,a){const r=a||A.vec3(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r},lerpMat4(e,t,s,n,i,a){const r=a||A.mat4(),l=(e-t)/(s-t);return r[0]=n[0]+l*(i[0]-n[0]),r[1]=n[1]+l*(i[1]-n[1]),r[2]=n[2]+l*(i[2]-n[2]),r[3]=n[3]+l*(i[3]-n[3]),r[4]=n[4]+l*(i[4]-n[4]),r[5]=n[5]+l*(i[5]-n[5]),r[6]=n[6]+l*(i[6]-n[6]),r[7]=n[7]+l*(i[7]-n[7]),r[8]=n[8]+l*(i[8]-n[8]),r[9]=n[9]+l*(i[9]-n[9]),r[10]=n[10]+l*(i[10]-n[10]),r[11]=n[11]+l*(i[11]-n[11]),r[12]=n[12]+l*(i[12]-n[12]),r[13]=n[13]+l*(i[13]-n[13]),r[14]=n[14]+l*(i[14]-n[14]),r[15]=n[15]+l*(i[15]-n[15]),r},flatten(e){const t=[];let s,n,i,a,r;for(s=0,n=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=A.vec4()){const n=e[0]*A.DEGTORAD/2,i=e[1]*A.DEGTORAD/2,a=e[2]*A.DEGTORAD/2,r=Math.cos(n),l=Math.cos(i),o=Math.cos(a),c=Math.sin(n),u=Math.sin(i),h=Math.sin(a);return"XYZ"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o-c*u*h):"YXZ"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o+c*u*h):"ZXY"===t?(s[0]=c*l*o-r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o-c*u*h):"ZYX"===t?(s[0]=c*l*o-r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o+c*u*h):"YZX"===t?(s[0]=c*l*o+r*u*h,s[1]=r*u*o+c*l*h,s[2]=r*l*h-c*u*o,s[3]=r*l*o-c*u*h):"XZY"===t&&(s[0]=c*l*o-r*u*h,s[1]=r*u*o-c*l*h,s[2]=r*l*h+c*u*o,s[3]=r*l*o+c*u*h),s},mat4ToQuaternion(e,t=A.vec4()){const s=e[0],n=e[4],i=e[8],a=e[1],r=e[5],l=e[9],o=e[2],c=e[6],u=e[10];let h;const p=s+r+u;return p>0?(h=.5/Math.sqrt(p+1),t[3]=.25/h,t[0]=(c-l)*h,t[1]=(i-o)*h,t[2]=(a-n)*h):s>r&&s>u?(h=2*Math.sqrt(1+s-r-u),t[3]=(c-l)/h,t[0]=.25*h,t[1]=(n+a)/h,t[2]=(i+o)/h):r>u?(h=2*Math.sqrt(1+r-s-u),t[3]=(i-o)/h,t[0]=(n+a)/h,t[1]=.25*h,t[2]=(l+c)/h):(h=2*Math.sqrt(1+u-s-r),t[3]=(a-n)/h,t[0]=(i+o)/h,t[1]=(l+c)/h,t[2]=.25*h),t},vec3PairToQuaternion(e,t,s=A.vec4()){const n=Math.sqrt(A.dotVec3(e,e)*A.dotVec3(t,t));let i=n+A.dotVec3(e,t);return i<1e-8*n?(i=0,Math.abs(e[0])>Math.abs(e[2])?(s[0]=-e[1],s[1]=e[0],s[2]=0):(s[0]=0,s[1]=-e[2],s[2]=e[1])):A.cross3Vec3(e,t,s),s[3]=i,A.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=A.vec4()){const s=e[3]/2,n=Math.sin(s);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new o(16);return(t,s,n)=>(n=n||A.vec3(),A.quaternionToRotationMat4(t,e),A.mat4ToEuler(e,s,n),n)})(),mulQuaternions(e,t,s=A.vec4()){const n=e[0],i=e[1],a=e[2],r=e[3],l=t[0],o=t[1],c=t[2],u=t[3];return s[0]=r*l+n*u+i*c-a*o,s[1]=r*o+i*u+a*l-n*c,s[2]=r*c+a*u+n*o-i*l,s[3]=r*u-n*l-i*o-a*c,s},vec3ApplyQuaternion(e,t,s=A.vec3()){const n=t[0],i=t[1],a=t[2],r=e[0],l=e[1],o=e[2],c=e[3],u=c*n+l*a-o*i,h=c*i+o*n-r*a,p=c*a+r*i-l*n,d=-r*n-l*i-o*a;return s[0]=u*c+d*-r+h*-o-p*-l,s[1]=h*c+d*-l+p*-r-u*-o,s[2]=p*c+d*-o+u*-l-h*-r,s},quaternionToMat4(e,t){t=A.identityMat4(t);const s=e[0],n=e[1],i=e[2],a=e[3],r=2*s,l=2*n,o=2*i,c=r*a,u=l*a,h=o*a,p=r*s,d=l*s,f=o*s,I=l*n,y=o*n,m=o*i;return t[0]=1-(I+m),t[1]=d+h,t[2]=f-u,t[4]=d-h,t[5]=1-(p+m),t[6]=y+c,t[8]=f+u,t[9]=y-c,t[10]=1-(p+I),t},quaternionToRotationMat4(e,t){const s=e[0],n=e[1],i=e[2],a=e[3],r=s+s,l=n+n,o=i+i,c=s*r,u=s*l,h=s*o,p=n*l,A=n*o,d=i*o,f=a*r,I=a*l,y=a*o;return t[0]=1-(p+d),t[4]=u-y,t[8]=h+I,t[1]=u+y,t[5]=1-(c+d),t[9]=A-f,t[2]=h-I,t[6]=A+f,t[10]=1-(c+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion(e,t=e){const s=A.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/s,t[1]=e[1]/s,t[2]=e[2]/s,t[3]=e[3]/s,t},conjugateQuaternion:(e,t=e)=>(t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t),inverseQuaternion:(e,t)=>A.normalizeQuaternion(A.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=A.vec4()){const s=(e=A.normalizeQuaternion(e,p))[3],n=2*Math.acos(s),i=Math.sqrt(1-s*s);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=n,t},AABB3:e=>new o(e||6),AABB2:e=>new o(e||4),OBB3:e=>new o(e||32),OBB2:e=>new o(e||16),Sphere3:(e,t,s,n)=>new o([e,t,s,n]),transformOBB3(e,t,s=t){let n;const i=t.length;let a,r,l;const o=e[0],c=e[1],u=e[2],h=e[3],p=e[4],A=e[5],d=e[6],f=e[7],I=e[8],y=e[9],m=e[10],v=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n{const e=new o(3),t=new o(3),s=new o(3);return n=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5],A.subVec3(t,e,s),Math.abs(A.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new o(3),t=new o(3),s=new o(3);return(n,i)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5];const a=A.subVec3(t,e,s),r=i[0]-n[0],l=n[3]-i[0],o=i[1]-n[1],c=n[4]-i[1],u=i[2]-n[2],h=n[5]-i[2];return a[0]+=r>l?r:l,a[1]+=o>c?o:c,a[2]+=u>h?u:h,Math.abs(A.lenVec3(a))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const s=t||A.vec3();return s[0]=(e[0]+e[3])/2,s[1]=(e[1]+e[4])/2,s[2]=(e[2]+e[5])/2,s},getAABB2Center(e,t){const s=t||A.vec2();return s[0]=(e[2]+e[0])/2,s[1]=(e[3]+e[1])/2,s},collapseAABB3:(e=A.AABB3())=>(e[0]=A.MAX_DOUBLE,e[1]=A.MAX_DOUBLE,e[2]=A.MAX_DOUBLE,e[3]=A.MIN_DOUBLE,e[4]=A.MIN_DOUBLE,e[5]=A.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=A.OBB3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t),positions3ToAABB3:(()=>{const e=new o(3);return(t,s,n)=>{s=s||A.AABB3();let i,a,r,l=A.MAX_DOUBLE,o=A.MAX_DOUBLE,c=A.MAX_DOUBLE,u=A.MIN_DOUBLE,h=A.MIN_DOUBLE,p=A.MIN_DOUBLE;for(let s=0,d=t.length;su&&(u=i),a>h&&(h=a),r>p&&(p=r);return s[0]=l,s[1]=o,s[2]=c,s[3]=u,s[4]=h,s[5]=p,s}})(),OBB3ToAABB3(e,t=A.AABB3()){let s,n,i,a=A.MAX_DOUBLE,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE,u=A.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToAABB3(e,t=A.AABB3()){let s,n,i,a=A.MAX_DOUBLE,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE,u=A.MIN_DOUBLE;for(let t=0,h=e.length;to&&(o=s),n>c&&(c=n),i>u&&(u=i);return t[0]=a,t[1]=r,t[2]=l,t[3]=o,t[4]=c,t[5]=u,t},points3ToSphere3:(()=>{const e=new o(3);return(t,s)=>{s=s||A.vec4();let n,i=0,a=0,r=0;const l=t.length;for(n=0;nc&&(c=o);return s[3]=c,s}})(),positions3ToSphere3:(()=>{const e=new o(3),t=new o(3);return(s,n)=>{n=n||A.vec4();let i,a=0,r=0,l=0;const o=s.length;let c=0;for(i=0;ic&&(c=h);return n[3]=c,n}})(),OBB3ToSphere3:(()=>{const e=new o(3),t=new o(3);return(s,n)=>{n=n||A.vec4();let i,a=0,r=0,l=0;const o=s.length,c=o/4;for(i=0;ih&&(h=u);return n[3]=h,n}})(),getSphere3Center:(e,t=A.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=A.vec3()){let s=0,n=0,i=0;for(var a=0,r=e.length;a(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]s&&(e[0]=s),e[1]>n&&(e[1]=n),e[2]>i&&(e[2]=i),e[3](e[0]=A.MAX_DOUBLE,e[1]=A.MAX_DOUBLE,e[2]=A.MIN_DOUBLE,e[3]=A.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(n=e[0]*s[0],i=e[0]*s[3]):(n=e[0]*s[3],i=e[0]*s[0]),e[1]>0?(n+=e[1]*s[1],i+=e[1]*s[4]):(n+=e[1]*s[4],i+=e[1]*s[1]),e[2]>0?(n+=e[2]*s[2],i+=e[2]*s[5]):(n+=e[2]*s[5],i+=e[2]*s[2]);if(n<=-t&&i<=-t)return-1;return n>=-t&&i>=-t?1:0},OBB3ToAABB2(e,t=A.AABB2()){let s,n,i,a,r=A.MAX_DOUBLE,l=A.MAX_DOUBLE,o=A.MIN_DOUBLE,c=A.MIN_DOUBLE;for(let t=0,u=e.length;to&&(o=s),n>c&&(c=n);return t[0]=r,t[1]=l,t[2]=o,t[3]=c,t},expandAABB2:(e,t)=>(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2](e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]2*(1-e)*(s-t)+2*e*(n-s),tangentQuadraticBezier3:(e,t,s,n,i)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*n*(1-e)-3*e*e*n+3*e*e*i,tangentSpline:e=>6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e),catmullRomInterpolate(e,t,s,n,i){const a=.5*(s-e),r=.5*(n-t),l=i*i;return(2*t-2*s+a+r)*(i*l)+(-3*t+3*s-2*a-r)*l+a*i+t},b2p0(e,t){const s=1-e;return s*s*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,s,n){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,n)},b3p0(e,t){const s=1-e;return s*s*s*t},b3p1(e,t){const s=1-e;return 3*s*s*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,s,n,i){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,n)+this.b3p3(e,i)},triangleNormal(e,t,s,n=A.vec3()){const i=t[0]-e[0],a=t[1]-e[1],r=t[2]-e[2],l=s[0]-e[0],o=s[1]-e[1],c=s[2]-e[2],u=a*c-r*o,h=r*l-i*c,p=i*o-a*l,d=Math.sqrt(u*u+h*h+p*p);return 0===d?(n[0]=0,n[1]=0,n[2]=0):(n[0]=u/d,n[1]=h/d,n[2]=p/d),n},rayTriangleIntersect:(()=>{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3);return(a,r,l,o,c,u)=>{u=u||A.vec3();const h=A.subVec3(o,l,e),p=A.subVec3(c,l,t),d=A.cross3Vec3(r,p,s),f=A.dotVec3(h,d);if(f<1e-6)return null;const I=A.subVec3(a,l,n),y=A.dotVec3(I,d);if(y<0||y>f)return null;const m=A.cross3Vec3(I,h,i),v=A.dotVec3(r,m);if(v<0||y+v>f)return null;const w=A.dotVec3(p,m)/f;return u[0]=a[0]+w*r[0],u[1]=a[1]+w*r[1],u[2]=a[2]+w*r[2],u}})(),rayPlaneIntersect:(()=>{const e=new o(3),t=new o(3),s=new o(3),n=new o(3);return(i,a,r,l,o,c)=>{c=c||A.vec3(),a=A.normalizeVec3(a,e);const u=A.subVec3(l,r,t),h=A.subVec3(o,r,s),p=A.cross3Vec3(u,h,n);A.normalizeVec3(p,p);const d=-A.dotVec3(r,p),f=-(A.dotVec3(i,p)+d)/A.dotVec3(a,p);return c[0]=i[0]+f*a[0],c[1]=i[1]+f*a[1],c[2]=i[2]+f*a[2],c}})(),cartesianToBarycentric:(()=>{const e=new o(3),t=new o(3),s=new o(3);return(n,i,a,r,l)=>{const o=A.subVec3(r,i,e),c=A.subVec3(a,i,t),u=A.subVec3(n,i,s),h=A.dotVec3(o,o),p=A.dotVec3(o,c),d=A.dotVec3(o,u),f=A.dotVec3(c,c),I=A.dotVec3(c,u),y=h*f-p*p;if(0===y)return null;const m=1/y,v=(f*d-p*I)*m,w=(h*I-p*d)*m;return l[0]=1-v-w,l[1]=w,l[2]=v,l}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,n,i=A.vec3()){const a=e[0],r=e[1],l=e[2];return i[0]=t[0]*a+s[0]*r+n[0]*l,i[1]=t[1]*a+s[1]*r+n[1]*l,i[2]=t[2]*a+s[2]*r+n[2]*l,i},mergeVertices(e,t,s,n){const i={},a=[],r=[],l=t?[]:null,o=s?[]:null,c=[];let u,h,p,A;const d=1e4;let f,I,y=0;for(f=0,I=e.length;f{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3),a=new o(3);return(r,l,o)=>{let c,u;const h=new Array(r.length/3);let p,d,f,I,y,m,v;for(c=0,u=l.length;c{const e=new o(3),t=new o(3),s=new o(3),n=new o(3),i=new o(3),a=new o(3),r=new o(3);return(l,o,c)=>{const u=new Float32Array(l.length);for(let h=0;h>24&255,u=p>>16&255,c=p>>8&255,o=255&p,l=t[s],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+1],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,l=t[s+2],r=3*l,i[A++]=e[r],i[A++]=e[r+1],i[A++]=e[r+2],a[d++]=o,a[d++]=c,a[d++]=u,a[d++]=h,p++;return{positions:i,colors:a}},faceToVertexNormals(e,t,s={}){const n=s.smoothNormalsAngleThreshold||20,i={},a=[],r={};let l,o,c,u,h;const p=1e4;let d,f,I,y,m,v;for(f=0,y=e.length;f{const e=new o(4),t=new o(4);return(s,n,i,a,r)=>{e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=1,A.transformVec4(s,e,t),a[0]=t[0],a[1]=t[1],a[2]=t[2],e[0]=i[0],e[1]=i[1],e[2]=i[2],A.transformVec3(s,e,t),A.normalizeVec3(t),r[0]=t[0],r[1]=t[1],r[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new o(16),t=new o(16),s=new o(4),n=new o(4),i=new o(4),a=new o(4);return(r,l,o,c,u,h)=>{const p=A.mulMat4(o,l,e),d=A.inverseMat4(p,t),f=r.width,I=r.height,y=(c[0]-f/2)/(f/2),m=-(c[1]-I/2)/(I/2);s[0]=y,s[1]=m,s[2]=-1,s[3]=1,A.transformVec4(d,s,n),A.mulVec4Scalar(n,1/n[3]),i[0]=y,i[1]=m,i[2]=1,i[3]=1,A.transformVec4(d,i,a),A.mulVec4Scalar(a,1/a[3]),u[0]=a[0],u[1]=a[1],u[2]=a[2],A.subVec3(a,n,h),A.normalizeVec3(h)}})(),canvasPosToLocalRay:(()=>{const e=new o(3),t=new o(3);return(s,n,i,a,r,l,o)=>{A.canvasPosToWorldRay(s,n,i,r,e,t),A.worldRayToLocalRay(a,e,t,l,o)}})(),worldRayToLocalRay:(()=>{const e=new o(16),t=new o(4),s=new o(4);return(n,i,a,r,l)=>{const o=A.inverseMat4(n,e);t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,A.transformVec4(o,t,s),r[0]=s[0],r[1]=s[1],r[2]=s[2],A.transformVec3(o,a,l)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,n,i,a){const r=new o(6),l={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:r};let c,u;for(r[0]=r[1]=r[2]=Number.POSITIVE_INFINITY,r[3]=r[4]=r[5]=Number.NEGATIVE_INFINITY,c=0,u=s.length;cr[3]&&(r[3]=i[t]),i[t+1]r[4]&&(r[4]=i[t+1]),i[t+2]r[5]&&(r[5]=i[t+2])}}if(s.length<20||a>10)return l.triangles=s,l.leaf=!0,l;e[0]=r[3]-r[0],e[1]=r[4]-r[1],e[2]=r[5]-r[2];let p=0;e[1]>e[p]&&(p=1),e[2]>e[p]&&(p=2),l.splitDim=p;const A=(r[p]+r[p+3])/2,d=new Array(s.length);let f=0;const I=new Array(s.length);let y=0;for(c=0,u=s.length;c{const n=e.length/3,i=new Array(n);for(let e=0;e=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t},octDecodeVec2s(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t}};A.buildEdgeIndices=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}(),A.planeClipsPositions3=function(e,t,s,n=3){for(let i=0,a=s.length;i{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const s=e.objects[t];this._insertEntity(this._root,s,1)}this._needsRebuild=!1}_insertEntity(e,t,s){const n=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&A.containsAABB3(e.left.aabb,n))return void this._insertEntity(e.left,t,s+1);if(e.right&&A.containsAABB3(e.right.aabb,n))return void this._insertEntity(e.right,t,s+1);const i=e.aabb;d[0]=i[3]-i[0],d[1]=i[4]-i[1],d[2]=i[5]-i[2];let a=0;if(d[1]>d[a]&&(a=1),d[2]>d[a]&&(a=2),!e.left){const r=i.slice();if(r[a+3]=(i[a]+i[a+3])/2,e.left={aabb:r},A.containsAABB3(r,n))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const r=i.slice();if(r[a]=(i[a]+i[a+3])/2,e.right={aabb:r},A.containsAABB3(r,n))return void this._insertEntity(e.right,t,s+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class I{constructor(){this._head=[],this._headLength=0,this._tail=[],this._index=0,this._length=0}get length(){return this._length}shift(){if(this._index>=this._headLength){const e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}const e=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,e}push(e){return this._length++,this._tail.push(e),this}unshift(e){return this._head[--this._index]=e,this._length++,this}}const y={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var m=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],s=e[0].charCodeAt(0),n=s+e[1],i=s;i{};t=t||n,s=s||n;var i=new XMLHttpRequest;i.overrideMimeType("application/json"),i.open("GET",e,!0),i.addEventListener("load",(function(e){var n=e.target.response;if(200===this.status){var i;try{i=JSON.parse(n)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(i)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(n))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),i.addEventListener("error",(function(e){s(e)}),!1),i.send(null)},loadArraybuffer:function(e,t,s){var n=e=>{};t=t||n,s=s||n;const i=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(i){const e=!!i[2];var a=i[3];a=window.decodeURIComponent(a),e&&(a=window.atob(a));try{const e=new ArrayBuffer(a.length),s=new Uint8Array(e);for(var r=0;r{T.removeItem(e.id),delete B.scenes[e.id],delete E[e.id],y.components.scenes--}))},this.clear=function(){let e;for(const t in B.scenes)B.scenes.hasOwnProperty(t)&&(e=B.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete B.scenes[e.id]))},this.scheduleTask=function(e,t){b.push(e),b.push(t)},this.runTasks=function(e=-1){let t,s,n=(new Date).getTime(),i=0;for(;b.length>0&&(e<0||n0&&R>0){var t=1e3/R;_+=t,P.push(t),P.length>=30&&(_-=P.shift()),y.frame.fps=Math.round(_/P.length)}!function(e){const t=B.runTasks(e+10),s=B.getNumTasks();y.frame.tasksRun=t,y.frame.tasksScheduled=s,y.frame.tasksBudget=10}(e),function(e){for(var t in D.time=e,B.scenes)if(B.scenes.hasOwnProperty(t)){var s=B.scenes[t];D.sceneId=t,D.startTime=s.startTime,D.deltaTime=null!=D.prevTime?D.time-D.prevTime:0,s.fire("tick",D,!0)}D.prevTime=e}(e),function(){const e=B.scenes,t=!1;let s,n,i,a,r;for(r in e)e.hasOwnProperty(r)&&(s=e[r],n=E[r],n||(n=E[r]={}),i=s.ticksPerOcclusionTest,n.ticksPerOcclusionTest!==i&&(n.ticksPerOcclusionTest=i,n.renderCountdown=i),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=i),a=s.ticksPerRender,n.ticksPerRender!==a&&(n.ticksPerRender=a,n.renderCountdown=a),0==--n.renderCountdown&&(s.render(t),n.renderCountdown=a))}(),C=e,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(O):requestAnimationFrame(O)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(O):requestAnimationFrame(O);class S{get type(){return"Component"}get isComponent(){return!0}constructor(e=null,t={}){if(this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=t.viewer;else{if("Scene"===e.type)this.scene=e;else{if(!(e instanceof S))throw"Invalid param: owner must be a Component";this.scene=e.scene}this._owner=e}this._dontClear=!!t.dontClear,this._renderer=this.scene._renderer,this.meta=t.meta||{},this.id=t.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,e&&e._own(this)}glRedraw(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}glResort(){this._renderer&&this._renderer.needStateSort()}get owner(){return this._owner}isType(e){return this.type===e}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];let i;if(n)for(const s in n)n.hasOwnProperty(s)&&(i=n[s],this._eventCallDepth++,this._eventCallDepth<300?i.callback.call(i.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(t,s,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let i=this._eventSubs[t];i?this._eventSubsNum[t]++:(i={},this._eventSubs[t]=i,this._eventSubsNum[t]=1);const a=this._subIdMap.addItem();i[a]={callback:s,scope:n||this},this._subIdEvents[a]=t;const r=this._events[t];return void 0!==r&&s.call(n||this,r),a}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const s=this._eventSubs[t];s&&(delete s[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,s){const n=this,i=this.on(e,(function(e){n.off(i),t.call(s||this,e)}),s)}hasSubs(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}log(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}_message(e){return" ["+this.type+" "+g.inQuotes(this.id)+"]: "+e}warn(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}error(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}_attach(e){const t=e.name;if(!t)return void this.error("Component 'name' expected");let s=e.component;const n=e.sceneDefault,i=e.sceneSingleton,a=e.type,r=e.on,l=!1!==e.recompiles;if(s&&(g.isNumeric(s)||g.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+g.inQuotes(e))}if(!s)if(!0===i){const e=this.scene.types[a];for(const t in e)if(e.hasOwnProperty){s=e[t];break}if(!s)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===n&&(s=this.scene[t],!s))return this.error("Scene has no default component for '"+t+"'"),null;if(s){if(s.scene.id!==this.scene.id)return void this.error("Not in same scene: "+s.type+" "+g.inQuotes(s.id));if(a&&!s.isType(a))return void this.error("Expected a "+a+" type or subtype: "+s.type+" "+g.inQuotes(s.id))}this._attachments||(this._attachments={});const o=this._attached[t];let c,u,h;if(o){if(s&&o.id===s.id)return;const e=this._attachments[o.id];for(c=e.subs,u=0,h=c.length;u{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():B.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}_update(){}clear(){if(this._ownedComponents)for(var e in this._ownedComponents)if(this._ownedComponents.hasOwnProperty(e)){this._ownedComponents[e].destroy(),delete this._ownedComponents[e]}}destroy(){if(this.destroyed)return;let e,t,s,n,i,a;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],s=t.component,n=t.subs,i=0,a=n.length;i=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class F{constructor(){this.planes=[new M,new M,new M,new M,new M,new M]}}function H(e,t,s){const n=A.mulMat4(s,t,L),i=n[0],a=n[1],r=n[2],l=n[3],o=n[4],c=n[5],u=n[6],h=n[7],p=n[8],d=n[9],f=n[10],I=n[11],y=n[12],m=n[13],v=n[14],w=n[15];e.planes[0].set(l-i,h-o,I-p,w-y),e.planes[1].set(l+i,h+o,I+p,w+y),e.planes[2].set(l-a,h-c,I-d,w-m),e.planes[3].set(l+a,h+c,I+d,w+m),e.planes[4].set(l-r,h-u,I-f,w-v),e.planes[5].set(l+r,h+u,I+f,w+v)}function U(e,t){let s=F.INSIDE;const n=N,i=x;n[0]=t[0],n[1]=t[1],n[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];const a=[n,i];for(let t=0;t<6;++t){const n=e.planes[t];if(n.normal[0]*a[n.testVertex[0]][0]+n.normal[1]*a[n.testVertex[1]][1]+n.normal[2]*a[n.testVertex[2]][2]+n.offset<0)return F.OUTSIDE;n.normal[0]*a[1-n.testVertex[0]][0]+n.normal[1]*a[1-n.testVertex[1]][1]+n.normal[2]*a[1-n.testVertex[2]][2]+n.offset<0&&(s=F.INTERSECT)}return s}F.INSIDE=0,F.INTERSECT=1,F.OUTSIDE=2;class G extends S{constructor(e={}){if(!e.viewer)throw"[MarqueePicker] Missing config: viewer";if(!e.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";super(e.viewer.scene,e),this.viewer=e.viewer,this._objectsKdTree3=e.objectsKdTree3,this._canvasMarqueeCorner1=A.vec2(),this._canvasMarqueeCorner2=A.vec2(),this._canvasMarquee=A.AABB2(),this._marqueeFrustum=new F,this._marqueeFrustumProjMat=A.mat4(),this._pickMode=!1,this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement),this._marqueeElement.style.position="absolute",this._marqueeElement.style["z-index"]="40000005",this._marqueeElement.style.width="8px",this._marqueeElement.style.height="8px",this._marqueeElement.style.visibility="hidden",this._marqueeElement.style.top="0px",this._marqueeElement.style.left="0px",this._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",this._marqueeElement.style.opacity=1,this._marqueeElement.style["pointer-events"]="none"}setMarqueeCorner1(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarqueeCorner2(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarquee(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}setMarqueeVisible(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}getMarqueeVisible(){return this._marqueVisible}setPickMode(e){if(e!==G.PICK_MODE_INSIDE&&e!==G.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===G.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const e=[],t=(s,n=F.INTERSECT)=>{if(n===F.INTERSECT&&(n=U(this._marqueeFrustum,s.aabb)),n!==F.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,n=t.length;s3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&t(this._objectsKdTree3.root),this.fire("picked",e),e}_updateMarquee(){this._canvasMarquee[0]=Math.min(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[1]=Math.min(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._canvasMarquee[2]=Math.max(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[3]=Math.max(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._marqueeElement.style.width=this._canvasMarquee[2]-this._canvasMarquee[0]+"px",this._marqueeElement.style.height=this._canvasMarquee[3]-this._canvasMarquee[1]+"px",this._marqueeElement.style.left=`${this._canvasMarquee[0]}px`,this._marqueeElement.style.top=`${this._canvasMarquee[1]}px`}_buildMarqueeFrustum(){const e=this.viewer.scene.canvas.canvas,t=e.clientWidth,s=e.clientHeight,n=e.clientLeft,i=e.clientTop,a=2/t,r=2/s,l=e.clientHeight/e.clientWidth,o=(this._canvasMarquee[0]-n)*a-1,c=(this._canvasMarquee[2]-n)*a-1,u=-(this._canvasMarquee[3]-i)*r+1,h=-(this._canvasMarquee[1]-i)*r+1,p=this.viewer.scene.camera.frustum.near*(17*l);A.frustumMat4(o,c,u*l,h*l,p,1e4,this._marqueeFrustumProjMat),H(this._marqueeFrustum,this.viewer.scene.camera.viewMatrix,this._marqueeFrustumProjMat)}destroy(){super.destroy(),this._marqueeElement.parentElement&&(this._marqueeElement.parentElement.removeChild(this._marqueeElement),this._marqueeElement=null,this._objectsKdTree3=null)}}G.PICK_MODE_INTERSECTS=0,G.PICK_MODE_INSIDE=1;class j extends S{constructor(e){super(e.marqueePicker,e);const t=e.marqueePicker,s=t.viewer.scene.canvas.canvas;let n,i,a,r,l,o,c,u=!1,h=!1,p=!1;s.addEventListener("mousedown",(e=>{this.getActive()&&0===e.button&&(c=setTimeout((function(){const a=t.viewer.scene.input;a.keyDown[a.KEY_CTRL]||t.clear(),n=e.pageX,i=e.pageY,l=e.offsetX,t.setMarqueeCorner1([n,i]),u=!0,t.viewer.cameraControl.pointerEnabled=!1,t.setMarqueeVisible(!0),s.style.cursor="crosshair"}),400),h=!0)})),s.addEventListener("mouseup",(e=>{if(!this.getActive())return;if(!u&&!p)return;if(0!==e.button)return;clearTimeout(c),a=e.pageX,r=e.pageY;const s=Math.abs(a-n),l=Math.abs(r-i);u=!1,t.viewer.cameraControl.pointerEnabled=!0,p&&(p=!1),(s>3||l>3)&&t.pick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&0===e.button&&(clearTimeout(c),u&&(t.setMarqueeVisible(!1),u=!1,h=!1,p=!0,t.viewer.cameraControl.pointerEnabled=!0))}),!0),s.addEventListener("mousemove",(e=>{this.getActive()&&0===e.button&&h&&(clearTimeout(c),u&&(a=e.pageX,r=e.pageY,o=e.offsetX,t.setMarqueeVisible(!0),t.setMarqueeCorner2([a,r]),t.setPickMode(l0}log(e){console.log(`[xeokit plugin ${this.id}]: ${e}`)}warn(e){console.warn(`[xeokit plugin ${this.id}]: ${e}`)}error(e){console.error(`[xeokit plugin ${this.id}]: ${e}`)}send(e,t){}destroy(){this.viewer.removePlugin(this)}}const k=A.vec3(),Q=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(n,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,A.transformVec4(n,t,s),A.setMat4Translation(n,s,a),a.slice()}}();function W(e,t,s){const n=Float32Array.from([e[0]])[0],i=e[0]-n,a=Float32Array.from([e[1]])[0],r=e[1]-a,l=Float32Array.from([e[2]])[0],o=e[2]-l;t[0]=n,t[1]=a,t[2]=l,s[0]=i,s[1]=r,s[2]=o}function z(e,t,s,n=1e3){const i=A.getPositionsCenter(e,k),a=Math.round(i[0]/n)*n,r=Math.round(i[1]/n)*n,l=Math.round(i[2]/n)*n;s[0]=a,s[1]=r,s[2]=l;const o=0!==s[0]||0!==s[1]||0!==s[2];if(o)for(let s=0,n=e.length;s0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,s=this.meshes[0]._colorize[3];let n=255;if(t){if(e<0?e=0:e>1&&(e=1),n=Math.floor(255*e),s===n)return}else if(n=255,s===n)return;for(let e=0,t=this.meshes.length;e{this._viewPosDirty=!0,this._needUpdate()})),this._onCameraProjMatrix=this.scene.camera.on("projMatrix",(()=>{this._canvasPosDirty=!0,this._needUpdate()})),this._onEntityDestroyed=null,this._onEntityModelDestroyed=null,this._renderer.addMarker(this),this.entity=t.entity,this.worldPos=t.worldPos,this.occludable=t.occludable}_update(){if(this._viewPosDirty&&(A.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){le.set(this._viewPos),le[3]=1,A.transformPoint4(this.scene.camera.projMatrix,le,oe);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+oe[0]/oe[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-oe[1]/oe[3])*e[3]/2),this._canvasPosDirty=!1,this.fire("canvasPos",this._canvasPos)}}_setVisible(e){this._visible,this._visible=e,this.fire("visible",this._visible)}set entity(e){if(this._entity){if(this._entity===e)return;null!==this._onEntityDestroyed&&(this._entity.off(this._onEntityDestroyed),this._onEntityDestroyed=null),null!==this._onEntityModelDestroyed&&(this._entity.model.off(this._onEntityModelDestroyed),this._onEntityModelDestroyed=null)}this._entity=e,this._entity&&(this._entity instanceof re?this._onEntityModelDestroyed=this._entity.model.on("destroyed",(()=>{this._entity=null,this._onEntityModelDestroyed=null})):this._onEntityDestroyed=this._entity.on("destroyed",(()=>{this._entity=null,this._onEntityDestroyed=null}))),this.fire("entity",this._entity,!0)}get entity(){return this._entity}set occludable(e){(e=!!e)!==this._occludable&&(this._occludable=e)}get occludable(){return this._occludable}set worldPos(e){this._worldPos.set(e||[0,0,0]),W(this._worldPos,this._origin,this._rtcPos),this._occludable&&this._renderer.markerWorldPosUpdated(this),this._viewPosDirty=!0,this.fire("worldPos",this._worldPos),this._needUpdate()}get worldPos(){return this._worldPos}get origin(){return this._origin}get rtcPos(){return this._rtcPos}get viewPos(){return this._update(),this._viewPos}get canvasPos(){return this._update(),this._canvasPos}get visible(){return!!this._visible}destroy(){this.fire("destroyed",!0),this.scene.camera.off(this._onCameraViewMatrix),this.scene.camera.off(this._onCameraProjMatrix),this._entity&&(null!==this._onEntityDestroyed&&this._entity.off(this._onEntityDestroyed),null!==this._onEntityModelDestroyed&&this._entity.model.off(this._onEntityModelDestroyed)),this._renderer.removeMarker(this),super.destroy()}}class ue{constructor(e,t={}){this._color=t.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=t.thickness||1,this._thicknessClickable=t.thicknessClickable||6,this._visible=!0,this._culled=!1;var s=this._wire,n=s.style;n.border="solid "+this._thickness+"px "+this._color,n.position="absolute",n["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,n.width="0px",n.height="0px",n.visibility="visible",n.top="0px",n.left="0px",n["-webkit-transform-origin"]="0 0",n["-moz-transform-origin"]="0 0",n["-ms-transform-origin"]="0 0",n["-o-transform-origin"]="0 0",n["transform-origin"]="0 0",n["-webkit-transform"]="rotate(0deg)",n["-moz-transform"]="rotate(0deg)",n["-ms-transform"]="rotate(0deg)",n["-o-transform"]="rotate(0deg)",n.transform="rotate(0deg)",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._wireClickable,a=i.style;a.border="solid "+this._thicknessClickable+"px "+this._color,a.position="absolute",a["z-index"]=void 0===t.zIndex?"2000002":t.zIndex+1,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&i.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&i.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&i.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}get visible(){return"visible"===this._wire.style.visibility}_update(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,s=this._wire.style;s.width=Math.round(e)+"px",s.left=Math.round(this._x1)+"px",s.top=Math.round(this._y1)+"px",s["-webkit-transform"]="rotate("+t+"deg)",s["-moz-transform"]="rotate("+t+"deg)",s["-ms-transform"]="rotate("+t+"deg)",s["-o-transform"]="rotate("+t+"deg)",s.transform="rotate("+t+"deg)";var n=this._wireClickable.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,n){this._x1=e,this._y1=t,this._x2=s,this._y2=n,this._update()}setColor(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}setOpacity(e){this._wire.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}destroy(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}class he{constructor(e,t={}){this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var s=this._dot,n=s.style;n["border-radius"]="25px",n.border="solid 2px white",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,n.width="8px",n.height="8px",n.visibility=!1!==t.visible?"visible":"hidden",n.top="0px",n.left="0px",n["box-shadow"]="0 2px 5px 0 #182A3D;",n.opacity=1,n["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var i=this._dotClickable,a=i.style;a["border-radius"]="35px",a.border="solid 10px white",a.position="absolute",a["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,a.width="8px",a.height="8px",a.visibility="visible",a.top="0px",a.left="0px",a.opacity=0,a["pointer-events"]="none",t.onContextMenu,e.appendChild(i),i.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&i.addEventListener("mouseover",(s=>{t.onMouseOver(s,this),e.dispatchEvent(new MouseEvent("mouseover",s))})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&i.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&i.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&i.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&i.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&i.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()})),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.borderColor)}setPos(e,t){this._x=e,this._y=t;var s=this._dot.style;s.left=Math.round(e)-4+"px",s.top=Math.round(t)-4+"px";var n=this._dotClickable.style;n.left=Math.round(e)-9+"px",n.top=Math.round(t)-9+"px"}setFillColor(e){this._dot.style.background=e||"lightgreen"}setBorderColor(e){this._dot.style.border="solid 2px"+(e||"black")}setOpacity(e){this._dot.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setClickable(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}destroy(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}class pe{constructor(e,t={}){this._highlightClass="viewer-ruler-label-highlighted",this._prefix=t.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var s=this._label,n=s.style;n["border-radius"]="5px",n.color="white",n.padding="4px",n.border="solid 1px",n.background="lightgreen",n.position="absolute",n["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,n.width="auto",n.height="auto",n.visibility="visible",n.top="0px",n.left="0px",n["pointer-events"]="all",n.opacity=1,t.onContextMenu,s.innerText="",e.appendChild(s),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&s.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&s.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),t.onMouseWheel&&s.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&s.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&s.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&s.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&s.addEventListener("contextmenu",(e=>{t.onContextMenu(e,this),e.preventDefault()}))}setPos(e,t){this._x=e,this._y=t;var s=this._label.style;s.left=Math.round(e)-20+"px",s.top=Math.round(t)-12+"px"}setPosOnWire(e,t,s,n){var i=e+.5*(s-e),a=t+.5*(n-t),r=this._label.style;r.left=Math.round(i)-20+"px",r.top=Math.round(a)-12+"px"}setPosBetweenWires(e,t,s,n,i,a){var r=(e+s+i)/3,l=(t+n+a)/3,o=this._label.style;o.left=Math.round(r)-20+"px",o.top=Math.round(l)-12+"px"}setText(e){this._label.innerHTML=this._prefix+(e||"")}setFillColor(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}setBorderColor(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}setOpacity(e){this._label.style.opacity=e}setVisible(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setCulled(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}setHighlighted(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}setClickable(e){this._label.style["pointer-events"]=e?"all":"none"}destroy(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}var Ae=A.vec3(),de=A.vec3();class fe extends S{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._color=t.color||e.defaultColor;var s=this.plugin.viewer.scene;this._originMarker=new ce(s,t.origin),this._cornerMarker=new ce(s,t.corner),this._targetMarker=new ce(s,t.target),this._originWorld=A.vec3(),this._cornerWorld=A.vec3(),this._targetWorld=A.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const n=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},c=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._cornerDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._targetDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._originWire=new ue(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._targetWire=new ue(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._angleLabel=new pe(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onMouseDown:l,onMouseUp:o,onMouseMove:c,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._visible=!1,this._originVisible=!1,this._cornerVisible=!1,this._targetVisible=!1,this._originWireVisible=!1,this._targetWireVisible=!1,this._angleVisible=!1,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._cornerMarker.on("worldPos",(e=>{this._cornerWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.cornerVisible=t.cornerVisible,this.targetVisible=t.targetVisible,this.originWireVisible=t.originWireVisible,this.targetWireVisible=t.targetWireVisible,this.angleVisible=t.angleVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(A.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){const p=-.3,d=this._originMarker.viewPos[2],f=this._cornerMarker.viewPos[2],I=this._targetMarker.viewPos[2];if(d>p||f>p||I>p)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);A.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,s=this._cp,n=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var i=n.top-y.top,a=n.left-y.left,r=e.canvas.boundary,l=r[2],o=r[3],c=0,u=0,h=t.length;u{e.snappedToVertex||e.snappedToEdge?(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(n&&(n.visible=!0,n.canvasPos=e.canvasPos,n.snappedCanvasPos=e.canvasPos,n.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(i=!0,a=e.entity,o.set(e.worldPos),c.set(s),this._mouseState){case 0:this.markerDiv.style.marginLeft=s[0]-5+"px",this.markerDiv.style.marginTop=s[1]-5+"px";break;case 1:this._currentAngleMeasurement&&(this._currentAngleMeasurement.originWireVisible=!0,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.cornerVisible=!0,this._currentAngleMeasurement.angleVisible=!1,this._currentAngleMeasurement.corner.worldPos=e.worldPos,this._currentAngleMeasurement.corner.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer";break;case 2:this._currentAngleMeasurement&&(this._currentAngleMeasurement.targetWireVisible=!0,this._currentAngleMeasurement.targetVisible=!0,this._currentAngleMeasurement.angleVisible=!0,this._currentAngleMeasurement.target.worldPos=e.worldPos,this._currentAngleMeasurement.target.entity=e.entity),this.markerDiv.style.marginLeft="-10000px",this.markerDiv.style.marginTop="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(r=e.clientX,l=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>r+20||e.clientXl+20||e.clientY{if(i=!1,n&&(n.visible=!0,n.pointerPos=e.canvasPos,n.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,n.snapped=!1),this.markerDiv.style.marginLeft="-100px",this.markerDiv.style.marginTop="-100px",this._currentAngleMeasurement){switch(this._mouseState){case 0:this._currentAngleMeasurement.originVisible=!1;break;case 1:this._currentAngleMeasurement.cornerVisible=!1,this._currentAngleMeasurement.originWireVisible=!1,this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1;break;case 2:this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1}t.style.cursor="default"}})),this._active=!0}deactivate(){if(!this._active)return;this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.angleMeasurementsPlugin.viewer.cameraControl;t.off(this._onMouseHoverSurface),t.off(this._onPickedSurface),t.off(this._onHoverNothing),t.off(this._onPickedNothing),this._currentAngleMeasurement=null,this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentAngleMeasurement&&(this._currentAngleMeasurement.destroy(),this._currentAngleMeasurement=null),this._mouseState=0)}destroy(){this.deactivate(),super.destroy()}}class me extends V{constructor(e,t={}){super("AngleMeasurements",e),this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,angleMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,angleMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get control(){return this._defaultControl||(this._defaultControl=new ye(this,{})),this._defaultControl}get measurements(){return this._measurements}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.corner,n=e.target,i=new fe(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:s.entity,worldPos:s.worldPos},target:{entity:n.entity,worldPos:n.worldPos},visible:e.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(()=>{delete this._measurements[i.id]})),i.clickable=!0,this.fire("measurementCreated",i),i}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{this.plugin.fire("markerClicked",this)}),this._marker.addEventListener("mouseenter",this._onMouseEnterExternalMarker=()=>{this.plugin.fire("markerMouseEnter",this)}),this._marker.addEventListener("mouseleave",this._onMouseLeaveExternalMarker=()=>{this.plugin.fire("markerMouseLeave",this)}),this._markerExternal=!0):(this._markerHTML=t.markerHTML,this._htmlDirty=!0,this._markerExternal=!1),t.labelElement?(this._label=t.labelElement,this._labelExternal=!0):(this._labelHTML=t.labelHTML,this._htmlDirty=!0,this._labelExternal=!1),this._markerShown=!!t.markerShown,this._labelShown=!!t.labelShown,this._values=t.values||{},this._layoutDirty=!0,this._visibilityDirty=!0,this._buildHTML(),this._onTick=this.scene.on("tick",(()=>{this._htmlDirty&&(this._buildHTML(),this._htmlDirty=!1,this._layoutDirty=!0,this._visibilityDirty=!0),(this._layoutDirty||this._visibilityDirty)&&(this._markerShown||this._labelShown)&&(this._updatePosition(),this._layoutDirty=!1),this._visibilityDirty&&(this._marker.style.visibility=this.visible&&this._markerShown?"visible":"hidden",this._label.style.visibility=this.visible&&this._markerShown&&this._labelShown?"visible":"hidden",this._visibilityDirty=!1)})),this.on("canvasPos",(()=>{this._layoutDirty=!0})),this.on("visible",(()=>{this._visibilityDirty=!0})),this.setMarkerShown(!1!==t.markerShown),this.setLabelShown(t.labelShown),this.eye=t.eye?t.eye.slice():null,this.look=t.look?t.look.slice():null,this.up=t.up?t.up.slice():null,this.projection=t.projection}_buildHTML(){if(!this._markerExternal){this._marker&&(this._container.removeChild(this._marker),this._marker=null);let e=this._markerHTML||"

";g.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._marker=t.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(()=>{this.plugin.fire("markerClicked",this)})),this._marker.addEventListener("mouseenter",(()=>{this.plugin.fire("markerMouseEnter",this)})),this._marker.addEventListener("mouseleave",(()=>{this.plugin.fire("markerMouseLeave",this)})),this._marker.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);let e=this._labelHTML||"

";g.isArray(e)&&(e=e.join("")),e=this._renderTemplate(e);const t=document.createRange().createContextualFragment(e);this._label=t.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))}))}}_updatePosition(){const e=this.scene.canvas.boundary,t=e[0],s=e[1],n=this.canvasPos;this._marker.style.left=Math.floor(t+n[0])-12+"px",this._marker.style.top=Math.floor(s+n[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+n[0]+20)+"px",this._label.style.top=Math.floor(s+n[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}_renderTemplate(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){const s=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),s)}return e}setMarkerShown(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}getMarkerShown(){return this._markerShown}setLabelShown(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}getLabelShown(){return this._labelShown}setField(e,t){this._values[e]=t||"",this._htmlDirty=!0}getField(e){return this._values[e]}setValues(e){for(var t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setField(t,s)}}getValues(){return this._values}destroy(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),super.destroy()}}const we=A.vec3(),ge=A.vec3(),Ee=A.vec3();class Te extends V{constructor(e,t){super("Annotations",e),this._labelHTML=t.labelHTML||"
",this._markerHTML=t.markerHTML||"
",this._container=t.container||document.body,this._values=t.values||{},this.annotations={},this.surfaceOffset=t.surfaceOffset}getContainerElement(){return this._container}send(e,t){if("clearAnnotations"===e)this.clear()}set surfaceOffset(e){null==e&&(e=.3),this._surfaceOffset=e}get surfaceOffset(){return this._surfaceOffset}createAnnotation(e){var t,s;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){const n=e.pickResult;if(n.worldPos&&n.worldNormal){const e=A.normalizeVec3(n.worldNormal,we),i=A.mulVec3Scalar(e,this._surfaceOffset,ge);t=A.addVec3(n.worldPos,i,Ee),s=n.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,s=e.entity;var n=null;e.markerElementId&&((n=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var i=null;e.labelElementId&&((i=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));const a=new ve(this.viewer.scene,{id:e.id,plugin:this,entity:s,worldPos:t,container:this._container,markerElement:n,labelElement:i,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:g.apply(e.values,g.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[a.id]=a,a.on("destroyed",(()=>{delete this.annotations[a.id],this.fire("annotationDestroyed",a.id)})),this.fire("annotationCreated",a.id),a}destroyAnnotation(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}clear(){const e=Object.keys(this.annotations);for(var t=0,s=e.length;t
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}_injectDefaultCSS(){const e="xeokit-spinner-css";if(document.getElementById(e))return;const t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}_adjustPosition(){if(this._isCustom)return;const e=this._canvas,t=this._element,s=t.style;s.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",s.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}set processes(e){if(e=e||0,this._processes===e)return;if(e<0)return;const t=this._processes;this._processes=e;const s=this._element;s&&(s.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}get processes(){return this._processes}_destroy(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);const e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}const De=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class Pe extends S{constructor(e,t={}){super(e,t),this._backgroundColor=A.vec3([t.backgroundColor?t.backgroundColor[0]:1,t.backgroundColor?t.backgroundColor[1]:1,t.backgroundColor?t.backgroundColor[2]:1]),this._backgroundColorFromAmbientLight=!!t.backgroundColorFromAmbientLight,this.canvas=t.canvas,this.gl=null,this.webgl2=!1,this.transparent=!!t.transparent,this.contextAttr=t.contextAttr||{},this.contextAttr.alpha=this.transparent,this.contextAttr.preserveDrawingBuffer=!!this.contextAttr.preserveDrawingBuffer,this.contextAttr.stencil=!1,this.contextAttr.premultipliedAlpha=!!this.contextAttr.premultipliedAlpha,this.contextAttr.antialias=!1!==this.contextAttr.antialias,this.resolutionScale=t.resolutionScale,this.canvas.width=Math.round(this.canvas.clientWidth*this._resolutionScale),this.canvas.height=Math.round(this.canvas.clientHeight*this._resolutionScale),this.boundary=[this.canvas.offsetLeft,this.canvas.offsetTop,this.canvas.clientWidth,this.canvas.clientHeight],this._initWebGL(t);const s=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),s.scene._webglContextLost(),s.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){s._initWebGL(),s.gl&&(s.scene._webglContextRestored(s.gl),s.fire("webglcontextrestored",s.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let n=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(n=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{n&&(n=!1,s.canvas.width=Math.round(s.canvas.clientWidth*s._resolutionScale),s.canvas.height=Math.round(s.canvas.clientHeight*s._resolutionScale),s.boundary[0]=s.canvas.offsetLeft,s.boundary[1]=s.canvas.offsetTop,s.boundary[2]=s.canvas.clientWidth,s.boundary[3]=s.canvas.clientHeight,s.fire("boundary",s.boundary))})),this._spinner=new be(this.scene,{canvas:this.canvas,elementId:t.spinnerElementId})}get type(){return"Canvas"}get backgroundColorFromAmbientLight(){return this._backgroundColorFromAmbientLight}set backgroundColorFromAmbientLight(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}get resolutionScale(){return this._resolutionScale}set resolutionScale(e){if((e=e||1)===this._resolutionScale)return;this._resolutionScale=e;const t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}get spinner(){return this._spinner}_createCanvas(){const e="xeokit-canvas-"+A.createUUID(),t=document.getElementsByTagName("body")[0],s=document.createElement("div"),n=s.style;n.height="100%",n.width="100%",n.padding="0",n.margin="0",n.background="rgba(0,0,0,0);",n.float="left",n.left="0",n.top="0",n.position="absolute",n.opacity="1.0",n["z-index"]="-10000",s.innerHTML+='',t.appendChild(s),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,s=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,s+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:s}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?Ce.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?Ce.FS_MAX_FLOAT_PRECISION="mediump":Ce.FS_MAX_FLOAT_PRECISION="lowp":Ce.FS_MAX_FLOAT_PRECISION="mediump",Ce.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),Ce.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),Ce.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),Ce.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),Ce.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Ce.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),Ce.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),Ce.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),Ce.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),Ce.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){Ce.SUPPORTED_EXTENSIONS[e]=!0})))}class Be{constructor(){this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}get canvasPos(){return this._gotCanvasPos?this._canvasPos:null}set canvasPos(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}get origin(){return this._gotOrigin?this._origin:null}set origin(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}get direction(){return this._gotDirection?this._direction:null}set direction(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}get indices(){return this.entity&&this._gotIndices?this._indices:null}set indices(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}get localPos(){return this.entity&&this._gotLocalPos?this._localPos:null}set localPos(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}get snappedCanvasPos(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null}set snappedCanvasPos(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}get worldPos(){return this._gotWorldPos?this._worldPos:null}set worldPos(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}get viewPos(){return this.entity&&this._gotViewPos?this._viewPos:null}set viewPos(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}get bary(){return this.entity&&this._gotBary?this._bary:null}set bary(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}get worldNormal(){return this.entity&&this._gotWorldNormal?this._worldNormal:null}set worldNormal(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}get uv(){return this.entity&&this._gotUV?this._uv:null}set uv(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}reset(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}class Oe{constructor(e,t,s){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,s),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=s.split("\n"),n=[];for(let e=0;e0&&"/"===s.charAt(n+1)&&(s=s.substring(0,n)),t.push(s);return t.join("\n")}function Me(e){console.error(e.join("\n"))}class Fe{constructor(e,t){this.id=xe.addItem({}),this.source=t,this.init(e)}init(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new Oe(e,e.VERTEX_SHADER,Le(this.source.vertex)),this._fragmentShader=new Oe(e,e.FRAGMENT_SHADER,Le(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Me(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Me(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Me(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Me(this.errors);let t,s,n,i,a;if(this.compiled=!0,this.handle=e.createProgram(),!this.handle)return void(this.errors=["Failed to allocate program"]);if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void Me(this.errors);const r=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(s=0;sthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}setData(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}bind(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}unbind(){this.allocated&&this._gl.bindBuffer(this.type,null)}destroy(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}class Ue{constructor(e,t){this.scene=e,this.aabb=A.AABB3(),this.origin=A.vec3(t),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}addMarker(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}markerWorldPosUpdated(e){if(!this.markers[e.id])return;const t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}removeMarker(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}update(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}_buildMarkerList(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}_buildPositions(){let e=0;for(let t=0;t-t){s._setVisible(!1);continue}const r=s.canvasPos,l=r[0],o=r[1];l+10<0||o+10<0||l-10>n||o-10>i?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[a++]=l,this.pixels[a++]=o):s._setVisible(!0):s._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let s=0;s{this._occlusionTestListDirty=!0})),this._onCameraProjMatrix=e.camera.on("projMatrix",(()=>{this._occlusionTestListDirty=!0})),this._onCanvasBoundary=e.canvas.on("boundary",(()=>{this._occlusionTestListDirty=!0}))}addMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s||(s=new Ue(this._scene,e.origin),this._occlusionLayers[s.originHash]=s,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s,this._occlusionTestListDirty=!0}markerWorldPosUpdated(e){const t=this._markersToOcclusionLayersMap[e.id];if(!t)return void e.error("Marker has not been added to OcclusionTester");const s=e.origin.join();if(s!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let n=this._occlusionLayers[s];n||(n=new Ue(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),n.addMarker(e),this._markersToOcclusionLayersMap[e.id]=n}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let s=this._occlusionLayers[t];s&&(1===s.numMarkers?(s.destroy(),delete this._occlusionLayers[s.originHash],this._occlusionLayersListDirty=!0):s.removeMarker(e),delete this._markersToOcclusionLayersMap[e.id])}get needOcclusionTest(){return this._occlusionTestListDirty}bindRenderBuf(){const e=[this._scene.canvas.canvas.id,this._scene._sectionPlanesState.getHash()].join(";");if(e!==this._shaderSourceHash&&(this._shaderSourceHash=e,this._shaderSourceDirty=!0),this._shaderSourceDirty&&(this._buildShaderSource(),this._shaderSourceDirty=!1,this._programDirty=!0),this._programDirty&&(this._buildProgram(),this._programDirty=!1,this._occlusionTestListDirty=!0),this._occlusionLayersListDirty&&(this._buildOcclusionLayersList(),this._occlusionLayersListDirty=!1),this._occlusionTestListDirty){for(let e=0,t=this._occlusionLayersList.length;e0,s=[];return s.push("#version 300 es"),s.push("// OcclusionTester vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("vec4 worldPosition = vec4(position, 1.0); "),s.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&s.push(" vWorldPosition = worldPosition;"),s.push(" vec4 clipPos = projMatrix * viewPosition;"),s.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?s.push("vFragDepth = 1.0 + clipPos.w;"):s.push("clipPos.z += -0.001;"),s.push(" gl_Position = clipPos;"),s.push("}"),s}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,s=t.sectionPlanes.length>0,n=[];if(n.push("#version 300 es"),n.push("// OcclusionTester fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),n.push("}"),n}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Fe(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=n.sectionPlanes;for(let n=0;n{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=A.mat4();return()=>(e&&A.inverseMat4(n.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,n=this._scene,i=n.sao,a=t.drawingBufferWidth,r=t.drawingBufferHeight,l=n.camera.project._state,o=l.near,c=l.far,u=l.matrix,h=this._getInverseProjectMat(),p=Math.random(),d="perspective"===n.camera.projection;ke[0]=a,ke[1]=r,t.viewport(0,0,a,r),t.clearColor(0,0,0,1),t.disable(t.DEPTH_TEST),t.disable(t.BLEND),t.frontFace(t.CCW),t.clear(t.COLOR_BUFFER_BIT),s.bind(),t.uniform1f(this._uCameraNear,o),t.uniform1f(this._uCameraFar,c),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,u),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,h),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,i.scale*(c/5)),t.uniform1f(this._uIntensity,i.intensity),t.uniform1f(this._uBias,i.bias),t.uniform1f(this._uKernelRadius,i.kernelRadius),t.uniform1f(this._uMinResolution,i.minResolution),t.uniform2fv(this._uViewport,ke),t.uniform1f(this._uRandomSeed,p);const f=e.getDepthTexture();s.bindTexture(this._uDepthTexture,f,0),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),t.drawElements(t.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}_build(){let e=!1;const t=this._scene.sao;if(t.numSamples!==this._numSamples&&(this._numSamples=Math.floor(t.numSamples),e=!0),!e)return;const s=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Fe(s,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV; \n \n out vec2 vUV;\n \n void main () {\n gl_Position = vec4(aPosition, 1.0);\n vUV = aUV;\n }"],fragment:[`#version 300 es \n precision highp float;\n precision highp int; \n \n #define NORMAL_TEXTURE 0\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n #define NUM_SAMPLES ${this._numSamples}\n #define NUM_RINGS 4 \n \n in vec2 vUV;\n \n uniform sampler2D uDepthTexture;\n \n uniform float uCameraNear;\n uniform float uCameraFar;\n uniform mat4 uProjectMatrix;\n uniform mat4 uInverseProjectMatrix;\n \n uniform bool uPerspective;\n\n uniform float uScale;\n uniform float uIntensity;\n uniform float uBias;\n uniform float uKernelRadius;\n uniform float uMinResolution;\n uniform vec2 uViewport;\n uniform float uRandomSeed;\n\n float pow2( const in float x ) { return x*x; }\n \n highp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract(sin(sn) * c);\n }\n\n vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n const float packUpscale = 256. / 255.;\n const float unpackDownScale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. ); \n\n const float shiftRights = 1. / 256.;\n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float unpackRGBAToFloat( const in vec4 v ) { \n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n }\n\n float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n }\n \n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n if (uPerspective) {\n return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );\n } else {\n return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );\n }\n }\n\n vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {\n \tfloat clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];\n \tvec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );\n \tclipPosition *= clipW; \n \treturn ( uInverseProjectMatrix * clipPosition ).xyz;\n }\n\n vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) { \n return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n }\n\n float scaleDividedByCameraFar;\n float minResolutionMultipliedByCameraFar;\n\n float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n \tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n \tfloat viewDistance = length( viewDelta );\n \tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n \treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );\n }\n\n const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n float getAmbientOcclusion( const in vec3 centerViewPosition ) {\n \n \tscaleDividedByCameraFar = uScale / uCameraFar;\n \tminResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;\n \tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );\n\n \tfloat angle = rand( vUV + uRandomSeed ) * PI2;\n \tvec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;\n \tvec2 radiusStep = radius;\n\n \tfloat occlusionSum = 0.0;\n \tfloat weightSum = 0.0;\n\n \tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n \t\tvec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;\n \t\tradius += radiusStep;\n \t\tangle += ANGLE_STEP;\n\n \t\tfloat sampleDepth = getDepth( sampleUv );\n \t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }`]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const n=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new He(s,s.ARRAY_BUFFER,i,i.length,3,s.STATIC_DRAW),this._uvBuf=new He(s,s.ARRAY_BUFFER,n,n.length,2,s.STATIC_DRAW),this._indicesBuf=new He(s,s.ELEMENT_ARRAY_BUFFER,a,a.length,1,s.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}destroy(){this._program&&(this._program.destroy(),this._program=null)}}const We=new Float32Array(Je(17,[0,1])),ze=new Float32Array(Je(17,[1,0])),Ke=new Float32Array(function(e,t){const s=[];for(let n=0;n<=e;n++)s.push(qe(n,t));return s}(17,4)),Ye=new Float32Array(2);class Xe{constructor(e){this._scene=e,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}init(){const e=this._scene.canvas.gl;if(this._program=new Fe(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS 16\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }"]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const t=new Float32Array([1,1,0,1,0,0,1,0]),s=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),n=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new He(e,e.ARRAY_BUFFER,s,s.length,3,e.STATIC_DRAW),this._uvBuf=new He(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new He(e,e.ELEMENT_ARRAY_BUFFER,n,n.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}render(e,t,s){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=A.mat4();return()=>(e&&A.inverseMat4(a.camera.projMatrix,t),t)})());const n=this._scene.canvas.gl,i=this._program,a=this._scene,r=n.drawingBufferWidth,l=n.drawingBufferHeight,o=a.camera.project._state,c=o.near,u=o.far;n.viewport(0,0,r,l),n.clearColor(0,0,0,1),n.enable(n.DEPTH_TEST),n.disable(n.BLEND),n.frontFace(n.CCW),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),i.bind(),Ye[0]=r,Ye[1]=l,n.uniform2fv(this._uViewport,Ye),n.uniform1f(this._uCameraNear,c),n.uniform1f(this._uCameraFar,u),n.uniform1f(this._uDepthCutoff,.01),0===s?n.uniform2fv(this._uSampleOffsets,ze):n.uniform2fv(this._uSampleOffsets,We),n.uniform1fv(this._uSampleWeights,Ke);const h=e.getDepthTexture(),p=t.getTexture();i.bindTexture(this._uDepthTexture,h,0),i.bindTexture(this._uOcclusionTexture,p,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),n.drawElements(n.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function qe(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Je(e,t){const s=[];for(let n=0;n<=e;n++)s.push(t[0]*n),s.push(t[1]*n);return s}class Ze{constructor(e,t,s){s=s||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=s.size,this._hasDepthTexture=!!s.depthTexture}setSize(e){this.size=e}webglContextRestored(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}bind(...e){if(this._touch(...e),this.bound)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}createTexture(e,t,s=null){const n=this.gl,i=n.createTexture();return n.bindTexture(n.TEXTURE_2D,i),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),s?n.texStorage2D(n.TEXTURE_2D,1,s,e,t):n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,t,0,n.RGBA,n.UNSIGNED_BYTE,null),i}_touch(...e){let t,s;const n=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=n.drawingBufferWidth,s=n.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>n.deleteTexture(e))),n.deleteFramebuffer(this.buffer.framebuf),n.deleteRenderbuffer(this.buffer.renderbuf)}const i=[];let a;e.length>0?i.push(...e.map((e=>this.createTexture(t,s,e)))):i.push(this.createTexture(t,s)),this._hasDepthTexture&&(a=n.createTexture(),n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texImage2D(n.TEXTURE_2D,0,n.DEPTH_COMPONENT32F,t,s,0,n.DEPTH_COMPONENT,n.FLOAT,null));const r=n.createRenderbuffer();n.bindRenderbuffer(n.RENDERBUFFER,r),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT32F,t,s);const l=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,l);for(let e=0;e0&&n.drawBuffers(i.map(((e,t)=>n.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,a,0):n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,r),n.bindTexture(n.TEXTURE_2D,null),n.bindRenderbuffer(n.RENDERBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,l),!n.isFramebuffer(l))throw"Invalid framebuffer";n.bindFramebuffer(n.FRAMEBUFFER,null);const o=n.checkFramebufferStatus(n.FRAMEBUFFER);switch(o){case n.FRAMEBUFFER_COMPLETE:break;case n.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case n.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+o}this.buffer={framebuf:l,renderbuf:r,texture:i[0],textures:i,depthTexture:a,width:t,height:s},this.bound=!1}clear(){if(!this.bound)throw"Render buffer not bound";const e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}read(e,t,s=null,n=null,i=Uint8Array,a=4,r=0){const l=e,o=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,c=new i(a),u=this.gl;return u.readBuffer(u.COLOR_ATTACHMENT0+r),u.readPixels(l,o,1,1,s||u.RGBA,n||u.UNSIGNED_BYTE,c,0),c}readArray(e=null,t=null,s=Uint8Array,n=4,i=0){const a=new s(this.buffer.width*this.buffer.height*n),r=this.gl;return r.readBuffer(r.COLOR_ATTACHMENT0+i),r.readPixels(0,0,this.buffer.width,this.buffer.height,e||r.RGBA,t||r.UNSIGNED_BYTE,a,0),a}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,n=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const r=this.buffer.width,l=this.buffer.height,o=l/2|0,c=4*r,u=new Uint8Array(4*r);for(let e=0;ee.deleteTexture(t))),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}class $e{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let n=s[e];return n||(n=new Ze(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=n),n}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function et(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let s;switch(t){case"WEBGL_depth_texture":s=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=e.getExtension(t)}return e._cachedExtensions[t]=s,s}const tt=function(t,s){s=s||{};const n=new Re(t),i=t.canvas.canvas,a=t.canvas.gl,r=!!s.transparent,l=s.alphaDepthMask,o=new e({});let c={},u={},h=!0,p=!0,d=!0,f=!0,I=!0,m=!0,v=!0,w=!0;const g=new $e(t);let E=!1;const T=new Qe(t),b=new Xe(t);function D(){h&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableMap,n=t.drawableListPreCull;let i=0;for(let e in s)s.hasOwnProperty(e)&&(n[i++]=s[e]);n.length=i}}(),h=!1,p=!0),p&&(!function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),p=!1,d=!0),d&&function(){for(let e in c)if(c.hasOwnProperty(e)){const t=c[e],s=t.drawableListPreCull,n=t.drawableList;let i=0;for(let e=0,t=s.length;e0)for(n.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||k>0||H>0||U>0){if(a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,l||a.depthMask(!1),(H>0||U>0)&&a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),U>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(n.lastProgramId=null,t.highlightMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.enable(a.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||J>0){if(n.lastProgramId=null,t.selectedMaterial.glowThrough&&a.clear(a.DEPTH_BUFFER_BIT),a.enable(a.CULL_FACE),a.enable(a.BLEND),r?(a.blendEquation(a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA)):a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),J>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=p.size[0],n=t%s-Math.floor(s/2),i=Math.floor(t/s)-Math.floor(s/2),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2));R.push({x:n,y:i,dist:a,isVertex:r&&l?m[e+3]>y.length/2:r,result:[m[e+0],m[e+1],m[e+2],m[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[w[e+0],w[e+1],w[e+2],w[e+3]]})}let O=null,S=null,N=null,x=null;if(R.length>0){R.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),x=R[0].isVertex?"vertex":"edge";const e=R[0].result,t=R[0].normal,s=R[0].id,n=y[e[3]],i=n.origin,a=n.coordinateScale;S=A.normalizeVec3([t[0]/A.MAX_INT,t[1]/A.MAX_INT,t[2]/A.MAX_INT]),O=[e[0]*a[0]+i[0],e[1]*a[1]+i[1],e[2]*a[2]+i[2]],N=o.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===E&&null==O)return null;let L=null;null!==O&&(L=t.camera.projectWorldPos(O));const M=N&&N.delegatePickedEntity?N.delegatePickedEntity():N;return u.reset(),u.snappedToEdge="edge"===x,u.snappedToVertex="vertex"===x,u.worldPos=O,u.worldNormal=S,u.entity=M,u.canvasPos=s,u.snappedCanvasPos=L||s,u}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new Ve(t,g),this._occlusionTester.addMarker(e),t.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){D(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.clearColor(0,0,0,0),a.enable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.disable(a.BLEND),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);for(let e in c)if(c.hasOwnProperty(e)){const t=c[e].drawableList;for(let e=0,s=t.length;e{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!0:e.keyCode===this.KEY_ALT?this.altDown=!0:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!0),this.keyDown[e.keyCode]=!0,this.fire("keydown",e.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=e=>{this.enabled&&this.keyboardEnabled&&"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&(e.keyCode===this.KEY_CTRL?this.ctrlDown=!1:e.keyCode===this.KEY_ALT?this.altDown=!1:e.keyCode===this.KEY_SHIFT&&(this.shiftDown=!1),this.keyDown[e.keyCode]=!1,this.fire("keyup",e.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=e=>{this.enabled&&(this.mouseover=!0,this._getMouseCanvasPos(e),this.fire("mouseenter",this.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=e=>{this.enabled&&(this.mouseover=!1,this._getMouseCanvasPos(e),this.fire("mouseleave",this.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!0;break;case 2:this.mouseDownMiddle=!0;break;case 3:this.mouseDownRight=!0}this._getMouseCanvasPos(e),this.element.focus(),this.fire("mousedown",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=e=>{if(this.enabled){switch(e.which){case 1:this.mouseDownLeft=!1;break;case 2:this.mouseDownMiddle=!1;break;case 3:this.mouseDownRight=!1}this.fire("mouseup",this.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("click",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=e=>{if(this.enabled){switch(e.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(e),this.fire("dblclick",this.mouseCanvasPos,!0),this.mouseover&&e.preventDefault()}});const e=this.scene.tickify((()=>this.fire("mousemove",this.mouseCanvasPos,!0)));this.element.addEventListener("mousemove",this._mouseMoveListener=t=>{this.enabled&&(this._getMouseCanvasPos(t),e(),this.mouseover&&t.preventDefault())});const t=this.scene.tickify((e=>{this.fire("mousewheel",e,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=(e,s)=>{if(!this.enabled)return;const n=Math.max(-1,Math.min(1,40*-e.deltaY));t(n)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(n=>{e>=n[0]-s&&e<=n[0]+s&&t>=n[1]-s&&t<=n[1]+s&&this.fire("mouseclicked",n,!0)}))}this._eventsBound=!0}_unbindEvents(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}_getMouseCanvasPos(e){if(e){let t=e.target,s=0,n=0;for(;t.offsetParent;)s+=t.offsetLeft,n+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-n}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}setEnabled(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}getEnabled(){return this.enabled}setKeyboardEnabled(e){this.keyboardEnabled=e}getKeyboardEnabled(){return this.keyboardEnabled}destroy(){super.destroy(),this._unbindEvents()}}const nt=new e({});class it{constructor(e){this.id=nt.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){nt.removeItem(this.id)}}class at extends S{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new it({boundary:[0,0,100,100]}),this.boundary=t.boundary,this.autoBoundary=t.autoBoundary}set boundary(e){if(!this._autoBoundary){if(!e){const t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}get boundary(){return this._state.boundary}set autoBoundary(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){const t=e[2],s=e[3];this._state.boundary=[0,0,t,s],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}get autoBoundary(){return this._autoBoundary}_getState(){return this._state}destroy(){super.destroy(),this._state.destroy()}}class rt extends S{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this._fov=60,this._canvasResized=this.scene.canvas.on("boundary",this._needUpdate,this),this.fov=t.fov,this.fovAxis=t.fovAxis,this.near=t.near,this.far=t.far}_update(){const e=this.scene.canvas.boundary,t=e[2]/e[3],s=this._fovAxis;let n=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(n/=t),n=Math.min(n,120),A.perspectiveMat4(n*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}set fov(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}get fov(){return this._fov}set fovAxis(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}get fovAxis(){return this._fovAxis}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class lt extends S{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:2e3}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.scale=t.scale,this.near=t.near,this.far=t.far,this._onCanvasBoundary=this.scene.canvas.on("boundary",this._needUpdate,this)}_update(){const e=this.scene,t=.5*this._scale,s=e.canvas.boundary,n=s[2],i=s[3],a=n/i;let r,l,o,c;n>i?(r=-t,l=t,o=t/a,c=-t/a):(r=-t*a,l=t*a,o=t,c=-t),A.orthoMat4c(r,l,c,o,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set scale(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}get scale(){return this._scale}set near(e){const t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(e){const t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class ot extends S{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:1e4}),this._left=-1,this._right=1,this._bottom=-1,this._top=1,this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.left=t.left,this.right=t.right,this.bottom=t.bottom,this.top=t.top,this.near=t.near,this.far=t.far}_update(){A.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set left(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}get left(){return this._left}set right(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}get right(){return this._right}set top(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}get top(){return this._top}set bottom(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}get bottom(){return this._bottom}set near(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}get near(){return this._state.near}set far(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class ct extends S{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new it({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4()}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!1,this.matrix=t.matrix}set matrix(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}get matrix(){return this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(A.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(A.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,n,i){const a=this.scene.canvas.canvas,r=a.offsetWidth/2,l=a.offsetHeight/2;return s[0]=(e[0]-r)/r,s[1]=(e[1]-l)/l,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,n,i),i}destroy(){super.destroy(),this._state.destroy()}}const ut=A.vec3(),ht=A.vec3(),pt=A.vec3(),At=A.vec3(),dt=A.vec3(),ft=A.vec3(),It=A.vec4(),yt=A.vec4(),mt=A.vec4(),vt=A.mat4(),wt=A.mat4(),gt=A.vec3(),Et=A.vec3(),Tt=A.vec3(),bt=A.vec3();class Dt extends S{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new it({deviceMatrix:A.mat4(),hasDeviceMatrix:!1,matrix:A.mat4(),normalMatrix:A.mat4(),inverseMatrix:A.mat4()}),this._perspective=new rt(this),this._ortho=new lt(this),this._frustum=new ot(this),this._customProjection=new ct(this),this._project=this._perspective,this._eye=A.vec3([0,0,10]),this._look=A.vec3([0,0,0]),this._up=A.vec3([0,1,0]),this._worldUp=A.vec3([0,1,0]),this._worldRight=A.vec3([1,0,0]),this._worldForward=A.vec3([0,0,-1]),this.deviceMatrix=t.deviceMatrix,this.eye=t.eye,this.look=t.look,this.up=t.up,this.worldAxis=t.worldAxis,this.gimbalLock=t.gimbalLock,this.constrainPitch=t.constrainPitch,this.projection=t.projection,this._perspective.on("matrix",(()=>{"perspective"===this._projectionType&&this.fire("projMatrix",this._perspective.matrix)})),this._ortho.on("matrix",(()=>{"ortho"===this._projectionType&&this.fire("projMatrix",this._ortho.matrix)})),this._frustum.on("matrix",(()=>{"frustum"===this._projectionType&&this.fire("projMatrix",this._frustum.matrix)})),this._customProjection.on("matrix",(()=>{"customProjection"===this._projectionType&&this.fire("projMatrix",this._customProjection.matrix)}))}_update(){const e=this._state;let t;"ortho"===this.projection?(A.subVec3(this._eye,this._look,gt),A.normalizeVec3(gt,Et),A.mulVec3Scalar(Et,1e3,Tt),A.addVec3(this._look,Tt,bt),t=bt):t=this._eye,e.hasDeviceMatrix?(A.lookAtMat4v(t,this._look,this._up,wt),A.mulMat4(e.deviceMatrix,wt,e.matrix)):A.lookAtMat4v(t,this._look,this._up,e.matrix),A.inverseMat4(this._state.matrix,this._state.inverseMatrix),A.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}orbitYaw(e){let t=A.subVec3(this._eye,this._look,ut);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,vt),t=A.transformPoint3(vt,t,ht),this.eye=A.addVec3(this._look,t,pt),this.up=A.transformPoint3(vt,this._up,At)}orbitPitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._eye,this._look,ut);const s=A.cross3Vec3(A.normalizeVec3(t,ht),A.normalizeVec3(this._up,pt));A.rotationMat4v(.0174532925*e,s,vt),t=A.transformPoint3(vt,t,At),this.up=A.transformPoint3(vt,this._up,dt),this.eye=A.addVec3(t,this._look,ft)}yaw(e){let t=A.subVec3(this._look,this._eye,ut);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,vt),t=A.transformPoint3(vt,t,ht),this.look=A.addVec3(t,this._eye,pt),this._gimbalLock&&(this.up=A.transformPoint3(vt,this._up,At))}pitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._look,this._eye,ut);const s=A.cross3Vec3(A.normalizeVec3(t,ht),A.normalizeVec3(this._up,pt));A.rotationMat4v(.0174532925*e,s,vt),this.up=A.transformPoint3(vt,this._up,ft),t=A.transformPoint3(vt,t,At),this.look=A.addVec3(t,this._eye,dt)}pan(e){const t=A.subVec3(this._eye,this._look,ut),s=[0,0,0];let n;if(0!==e[0]){const i=A.cross3Vec3(A.normalizeVec3(t,[]),A.normalizeVec3(this._up,ht));n=A.mulVec3Scalar(i,e[0]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]}0!==e[1]&&(n=A.mulVec3Scalar(A.normalizeVec3(this._up,pt),e[1]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),0!==e[2]&&(n=A.mulVec3Scalar(A.normalizeVec3(t,At),e[2]),s[0]+=n[0],s[1]+=n[1],s[2]+=n[2]),this.eye=A.addVec3(this._eye,s,dt),this.look=A.addVec3(this._look,s,ft)}zoom(e){const t=A.subVec3(this._eye,this._look,ut),s=Math.abs(A.lenVec3(t,ht)),n=Math.abs(s+e);if(n<.5)return;const i=A.normalizeVec3(t,pt);this.eye=A.addVec3(this._look,A.mulVec3Scalar(i,n),At)}set eye(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}get eye(){return this._eye}set look(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}get look(){return this._look}set up(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}get up(){return this._up}set deviceMatrix(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}get deviceMatrix(){return this._state.deviceMatrix}set worldAxis(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=A.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}get worldAxis(){return this._worldAxis}get worldUp(){return this._worldUp}get xUp(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}get yUp(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}get zUp(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}get worldRight(){return this._worldRight}get worldForward(){return this._worldForward}set gimbalLock(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}get gimbalLock(){return this._gimbalLock}set constrainPitch(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}get eyeLookDist(){return A.lenVec3(A.subVec3(this._look,this._eye,ut))}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get viewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get normalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get viewNormalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get inverseViewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}get projMatrix(){return this[this.projection].matrix}get perspective(){return this._perspective}get ortho(){return this._ortho}get frustum(){return this._frustum}get customProjection(){return this._customProjection}set projection(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}get projection(){return this._projectionType}get project(){return this._project}projectWorldPos(e){const t=It,s=yt,n=mt;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,A.mulMat4v4(this.viewMatrix,t,s),A.mulMat4v4(this.projMatrix,s,n),A.mulVec3Scalar(n,1/n[3]),n[3]=1,n[1]*=-1;const i=this.scene.canvas.canvas,a=i.offsetWidth/2,r=i.offsetHeight/2;return[n[0]*a+a,n[1]*r+r]}destroy(){super.destroy(),this._state.destroy()}}class Pt extends S{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class Rt extends Pt{get type(){return"DirLight"}constructor(e,t={}){super(e,t),this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const s=this.scene.camera,n=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=n.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new it({type:"dir",dir:A.vec3([1,1,1]),color:A.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=A.identityMat4());const e=this.scene.camera,t=this._state.dir,s=e.look,n=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],i=[0,1,0];A.lookAtMat4v(n,s,i,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=A.identityMat4()),A.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new Ze(this.scene.canvas.canvas,this.scene.canvas.gl,{size:[1024,1024]})),this._shadowRenderBuf)}),this.dir=t.dir,this.color=t.color,this.intensity=t.intensity,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set dir(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get dir(){return this._state.dir}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}class Ct extends Pt{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:A.vec3([.7,.7,.7]),intensity:1},this.color=t.color,this.intensity=t.intensity,this.scene._lightCreated(this)}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}get intensity(){return this._state.intensity}destroy(){super.destroy(),this.scene._lightDestroyed(this)}}class _t extends S{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),y.memory.meshes++}destroy(){super.destroy(),y.memory.meshes--}}var Bt=function(){const e=[],t=[],s=[],n=[],i=[];let a=0;const r=new Uint16Array(3),l=new Uint16Array(3),o=new Uint16Array(3),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3();return function(y,m,v,w){!function(i,a){const r={};let l,o,c,u;const h=Math.pow(10,4);let p,A,d=0;for(p=0,A=i.length;pE)||(N=s[_.index1],x=s[_.index2],(!L&&N>65535||x>65535)&&(L=!0),g.push(N),g.push(x));return L?new Uint32Array(g):new Uint16Array(g)}}();const Ot=function(){const e=A.mat4(),t=A.mat4();return function(s,n){n=n||A.mat4();const i=s[0],a=s[1],r=s[2],l=s[3]-i,o=s[4]-a,c=s[5]-r,u=65535;return A.identityMat4(e),A.translationMat4v(s,e),A.identityMat4(t),A.scalingMat4v([l/u,o/u,c/u],t),A.mulMat4(e,t,n),n}}();var St=function(){const e=A.mat4(),t=A.mat4();return function(s,n,i){const a=new Uint16Array(s.length),r=new Float32Array([i[0]!==n[0]?65535/(i[0]-n[0]):0,i[1]!==n[1]?65535/(i[1]-n[1]):0,i[2]!==n[2]?65535/(i[2]-n[2]):0]);let l;for(l=0;l=0?1:-1),t=(1-Math.abs(i))*(a>=0?1:-1);i=e,a=t}return new Int8Array([Math[s](127.5*i+(i<0?-1:0)),Math[n](127.5*a+(a<0?-1:0))])}function Lt(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}function Mt(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Ft={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let n,i;for(n=0;n<3;n++)t[n]=Number.MAX_VALUE,s[n]=-Number.MAX_VALUE;for(n=0;nr&&(i=s,r=a),s=xt(e,l,"floor","ceil"),n=Lt(s),a=Mt(e,l,n),a>r&&(i=s,r=a),s=xt(e,l,"ceil","ceil"),n=Lt(s),a=Mt(e,l,n),a>r&&(i=s,r=a),t[l]=i[0],t[l+1]=i[1];return t},decompressNormals:function(e,t){for(let s=0,n=0,i=e.length;s=0?1:-1),a=(1-Math.abs(i))*(a>=0?1:-1));const l=Math.sqrt(i*i+a*a+r*r);t[n+0]=i/l,t[n+1]=a/l,t[n+2]=r/l,n+=3}return t},decompressNormal:function(e,t){let s=e[0],n=e[1];s=(2*s+1)/255,n=(2*n+1)/255;const i=1-Math.abs(s)-Math.abs(n);i<0&&(s=(1-Math.abs(n))*(s>=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const a=Math.sqrt(s*s+n*n+i*i);return t[0]=s/a,t[1]=n/a,t[2]=i/a,t}},Ht=y.memory,Ut=A.AABB3();class Gt extends _t{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new it({compressGeometry:!!t.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._edgeIndicesBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._aabbDirty=!0,this._boundingSphere=!0,this._aabb=null,this._aabbDirty=!0,this._obb=null,this._obbDirty=!0;const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Ft.getPositionsBounds(t.positions),n=Ft.compressPositions(t.positions,e.min,e.max);s.positions=n.quantized,s.positionsDecodeMatrix=n.decodeMatrix}else s.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(s.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Ft.getUVBounds(t.uv),n=Ft.compressUVs(t.uv,e.min,e.max);s.uv=n.quantized,s.uvDecodeMatrix=n.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Ft.compressNormals(t.normals):s.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(s.indices=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)),this._buildHash(),Ht.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Ht.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new He(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Ht.positions+=e.positionsBuf.numItems),e.normals){let s=e.compressGeometry;e.normalsBuf=new He(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,s),Ht.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new He(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Ht.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new He(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Ht.uvs+=e.uvBuf.numItems)}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}_getPickTrianglePositions(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}_getPickTriangleColors(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}_buildEdgeIndices(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=Bt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,s,s.length,1,t.STATIC_DRAW),Ht.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,s=A.buildPickTriangles(e.positions,e.indices,e.compressGeometry),n=s.positions,i=s.colors;this._pickTrianglePositionsBuf=new He(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Ht.positions+=this._pickTrianglePositionsBuf.numItems,Ht.colors+=this._pickTriangleColorsBuf.numItems}_buildPickVertexVBOs(){}_webglContextLost(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}_webglContextRestored(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}get primitive(){return this._state.primitiveName}get compressGeometry(){return this._state.compressGeometry}get positions(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Ft.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(e){const t=this._state,s=t.positions;if(s)if(s.length===e.length){if(this._state.compressGeometry){const s=Ft.getPositionsBounds(e),n=Ft.compressPositions(e,s.min,s.max);e=n.quantized,t.positionsDecodeMatrix=n.decodeMatrix}s.set(e),t.positionsBuf&&t.positionsBuf.setData(s),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}get normals(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){const e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Ft.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}}set normals(e){if(this._state.compressGeometry)return void this.error("can't update geometry normals - quantized geometry is immutable");const t=this._state,s=t.normals;s?s.length===e.length?(s.set(e),t.normalsBuf&&t.normalsBuf.setData(s),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}get uv(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Ft.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null}set uv(e){if(this._state.compressGeometry)return void this.error("can't update geometry UVs - quantized geometry is immutable");const t=this._state,s=t.uv;s?s.length===e.length?(s.set(e),t.uvBuf&&t.uvBuf.setData(s),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}get colors(){return this._state.colors}set colors(e){if(this._state.compressGeometry)return void this.error("can't update geometry colors - quantized geometry is immutable");const t=this._state,s=t.colors;s?s.length===e.length?(s.set(e),t.colorsBuf&&t.colorsBuf.setData(s),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}get indices(){return this._state.indices}get aabb(){return this._aabbDirty&&(this._aabb||(this._aabb=A.AABB3()),A.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=A.OBB3()),A.positions3ToAABB3(this._state.positions,Ut,this._state.positionsDecodeMatrix),A.AABB3ToOBB3(Ut,this._obb),this._obbDirty=!1),this._obb}get numTriangles(){return this._numTriangles}_setAABBDirty(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Ht.meshes--}}function jt(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return g.apply(e,{positions:[h,p,A,o,p,A,o,c,A,h,c,A,h,p,A,h,c,A,h,c,u,h,p,u,h,p,A,h,p,u,o,p,u,o,p,A,o,p,A,o,p,u,o,c,u,o,c,A,o,c,u,h,c,u,h,c,A,o,c,A,h,c,u,o,c,u,o,p,u,h,p,u],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}class Vt extends S{get type(){return"Material"}constructor(e,t={}){super(e,t),y.memory.materials++}destroy(){super.destroy(),y.memory.materials--}}const kt={opaque:0,mask:1,blend:2},Qt=["opaque","mask","blend"];class Wt extends Vt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new it({type:"PhongMaterial",ambient:A.vec3([1,1,1]),diffuse:A.vec3([1,1,1]),specular:A.vec3([1,1,1]),emissive:A.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),this.ambient=t.ambient,this.diffuse=t.diffuse,this.specular=t.specular,this.emissive=t.emissive,this.alpha=t.alpha,this.shininess=t.shininess,this.reflectivity=t.reflectivity,this.lineWidth=t.lineWidth,this.pointSize=t.pointSize,t.ambientMap&&(this._ambientMap=this._checkComponent("Texture",t.ambientMap)),t.diffuseMap&&(this._diffuseMap=this._checkComponent("Texture",t.diffuseMap)),t.specularMap&&(this._specularMap=this._checkComponent("Texture",t.specularMap)),t.emissiveMap&&(this._emissiveMap=this._checkComponent("Texture",t.emissiveMap)),t.alphaMap&&(this._alphaMap=this._checkComponent("Texture",t.alphaMap)),t.reflectivityMap&&(this._reflectivityMap=this._checkComponent("Texture",t.reflectivityMap)),t.normalMap&&(this._normalMap=this._checkComponent("Texture",t.normalMap)),t.occlusionMap&&(this._occlusionMap=this._checkComponent("Texture",t.occlusionMap)),t.diffuseFresnel&&(this._diffuseFresnel=this._checkComponent("Fresnel",t.diffuseFresnel)),t.specularFresnel&&(this._specularFresnel=this._checkComponent("Fresnel",t.specularFresnel)),t.emissiveFresnel&&(this._emissiveFresnel=this._checkComponent("Fresnel",t.emissiveFresnel)),t.alphaFresnel&&(this._alphaFresnel=this._checkComponent("Fresnel",t.alphaFresnel)),t.reflectivityFresnel&&(this._reflectivityFresnel=this._checkComponent("Fresnel",t.reflectivityFresnel)),this.alphaMode=t.alphaMode,this.alphaCutoff=t.alphaCutoff,this.backfaces=t.backfaces,this.frontface=t.frontface,this._makeHash()}_makeHash(){const e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}set ambient(e){let t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get ambient(){return this._state.ambient}set diffuse(e){let t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get diffuse(){return this._state.diffuse}set specular(e){let t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}get specular(){return this._state.specular}set emissive(e){let t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}get emissive(){return this._state.emissive}set alpha(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}get alpha(){return this._state.alpha}set shininess(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}get shininess(){return this._state.shininess}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set pointSize(e){this._state.pointSize=e||1,this.glRedraw()}get pointSize(){return this._state.pointSize}set reflectivity(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}get reflectivity(){return this._state.reflectivity}get normalMap(){return this._normalMap}get ambientMap(){return this._ambientMap}get diffuseMap(){return this._diffuseMap}get specularMap(){return this._specularMap}get emissiveMap(){return this._emissiveMap}get alphaMap(){return this._alphaMap}get reflectivityMap(){return this._reflectivityMap}get occlusionMap(){return this._occlusionMap}get diffuseFresnel(){return this._diffuseFresnel}get specularFresnel(){return this._specularFresnel}get emissiveFresnel(){return this._emissiveFresnel}get alphaFresnel(){return this._alphaFresnel}get reflectivityFresnel(){return this._reflectivityFresnel}set alphaMode(e){let t=kt[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}get alphaMode(){return Qt[this._state.alphaMode]}set alphaCutoff(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}get alphaCutoff(){return this._state.alphaCutoff}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set frontface(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}get frontface(){return this._state.frontface?"ccw":"cw"}destroy(){super.destroy(),this._state.destroy()}}const zt={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}};class Kt extends Vt{get type(){return"EmphasisMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new it({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),this._preset="default",t.preset?(this.preset=t.preset,void 0!==t.fill&&(this.fill=t.fill),t.fillColor&&(this.fillColor=t.fillColor),void 0!==t.fillAlpha&&(this.fillAlpha=t.fillAlpha),void 0!==t.edges&&(this.edges=t.edges),t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth),void 0!==t.backfaces&&(this.backfaces=t.backfaces),void 0!==t.glowThrough&&(this.glowThrough=t.glowThrough)):(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.backfaces=t.backfaces,this.glowThrough=t.glowThrough)}set fill(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}get fill(){return this._state.fill}set fillColor(e){let t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}get fillColor(){return this._state.fillColor}set fillAlpha(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}get fillAlpha(){return this._state.fillAlpha}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set backfaces(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}get backfaces(){return this._state.backfaces}set glowThrough(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}get glowThrough(){return this._state.glowThrough}set preset(e){if(e=e||"default",this._preset===e)return;const t=zt[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(zt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Yt={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}};class Xt extends Vt{get type(){return"EdgeMaterial"}get presets(){return Yt}constructor(e,t={}){super(e,t),this._state=new it({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),this._preset="default",t.preset?(this.preset=t.preset,t.edgeColor&&(this.edgeColor=t.edgeColor),void 0!==t.edgeAlpha&&(this.edgeAlpha=t.edgeAlpha),void 0!==t.edgeWidth&&(this.edgeWidth=t.edgeWidth)):(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth),this.edges=!1!==t.edges}set edges(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(e){let t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(e){this._state.edgeWidth=e||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=Yt[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Yt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const qt={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}};class Jt extends S{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=A.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return qt}set units(e){e||(e="meters");qt[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}get units(){return this._units}set scale(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}get scale(){return this._scale}set origin(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}get origin(){return this._origin}worldToRealPos(e,t=A.vec3(3)){t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}realToWorldPos(e,t=A.vec3(3)){return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}class Zt extends S{constructor(e,t={}){super(e,t),this._supported=Ce.SUPPORTED_EXTENSIONS.OES_standard_derivatives,this.enabled=t.enabled,this.kernelRadius=t.kernelRadius,this.intensity=t.intensity,this.bias=t.bias,this.scale=t.scale,this.minResolution=t.minResolution,this.numSamples=t.numSamples,this.blur=t.blur,this.blendCutoff=t.blendCutoff,this.blendFactor=t.blendFactor}get supported(){return this._supported}set enabled(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}get enabled(){return this._enabled}get possible(){if(!this._supported)return!1;if(!this._enabled)return!1;const e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}get active(){return this._active}set kernelRadius(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}get kernelRadius(){return this._kernelRadius}set intensity(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}get intensity(){return this._intensity}set bias(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}get bias(){return this._bias}set scale(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}get scale(){return this._scale}set minResolution(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}get minResolution(){return this._minResolution}set numSamples(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}get numSamples(){return this._numSamples}set blur(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}get blur(){return this._blur}set blendCutoff(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}get blendCutoff(){return this._blendCutoff}set blendFactor(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}get blendFactor(){return this._blendFactor}destroy(){super.destroy()}}const $t={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class es extends Vt{get type(){return"PointsMaterial"}get presets(){return $t}constructor(e,t={}){super(e,t),this._state=new it({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),t.preset?(this.preset=t.preset,void 0!==t.pointSize&&(this.pointSize=t.pointSize),void 0!==t.roundPoints&&(this.roundPoints=t.roundPoints),void 0!==t.perspectivePoints&&(this.perspectivePoints=t.perspectivePoints),void 0!==t.minPerspectivePointSize&&(this.minPerspectivePointSize=t.minPerspectivePointSize),void 0!==t.maxPerspectivePointSize&&(this.maxPerspectivePointSize=t.minPerspectivePointSize)):(this._preset="default",this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize),this.filterIntensity=t.filterIntensity,this.minIntensity=t.minIntensity,this.maxIntensity=t.maxIntensity}set pointSize(e){this._state.pointSize=e||2,this.glRedraw()}get pointSize(){return this._state.pointSize}set roundPoints(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}get roundPoints(){return this._state.roundPoints}set perspectivePoints(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}get perspectivePoints(){return this._state.perspectivePoints}set minPerspectivePointSize(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}get minPerspectivePointSize(){return this._state.minPerspectivePointSize}set maxPerspectivePointSize(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}get maxPerspectivePointSize(){return this._state.maxPerspectivePointSize}set filterIntensity(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}get filterIntensity(){return this._state.filterIntensity}set minIntensity(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}get minIntensity(){return this._state.minIntensity}set maxIntensity(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}get maxIntensity(){return this._state.maxIntensity}set preset(e){if(e=e||"default",this._preset===e)return;const t=$t[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys($t).join(", "))}get preset(){return this._preset}get hash(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}destroy(){super.destroy(),this._state.destroy()}}const ts={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class ss extends Vt{get type(){return"LinesMaterial"}get presets(){return ts}constructor(e,t={}){super(e,t),this._state=new it({type:"LinesMaterial",lineWidth:null}),t.preset?(this.preset=t.preset,void 0!==t.lineWidth&&(this.lineWidth=t.lineWidth)):(this._preset="default",this.lineWidth=t.lineWidth)}set lineWidth(e){this._state.lineWidth=e||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set preset(e){if(e=e||"default",this._preset===e)return;const t=ts[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(ts).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function ns(e,t){const s={};let n,i;for(let a=0,r=t.length;a{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new tt(this,{transparent:n,alphaDepthMask:i}),this._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;let e=null;this.getHash=function(){if(e)return e;const t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";const s=[];for(let e=0,n=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=A.vec4([0,0,0,0]),t=A.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let s=null,n=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let n;for(let s=0,i=t.length;s0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),s=e.join(""),s},this.addLight=function(e){this.lights.push(e),n=null,s=null},this.removeLight=function(e){for(let t=0,i=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+g.inQuotes(e.id)+" already exists in Scene - ignoring ID, will randomly-generate instead"),e.id=null),!e.id)for(void 0===window.nextID&&(window.nextID=0),e.id="__"+window.nextID++;this.components[e.id];)e.id=A.createUUID();this.components[e.id]=e;const t=e.type;let s=this.types[e.type];s||(s=this.types[t]={}),s[e.id]=e,e.compile&&(this._compilables[e.id]=e),e.isDrawable&&(this._renderer.addDrawable(e.id,e),this._collidables[e.id]=e)}_removeComponent(e){var t=e.id,s=e.type;delete this.components[t];const n=this.types[s];n&&(delete n[t],g.isEmptyObject(n)&&delete this.types[s]),e.compile&&delete this._compilables[e.id],e.isDrawable&&(this._renderer.removeDrawable(e.id),delete this._collidables[e.id])}_sectionPlaneCreated(e){this.sectionPlanes[e.id]=e,this.scene._sectionPlanesState.addSectionPlane(e._state),this.scene.fire("sectionPlaneCreated",e,!0),this._needRecompile=!0}_bitmapCreated(e){this.bitmaps[e.id]=e,this.scene.fire("bitmapCreated",e,!0)}_lineSetCreated(e){this.lineSets[e.id]=e,this.scene.fire("lineSetCreated",e,!0)}_lightCreated(e){this.lights[e.id]=e,this.scene._lightsState.addLight(e._state),this._needRecompile=!0}_lightMapCreated(e){this.lightMaps[e.id]=e,this.scene._lightsState.addLightMap(e._state),this._needRecompile=!0}_reflectionMapCreated(e){this.reflectionMaps[e.id]=e,this.scene._lightsState.addReflectionMap(e._state),this._needRecompile=!0}_sectionPlaneDestroyed(e){delete this.sectionPlanes[e.id],this.scene._sectionPlanesState.removeSectionPlane(e._state),this.scene.fire("sectionPlaneDestroyed",e,!0),this._needRecompile=!0}_bitmapDestroyed(e){delete this.bitmaps[e.id],this.scene.fire("bitmapDestroyed",e,!0)}_lineSetDestroyed(e){delete this.lineSets[e.id],this.scene.fire("lineSetDestroyed",e,!0)}_lightDestroyed(e){delete this.lights[e.id],this.scene._lightsState.removeLight(e._state),this._needRecompile=!0}_lightMapDestroyed(e){delete this.lightMaps[e.id],this.scene._lightsState.removeLightMap(e._state),this._needRecompile=!0}_reflectionMapDestroyed(e){delete this.reflectionMaps[e.id],this.scene._lightsState.removeReflectionMap(e._state),this._needRecompile=!0}_registerModel(e){this.models[e.id]=e,this._modelIds=null}_deregisterModel(e){const t=e.id;delete this.models[t],this._modelIds=null,this.fire("modelUnloaded",t)}_registerObject(e){this.objects[e.id]=e,this._numObjects++,this._objectIds=null}_deregisterObject(e){delete this.objects[e.id],this._numObjects--,this._objectIds=null}_objectVisibilityUpdated(e,t=!0){e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}_objectXRayedUpdated(e,t=!0){e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}_objectHighlightedUpdated(e,t=!0){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}_objectSelectedUpdated(e,t=!0){e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_objectOpacityUpdated(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}_objectOffsetUpdated(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}_webglContextLost(){this.canvas.spinner.processes++;for(const e in this.components)if(this.components.hasOwnProperty(e)){const t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}_webglContextRestored(){const e=this.canvas.gl;for(const t in this.components)if(this.components.hasOwnProperty(t)){const s=this.components[t];s._webglContextRestored&&s._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}get capabilities(){return this._renderer.capabilities}get entityOffsetsEnabled(){return this._entityOffsetsEnabled}get pickSurfacePrecisionEnabled(){return!1}get logarithmicDepthBufferEnabled(){return this._logarithmicDepthBufferEnabled}set numCachedSectionPlanes(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}get numCachedSectionPlanes(){return this._sectionPlanesState.getNumCachedSectionPlanes()}set pbrEnabled(e){this._pbrEnabled=!!e,this.glRedraw()}get pbrEnabled(){return this._pbrEnabled}set dtxEnabled(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}get dtxEnabled(){return this._dtxEnabled}set colorTextureEnabled(e){this._colorTextureEnabled=!!e,this.glRedraw()}get colorTextureEnabled(){return this._colorTextureEnabled}doOcclusionTest(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}render(e){e&&B.runTasks();const t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),!e&&!this._renderer.needsRender())return;t.sceneId=this.id;const s=this._passes,n=this._clearEachPass;let i,a;for(i=0;ii&&(i=e[3]),e[4]>a&&(a=e[4]),e[5]>r&&(r=e[5]),c=!0}c||(t=-100,s=-100,n=-100,i=100,a=100,r=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=n,this._aabb[3]=i,this._aabb[4]=a,this._aabb[5]=r,this._aabbDirty=!1}return this._aabb}_setAABBDirty(){this._aabbDirty=!0,this.fire("boundary")}pick(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");const s=e.includeEntities||e.include;s&&(e.includeEntityIds=ns(this,s));const n=e.excludeEntities||e.exclude;return n&&(e.excludeEntityIds=ns(this,n)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}snapPick(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}clear(){var e;for(const t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}clearLights(){const e=Object.keys(this.lights);for(let t=0,s=e.length;t{if(e.collidable){const o=e.aabb;o[0]a&&(a=o[3]),o[4]>r&&(r=o[4]),o[5]>l&&(l=o[5]),t=!0}})),t){const e=A.AABB3();return e[0]=s,e[1]=n,e[2]=i,e[3]=a,e[4]=r,e[5]=l,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const s=e.visible!==t;return e.visible=t,s}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const s=e.collidable!==t;return e.collidable=t,s}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const s=e.culled!==t;return e.culled=t,s}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const s=e.selected!==t;return e.selected=t,s}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const s=e.highlighted!==t;return e.highlighted=t,s}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const s=e.xrayed!==t;return e.xrayed=t,s}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const s=e.edges!==t;return e.edges=t,s}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const s=e.opacity!==t;return e.opacity=t,s}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const s=e.pickable!==t;return e.pickable=t,s}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){g.isString(e)&&(e=[e]);let s=!1;for(let n=0,i=e.length;n{i>n&&(n=i,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:r,wrapperFunc:a},a}destroy(){super.destroy();for(const e in this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}const as=1e3,rs=1001,ls=1002,os=1003,cs=1004,us=1004,hs=1005,ps=1005,As=1006,ds=1007,fs=1007,Is=1008,ys=1008,ms=1009,vs=1010,ws=1011,gs=1012,Es=1013,Ts=1014,bs=1015,Ds=1016,Ps=1017,Rs=1018,Cs=1020,_s=1021,Bs=1022,Os=1023,Ss=1024,Ns=1025,xs=1026,Ls=1027,Ms=1028,Fs=1029,Hs=1030,Us=1031,Gs=1033,js=33776,Vs=33777,ks=33778,Qs=33779,Ws=35840,zs=35841,Ks=35842,Ys=35843,Xs=36196,qs=37492,Js=37496,Zs=37808,$s=37809,en=37810,tn=37811,sn=37812,nn=37813,an=37814,rn=37815,ln=37816,on=37817,cn=37818,un=37819,hn=37820,pn=37821,An=36492,dn=3e3,fn=3001,In=1e4,yn=10001,mn=10002,vn=10003,wn=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,r=e._state.stationary,l=s.getNumAllocatedSectionPlanes()>0,o=!!i.compressGeometry,c=[];c.push("#version 300 es"),c.push("// Lambertian drawing vertex shader"),c.push("in vec3 position;"),c.push("uniform mat4 modelMatrix;"),c.push("uniform mat4 viewMatrix;"),c.push("uniform mat4 projMatrix;"),c.push("uniform vec4 colorize;"),c.push("uniform vec3 offset;"),o&&c.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(c.push("uniform float logDepthBufFC;"),c.push("out float vFragDepth;"),c.push("bool isPerspectiveMatrix(mat4 m) {"),c.push(" return (m[2][3] == - 1.0);"),c.push("}"),c.push("out float isPerspective;"));l&&c.push("out vec4 vWorldPosition;");if(c.push("uniform vec4 lightAmbient;"),c.push("uniform vec4 materialColor;"),c.push("uniform vec3 materialEmissive;"),i.normalsBuf){c.push("in vec3 normal;"),c.push("uniform mat4 modelNormalMatrix;"),c.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=n.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),c.push(" }"),c.push(" return normalize(v);"),c.push("}"))}c.push("out vec4 vColor;"),"points"===i.primitiveName&&c.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(c.push("void billboard(inout mat4 mat) {"),c.push(" mat[0][0] = 1.0;"),c.push(" mat[0][1] = 0.0;"),c.push(" mat[0][2] = 0.0;"),"spherical"===a&&(c.push(" mat[1][0] = 0.0;"),c.push(" mat[1][1] = 1.0;"),c.push(" mat[1][2] = 0.0;")),c.push(" mat[2][0] = 0.0;"),c.push(" mat[2][1] = 0.0;"),c.push(" mat[2][2] =1.0;"),c.push("}"));c.push("void main(void) {"),c.push("vec4 localPosition = vec4(position, 1.0); "),c.push("vec4 worldPosition;"),o&&c.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(o?c.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):c.push("vec4 localNormal = vec4(normal, 0.0); "),c.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),c.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));c.push("mat4 viewMatrix2 = viewMatrix;"),c.push("mat4 modelMatrix2 = modelMatrix;"),r&&c.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(c.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),c.push("billboard(modelMatrix2);"),c.push("billboard(viewMatrix2);"),c.push("billboard(modelViewMatrix);"),i.normalsBuf&&(c.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),c.push("billboard(modelNormalMatrix2);"),c.push("billboard(viewNormalMatrix2);"),c.push("billboard(modelViewNormalMatrix);")),c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&c.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(c.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),c.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),c.push("float lambertian = 1.0;"),i.normalsBuf)for(let e=0,t=n.lights.length;e0,a=t.gammaOutput,r=[];r.push("#version 300 es"),r.push("// Lambertian drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("in vec4 vWorldPosition;"),r.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),r.push("}")}"points"===n.primitiveName&&(r.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),r.push("float r = dot(cxy, cxy);"),r.push("if (r > 1.0) {"),r.push(" discard;"),r.push("}"));t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?r.push("outColor = linearToGamma(vColor, gammaFactor);"):r.push("outColor = vColor;");return r.push("}"),r}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,n=t._sectionPlanesState,i=e._geometry._state,a=t._lightsState;let r;const l=s.billboard,o=s.background,c=s.stationary,u=function(e){if(!e._geometry._state.uvBuf)return!1;const t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),h=Tn(e),p=n.getNumAllocatedSectionPlanes()>0,A=En(e),d=!!i.compressGeometry,f=[];f.push("#version 300 es"),f.push("// Drawing vertex shader"),f.push("in vec3 position;"),d&&f.push("uniform mat4 positionsDecodeMatrix;");f.push("uniform mat4 modelMatrix;"),f.push("uniform mat4 viewMatrix;"),f.push("uniform mat4 projMatrix;"),f.push("out vec3 vViewPosition;"),f.push("uniform vec3 offset;"),p&&f.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(f.push("uniform float logDepthBufFC;"),f.push("out float vFragDepth;"),f.push("bool isPerspectiveMatrix(mat4 m) {"),f.push(" return (m[2][3] == - 1.0);"),f.push("}"),f.push("out float isPerspective;"));a.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(h){f.push("in vec3 normal;"),f.push("uniform mat4 modelNormalMatrix;"),f.push("uniform mat4 viewNormalMatrix;"),f.push("out vec3 vViewNormal;");for(let e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),f.push(" }"),f.push(" return normalize(v);"),f.push("}"))}u&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));i.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===i.primitiveName&&f.push("uniform float pointSize;");"spherical"!==l&&"cylindrical"!==l||(f.push("void billboard(inout mat4 mat) {"),f.push(" mat[0][0] = 1.0;"),f.push(" mat[0][1] = 0.0;"),f.push(" mat[0][2] = 0.0;"),"spherical"===l&&(f.push(" mat[1][0] = 0.0;"),f.push(" mat[1][1] = 1.0;"),f.push(" mat[1][2] = 0.0;")),f.push(" mat[2][0] = 0.0;"),f.push(" mat[2][1] = 0.0;"),f.push(" mat[2][2] =1.0;"),f.push("}"));if(A){f.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(let e=0,t=a.lights.length;e0&&f.push("vWorldNormal = worldNormal;"),f.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),f.push("vec3 tmpVec3;"),f.push("float lightDist;");for(let e=0,t=a.lights.length;e0,o=Tn(e),c=n.uvBuf,u="PhongMaterial"===r.type,h="MetallicMaterial"===r.type,p="SpecularMaterial"===r.type,A=En(e);t.gammaInput;const d=t.gammaOutput,f=[];f.push("#version 300 es"),f.push("// Drawing fragment shader"),f.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),f.push("precision highp float;"),f.push("precision highp int;"),f.push("#else"),f.push("precision mediump float;"),f.push("precision mediump int;"),f.push("#endif"),t.logarithmicDepthBufferEnabled&&(f.push("in float isPerspective;"),f.push("uniform float logDepthBufFC;"),f.push("in float vFragDepth;"));A&&(f.push("float unpackDepth (vec4 color) {"),f.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),f.push(" return dot(color, bitShift);"),f.push("}"));f.push("uniform float gammaFactor;"),f.push("vec4 linearToLinear( in vec4 value ) {"),f.push(" return value;"),f.push("}"),f.push("vec4 sRGBToLinear( in vec4 value ) {"),f.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),f.push("}"),f.push("vec4 gammaToLinear( in vec4 value) {"),f.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),f.push("}"),d&&(f.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),f.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),f.push("}"));if(l){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var I=0;I0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("uniform mat4 viewMatrix;"),f.push("#define PI 3.14159265359"),f.push("#define RECIPROCAL_PI 0.31830988618"),f.push("#define RECIPROCAL_PI2 0.15915494"),f.push("#define EPSILON 1e-6"),f.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),f.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),f.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),f.push("}"),f.push("struct IncidentLight {"),f.push(" vec3 color;"),f.push(" vec3 direction;"),f.push("};"),f.push("struct ReflectedLight {"),f.push(" vec3 diffuse;"),f.push(" vec3 specular;"),f.push("};"),f.push("struct Geometry {"),f.push(" vec3 position;"),f.push(" vec3 viewNormal;"),f.push(" vec3 worldNormal;"),f.push(" vec3 viewEyeDir;"),f.push("};"),f.push("struct Material {"),f.push(" vec3 diffuseColor;"),f.push(" float specularRoughness;"),f.push(" vec3 specularColor;"),f.push(" float shine;"),f.push("};"),u&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = "+gn[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),f.push(" radiance *= PI;"),f.push(" reflectedLight.specular += radiance;")),f.push("}")),f.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),f.push(" vec3 irradiance = dotNL * directLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),f.push("}")),(h||p)&&(f.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),f.push(" float r = ggxRoughness + 0.0001;"),f.push(" return (2.0 / (r * r) - 2.0);"),f.push("}"),f.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),f.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),f.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),f.push("}"),a.reflectionMaps.length>0&&(f.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),f.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),f.push(" vec3 envMapColor = "+gn[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),f.push(" return envMapColor;"),f.push("}")),f.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),f.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),f.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),f.push("}"),f.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" return 1.0 / ( gl * gv );"),f.push("}"),f.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),f.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),f.push(" return 0.5 / max( gv + gl, EPSILON );"),f.push("}"),f.push("float D_GGX(const in float alpha, const in float dotNH) {"),f.push(" float a2 = ( alpha * alpha );"),f.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),f.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float alpha = ( roughness * roughness );"),f.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),f.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),f.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),f.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),f.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),f.push(" vec3 F = F_Schlick( specularColor, dotLH );"),f.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),f.push(" float D = D_GGX( alpha, dotNH );"),f.push(" return F * (G * D);"),f.push("}"),f.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),f.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),f.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),f.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),f.push(" vec4 r = roughness * c0 + c1;"),f.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),f.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),f.push(" return specularColor * AB.x + AB.y;"),f.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(f.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),f.push(" irradiance *= PI;"),f.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(f.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),f.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),f.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),f.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),f.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),f.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),f.push("}")),f.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),f.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),f.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),f.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),f.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),f.push("}")));f.push("in vec3 vViewPosition;"),n.colors&&f.push("in vec4 vColor;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._occlusionMap||s._alphaMap)&&f.push("in vec2 vUV;");o&&(a.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));r.ambient&&f.push("uniform vec3 materialAmbient;");r.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==r.alpha&&null!==r.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");r.emissive&&f.push("uniform vec3 materialEmissive;");r.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==r.glossiness&&null!==r.glossiness&&f.push("uniform float materialGlossiness;");void 0!==r.shininess&&null!==r.shininess&&f.push("uniform float materialShininess;");r.specular&&f.push("uniform vec3 materialSpecular;");void 0!==r.metallic&&null!==r.metallic&&f.push("uniform float materialMetallic;");void 0!==r.roughness&&null!==r.roughness&&f.push("uniform float materialRoughness;");void 0!==r.specularF0&&null!==r.specularF0&&f.push("uniform float materialSpecularF0;");c&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));c&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));c&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));c&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));o&&c&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));o&&c&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));o&&c&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));o&&s._normalMap&&(f.push("uniform sampler2D normalMap;"),s._normalMap._state.matrix&&f.push("uniform mat4 normalMapMatrix;"),f.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),f.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),f.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),f.push(" vec2 st0 = dFdx( uv.st );"),f.push(" vec2 st1 = dFdy( uv.st );"),f.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),f.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),f.push(" vec3 N = normalize( surf_norm );"),f.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),f.push(" mat3 tsn = mat3( S, T, N );"),f.push(" return normalize( tsn * mapN );"),f.push("}"));c&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));c&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));o&&c&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));o&&c&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));o&&c&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));o&&(s._diffuseFresnel||s._specularFresnel||s._alphaFresnel||s._emissiveFresnel||s._reflectivityFresnel)&&(f.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),f.push(" float fr = abs(dot(eyeDir, normal));"),f.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),f.push(" return pow(finalFr, power);"),f.push("}"),s._diffuseFresnel&&(f.push("uniform float diffuseFresnelCenterBias;"),f.push("uniform float diffuseFresnelEdgeBias;"),f.push("uniform float diffuseFresnelPower;"),f.push("uniform vec3 diffuseFresnelCenterColor;"),f.push("uniform vec3 diffuseFresnelEdgeColor;")),s._specularFresnel&&(f.push("uniform float specularFresnelCenterBias;"),f.push("uniform float specularFresnelEdgeBias;"),f.push("uniform float specularFresnelPower;"),f.push("uniform vec3 specularFresnelCenterColor;"),f.push("uniform vec3 specularFresnelEdgeColor;")),s._alphaFresnel&&(f.push("uniform float alphaFresnelCenterBias;"),f.push("uniform float alphaFresnelEdgeBias;"),f.push("uniform float alphaFresnelPower;"),f.push("uniform vec3 alphaFresnelCenterColor;"),f.push("uniform vec3 alphaFresnelEdgeColor;")),s._reflectivityFresnel&&(f.push("uniform float materialSpecularF0FresnelCenterBias;"),f.push("uniform float materialSpecularF0FresnelEdgeBias;"),f.push("uniform float materialSpecularF0FresnelPower;"),f.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),f.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),s._emissiveFresnel&&(f.push("uniform float emissiveFresnelCenterBias;"),f.push("uniform float emissiveFresnelEdgeBias;"),f.push("uniform float emissiveFresnelPower;"),f.push("uniform vec3 emissiveFresnelCenterColor;"),f.push("uniform vec3 emissiveFresnelEdgeColor;")));if(f.push("uniform vec4 lightAmbient;"),o)for(let e=0,t=a.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===n.primitiveName&&(f.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),f.push("float r = dot(cxy, cxy);"),f.push("if (r > 1.0) {"),f.push(" discard;"),f.push("}"));f.push("float occlusion = 1.0;"),r.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");r.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):r.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");n.colors&&f.push("diffuseColor *= vColor.rgb;");r.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");r.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==r.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");n.colors&&f.push("alpha *= vColor.a;");void 0!==r.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==r.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==r.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==r.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");c&&(o&&s._normalMap||s._ambientMap||s._baseColorMap||s._diffuseMap||s._occlusionMap||s._emissiveMap||s._metallicMap||s._roughnessMap||s._metallicRoughnessMap||s._specularMap||s._glossinessMap||s._specularGlossinessMap||s._alphaMap)&&(f.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),f.push("vec2 textureCoord;"));c&&s._ambientMap&&(s._ambientMap._state.matrix?f.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),f.push("ambientTexel = "+gn[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));c&&s._diffuseMap&&(s._diffuseMap._state.matrix?f.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),f.push("diffuseTexel = "+gn[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));c&&s._baseColorMap&&(s._baseColorMap._state.matrix?f.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),f.push("baseColorTexel = "+gn[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));c&&s._emissiveMap&&(s._emissiveMap._state.matrix?f.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),f.push("emissiveTexel = "+gn[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));c&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));c&&s._occlusionMap&&(s._occlusionMap._state.matrix?f.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(o&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){c&&s._normalMap?(s._normalMap._state.matrix?f.push("textureCoord = (normalMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):f.push("vec3 viewNormal = normalize(vViewNormal);"),c&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),c&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),c&&s._specularGlossinessMap&&(s._specularGlossinessMap._state.matrix?f.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),f.push("specular *= specGlossRGB.rgb;"),f.push("glossiness *= specGlossRGB.a;")),c&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),c&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),c&&s._metallicRoughnessMap&&(s._metallicRoughnessMap._state.matrix?f.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),f.push("metallic *= metalRoughRGB.b;"),f.push("roughness *= metalRoughRGB.g;")),f.push("vec3 viewEyeDir = normalize(-vViewPosition);"),s._diffuseFresnel&&(f.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),f.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),s._specularFresnel&&(f.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),f.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),s._alphaFresnel&&(f.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),f.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),s._emissiveFresnel&&(f.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),f.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),f.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),f.push(" discard;"),f.push("}"),f.push("IncidentLight light;"),f.push("Material material;"),f.push("Geometry geometry;"),f.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),f.push("vec3 viewLightDir;"),u&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),p&&(f.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),f.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),f.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),f.push("material.specularColor = specular;")),h&&(f.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),f.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),f.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),f.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),f.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),u&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||h)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&f.push("computePBRLightMapping(geometry, material, reflectedLight);"),f.push("float shadow = 1.0;"),f.push("float shadowAcneRemover = 0.007;"),f.push("vec3 fragmentDepth;"),f.push("float texelSize = 1.0 / 1024.0;"),f.push("float amountInLight = 0.0;"),f.push("vec3 shadowCoord;"),f.push("vec4 rgbaDepth;"),f.push("float depth;");for(let e=0,t=a.lights.length;e0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(u=0,h=a.sectionPlanes.length;u0&&i.lightMaps[0].texture&&this._uLightMap&&(l.bindTexture(this._uLightMap,i.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),i.reflectionMaps.length>0&&i.reflectionMaps[0].texture&&this._uReflectionMap&&(l.bindTexture(this._uReflectionMap,i.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&n.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class Cn{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,n=function(e){const t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,r=e._state.billboard,l=e._state.stationary,o=[];o.push("#version 300 es"),o.push("// EmphasisFillShaderSource vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec4 colorize;"),o.push("uniform vec3 offset;"),a&&o.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));i&&o.push("out vec4 vWorldPosition;");if(o.push("uniform vec4 lightAmbient;"),o.push("uniform vec4 fillColor;"),n){o.push("in vec3 normal;"),o.push("uniform mat4 modelNormalMatrix;"),o.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"))}o.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===r&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),a&&o.push("localPosition = positionsDecodeMatrix * localPosition;");n&&(a?o.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):o.push("vec4 localNormal = vec4(normal, 0.0); "),o.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),o.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),l&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),n&&(o.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),o.push("billboard(modelNormalMatrix2);"),o.push("billboard(viewNormalMatrix2);"),o.push("billboard(modelViewNormalMatrix);")),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&o.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),n)for(let e=0,t=s.lights.length;e0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const _n=new e({}),Bn=A.vec3(),On=function(e,t){this.id=_n.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Cn(t),this._allocate(t)},Sn={};On.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Sn[t];return s||(s=new On(t,e),Sn[t]=s,y.memory.programs++),s._useCount++,s},On.prototype.put=function(){0==--this._useCount&&(_n.removeItem(this.id),this._program&&this._program.destroy(),delete Sn[this._hash],y.memory.programs--)},On.prototype.webglContextRestored=function(){this._program=null},On.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl,r=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,l=t._state,o=t._geometry._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(l.originHash,c):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Edges drawing vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec4 edgeColor;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));s&&r.push("out vec4 vWorldPosition;");r.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.push("vColor = edgeColor;"),s&&r.push("vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,n=e.scene.gammaOutput,i=s.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));n&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(e)}}const xn=new e({}),Ln=A.vec3(),Mn=function(e,t){this.id=xn.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Nn(t),this._allocate(t)},Fn={};Mn.get=function(e){const t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Fn[t];return s||(s=new Mn(t,e),Fn[t]=s,y.memory.programs++),s._useCount++,s},Mn.prototype.put=function(){0==--this._useCount&&(xn.removeItem(this.id),this._program&&this._program.destroy(),delete Fn[this._hash],y.memory.programs--)},Mn.prototype.webglContextRestored=function(){this._program=null},Mn.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const n=this._scene,i=n.camera,a=n.canvas.gl;let r;const l=t._state,o=t._geometry,c=o._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(l.originHash,u):i.viewMatrix),l.clippable){const e=n._sectionPlanesState.getNumAllocatedSectionPlanes(),s=n._sectionPlanesState.sectionPlanes.length;if(e>0){const i=n._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh picking vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("out vec4 vViewPosition;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("uniform vec2 pickClipPos;"),r.push("vec4 remapClipPos(vec4 clipPos) {"),r.push(" clipPos.xy /= clipPos.w;"),r.push(" clipPos.xy -= pickClipPos;"),r.push(" clipPos.xy *= clipPos.w;"),r.push(" return clipPos;"),r.push("}"),r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"));r.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = remapClipPos(clipPos);"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(e)}}const Un=A.vec3(),Gn=function(e,t){this._hash=e,this._shaderSource=new Hn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},jn={};Gn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=jn[t];if(!s){if(s=new Gn(t,e),s.errors)return console.log(s.errors.join("\n")),null;jn[t]=s,y.memory.programs++}return s._useCount++,s},Gn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete jn[this._hash],y.memory.programs--)},Gn.prototype.webglContextRestored=function(){this._program=null},Gn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t>24&255,u=o>>16&255,h=o>>8&255,p=255&o;n.uniform4f(this._uPickColor,p/255,h/255,u/255,c/255),n.uniform2fv(this._uPickClipPos,e.pickClipPos),r.indicesBuf?(n.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&n.drawArrays(n.TRIANGLES,0,r.positions.numItems)},Gn.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Fe(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,n=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),s&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),n&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),n&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(e)}}const kn=A.vec3(),Qn=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Vn(t),this._allocate(t)},Wn={};Qn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let s=Wn[t];if(!s){if(s=new Qn(t,e),s.errors)return console.log(s.errors.join("\n")),null;Wn[t]=s,y.memory.programs++}return s._useCount++,s},Qn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Wn[this._hash],y.memory.programs--)},Qn.prototype.webglContextRestored=function(){this._program=null},Qn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._state,a=t._material._state,r=t._geometry,l=t._geometry._state,o=t.origin,c=a.backfaces,u=a.frontface,h=s.camera.project,p=r._getPickTrianglePositions(),A=r._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(h.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}if(n.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,n=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,r=[];r.push("#version 300 es"),r.push("// Mesh occlusion vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");s&&r.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(r.push("void billboard(inout mat4 mat) {"),r.push(" mat[0][0] = 1.0;"),r.push(" mat[0][1] = 0.0;"),r.push(" mat[0][2] = 0.0;"),"spherical"===i&&(r.push(" mat[1][0] = 0.0;"),r.push(" mat[1][1] = 1.0;"),r.push(" mat[1][2] = 0.0;")),r.push(" mat[2][0] = 0.0;"),r.push(" mat[2][1] = 0.0;"),r.push(" mat[2][2] =1.0;"),r.push("}"));r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("mat4 viewMatrix2 = viewMatrix;"),r.push("mat4 modelMatrix2 = modelMatrix;"),a&&r.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(r.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),r.push("billboard(modelMatrix2);"),r.push("billboard(viewMatrix2);"),r.push("billboard(modelViewMatrix);"),r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(r.push("worldPosition = modelMatrix2 * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&r.push(" vWorldPosition = worldPosition;");r.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return r.push("gl_Position = clipPos;"),r.push("}"),r}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(e)}}const Kn=A.vec3(),Yn=function(e,t){this._hash=e,this._shaderSource=new zn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Xn={};Yn.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let s=Xn[t];if(!s){if(s=new Yn(t,e),s.errors)return console.log(s.errors.join("\n")),null;Xn[t]=s,y.memory.programs++}return s._useCount++,s},Yn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Xn[this._hash],y.memory.programs--)},Yn.prototype.webglContextRestored=function(){this._program=null},Yn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,n=s.canvas.gl,i=t._material._state,a=t._state,r=t._geometry._state,l=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){const t=i.backfaces;e.backfaces!==t&&(t?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=t);const s=i.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),this._lastMaterialId=i.id}const o=s.camera;if(n.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCViewMatrix(a.originHash,l):o.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const a=s._sectionPlanesState.sectionPlanes,r=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,n=[];n.push("// Mesh shadow vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t&&n.push("out vec4 vWorldPosition;");n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("worldPosition = modelMatrix * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&n.push("vWorldPosition = worldPosition;");return n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),n){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(e)}}const Jn=function(e,t){this._hash=e,this._shaderSource=new qn(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Zn={};Jn.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let n=Zn[s];if(!n){if(n=new Jn(s,e),n.errors)return console.log(n.errors.join("\n")),null;Zn[s]=n,y.memory.programs++}return n._useCount++,n},Jn.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Zn[this._hash],y.memory.programs--)},Jn.prototype.webglContextRestored=function(){this._program=null},Jn.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,n=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),n.id!==this._lastMaterialId){const t=n.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=n.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),e.lineWidth!==n.lineWidth&&(s.lineWidth(n.lineWidth),e.lineWidth=n.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,n.pointSize),this._lastMaterialId=n.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),i.combineGeometry){const n=t.vertexBufs;n.id!==this._lastVertexBufsId&&(n.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(n.positionsBuf,n.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=n.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(s.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(s.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(s.drawArrays(s.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},Jn.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Fe(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const n=this._program;this._uPositionsDecodeMatrix=n.getLocation("positionsDecodeMatrix"),this._uModelMatrix=n.getLocation("modelMatrix"),this._uShadowViewMatrix=n.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=n.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,i,a,r;for(let l=0,o=this._uSectionPlanes.length;l0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const hi=function(){const e=A.vec3(),t=A.vec3(),s=A.vec3(),n=A.vec3(),i=A.vec3(),a=A.vec3(),r=A.vec4(),l=A.vec3(),o=A.vec3(),c=A.vec3(),u=A.vec3(),h=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),I=A.vec3(),y=A.vec4(),m=A.vec4(),v=A.vec4(),w=A.vec3(),g=A.vec3(),E=A.vec3(),T=A.vec3(),b=A.vec3(),D=A.vec3(),P=A.vec3(),R=A.vec3(),C=A.vec3(),_=A.vec3(),B=A.vec3();return function(O,S,N,x){var L=x.primIndex;if(null!=L&&L>-1){const U=O.geometry._state,G=O.scene,j=G.camera,V=G.canvas;if("triangles"===U.primitiveName){x.primitive="triangle";const G=L,k=U.indices,W=U.positions;let z,K,Y;if(k){var M=k[G+0],F=k[G+1],H=k[G+2];a[0]=M,a[1]=F,a[2]=H,x.indices=a,z=3*M,K=3*F,Y=3*H}else z=3*G,K=z+3,Y=K+3;if(s[0]=W[z+0],s[1]=W[z+1],s[2]=W[z+2],n[0]=W[K+0],n[1]=W[K+1],n[2]=W[K+2],i[0]=W[Y+0],i[1]=W[Y+1],i[2]=W[Y+2],U.compressGeometry){const e=U.positionsDecodeMatrix;e&&(Ft.decompressPosition(s,e,s),Ft.decompressPosition(n,e,n),Ft.decompressPosition(i,e,i))}x.canvasPos?A.canvasPosToLocalRay(V.canvas,O.origin?Q(S,O.origin):S,N,O.worldMatrix,x.canvasPos,e,t):x.origin&&x.direction&&A.worldRayToLocalRay(O.worldMatrix,x.origin,x.direction,e,t),A.normalizeVec3(t),A.rayPlaneIntersect(e,t,s,n,i,r),x.localPos=r,x.position=r,y[0]=r[0],y[1]=r[1],y[2]=r[2],y[3]=1,A.transformVec4(O.worldMatrix,y,m),l[0]=m[0],l[1]=m[1],l[2]=m[2],x.canvasPos&&O.origin&&(l[0]+=O.origin[0],l[1]+=O.origin[1],l[2]+=O.origin[2]),x.worldPos=l,A.transformVec4(j.matrix,m,v),o[0]=v[0],o[1]=v[1],o[2]=v[2],x.viewPos=o,A.cartesianToBarycentric(r,s,n,i,c),x.bary=c;const X=U.normals;if(X){if(U.compressGeometry){const e=3*M,t=3*F,s=3*H;Ft.decompressNormal(X.subarray(e,e+2),u),Ft.decompressNormal(X.subarray(t,t+2),h),Ft.decompressNormal(X.subarray(s,s+2),p)}else u[0]=X[z],u[1]=X[z+1],u[2]=X[z+2],h[0]=X[K],h[1]=X[K+1],h[2]=X[K+2],p[0]=X[Y],p[1]=X[Y+1],p[2]=X[Y+2];const e=A.addVec3(A.addVec3(A.mulVec3Scalar(u,c[0],w),A.mulVec3Scalar(h,c[1],g),E),A.mulVec3Scalar(p,c[2],T),b);x.worldNormal=A.normalizeVec3(A.transformVec3(O.worldNormalMatrix,e,D))}const q=U.uv;if(q){if(d[0]=q[2*M],d[1]=q[2*M+1],f[0]=q[2*F],f[1]=q[2*F+1],I[0]=q[2*H],I[1]=q[2*H+1],U.compressGeometry){const e=U.uvDecodeMatrix;e&&(Ft.decompressUV(d,e,d),Ft.decompressUV(f,e,f),Ft.decompressUV(I,e,I))}x.uv=A.addVec3(A.addVec3(A.mulVec2Scalar(d,c[0],P),A.mulVec2Scalar(f,c[1],R),C),A.mulVec2Scalar(I,c[2],_),B)}}}}}();function pi(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let s=e.radiusBottom||1;s<0&&(console.error("negative radiusBottom not allowed - will invert"),s*=-1);let n=e.height||1;n<0&&(console.error("negative height not allowed - will invert"),n*=-1);let i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);let a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);const r=!!e.openEnded;let l=e.center;const o=l?l[0]:0,c=l?l[1]:0,u=l?l[2]:0,h=n/2,p=n/a,A=2*Math.PI/i,d=1/i,f=(t-s)/a,I=[],y=[],m=[],v=[];let w,E,T,b,D,P,R,C,_,B,O;const S=(90-180*Math.atan(n/(s-t))/Math.PI)/90;for(w=0;w<=a;w++)for(D=t-w*f,P=h-w*p,E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),y.push(D*T),y.push(S),y.push(D*b),m.push(E*d),m.push(1*w/a),I.push(D*T+o),I.push(P+c),I.push(D*b+u);for(w=0;w0){for(_=I.length/3,y.push(0),y.push(1),y.push(0),m.push(.5),m.push(.5),I.push(0+o),I.push(h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(t*T),y.push(1),y.push(t*b),m.push(B),m.push(O),I.push(t*T+o),I.push(h+c),I.push(t*b+u);for(E=0;E0){for(_=I.length/3,y.push(0),y.push(-1),y.push(0),m.push(.5),m.push(.5),I.push(0+o),I.push(0-h+c),I.push(0+u),E=0;E<=i;E++)T=Math.sin(E*A),b=Math.cos(E*A),B=.5*Math.sin(E*A)+.5,O=.5*Math.cos(E*A)+.5,y.push(s*T),y.push(-1),y.push(s*b),m.push(B),m.push(O),I.push(s*T+o),I.push(0-h+c),I.push(s*b+u);for(E=0;E":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function fi(e={}){var t=e.origin||[0,0,0],s=t[0],n=t[1],i=t[2],a=e.size||1,r=[],l=[],o=e.text;g.isNumeric(o)&&(o=""+o);for(var c,u,h,p,A,d,f,I,y,m=(o||"").split("\n"),v=0,w=0,E=.04,T=0;T0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let s=0,n=e.length;s1;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,this.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE);const a=Li(s,this.wrapS);a&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,a);const r=Li(s,this.wrapT);if(r&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,r),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=Li(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}i?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,Ui(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,Ui(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,Li(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,Li(s,this.magFilter)));const l=Li(s,this.format,this.encoding),o=Li(s,this.type),c=Hi(s,this.internalFormat,l,o,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,n,c,e[0].width,e[0].height);for(let t=0,n=e.length;t>t;return e+1}class ki extends S{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new it({texture:new Fi({gl:this.scene.canvas.gl}),matrix:A.identityMat4(),hasMatrix:t.translate&&(0!==t.translate[0]||0!==t.translate[1])||!!t.rotate||t.scale&&(0!==t.scale[0]||0!==t.scale[1]),minFilter:this._checkMinFilter(t.minFilter),magFilter:this._checkMagFilter(t.magFilter),wrapS:this._checkWrapS(t.wrapS),wrapT:this._checkWrapT(t.wrapT),flipY:this._checkFlipY(t.flipY),encoding:this._checkEncoding(t.encoding)}),this._src=null,this._image=null,this._translate=A.vec2([0,0]),this._scale=A.vec2([1,1]),this._rotate=A.vec2([0,0]),this._matrixDirty=!1,this.translate=t.translate,this.scale=t.scale,this.rotate=t.rotate,t.src?this.src=t.src:t.image&&(this.image=t.image),y.memory.textures++}_checkMinFilter(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}_checkMagFilter(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}_checkWrapS(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkWrapT(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this._state.texture=new Fi({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}_update(){const e=this._state;if(this._matrixDirty){let t,s;0===this._translate[0]&&0===this._translate[1]||(t=A.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(s=A.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?A.mulMat4(t,s):s),0!==this._rotate&&(s=A.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?A.mulMat4(t,s):s),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=Gi(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}get image(){return this._image}set src(e){this.scene.loading++,this.scene.canvas.spinner.processes++;const t=this;let s=new Image;s.onload=function(){s=Gi(s),t._state.texture.setImage(s,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},s.src=e,this._src=e,this._image=null}get src(){return this._src}set translate(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}get translate(){return this._translate}set scale(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}get scale(){return this._scale}set rotate(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}get rotate(){return this._rotate}get minFilter(){return this._state.minFilter}get magFilter(){return this._state.magFilter}get wrapS(){return this._state.wrapS}get wrapT(){return this._state.wrapT}get flipY(){return this._state.flipY}get encoding(){return this._state.encoding}destroy(){super.destroy(),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),y.memory.textures--}}class Qi extends S{get type(){return"Fresnel"}constructor(e,t={}){super(e,t),this._state=new it({edgeColor:A.vec3([0,0,0]),centerColor:A.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),this.edgeColor=t.edgeColor,this.centerColor=t.centerColor,this.edgeBias=t.edgeBias,this.centerBias=t.centerBias,this.power=t.power}set edgeColor(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set centerColor(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}get centerColor(){return this._state.centerColor}set edgeBias(e){this._state.edgeBias=e||0,this.glRedraw()}get edgeBias(){return this._state.edgeBias}set centerBias(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}get centerBias(){return this._state.centerBias}set power(e){this._state.power=null!=e?e:1,this.glRedraw()}get power(){return this._state.power}destroy(){super.destroy(),this._state.destroy()}}const Wi=y.memory,zi=A.AABB3();class Ki extends _t{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new it({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=t.edgeThreshold||10,this._aabb=null,this._obb=A.OBB3();const s=this._state,n=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=n.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=n.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=n.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=n.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=n.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=n.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=n.TRIANGLE_FAN,s.primitiveName=t.primitive;break;default:this.error("Unsupported value for 'primitive': '"+t.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=n.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var i;if(t.positionsDecodeMatrix);else{const e=Ft.getPositionsBounds(t.positions),a=Ft.compressPositions(t.positions,e.min,e.max);i=a.quantized,s.positionsDecodeMatrix=a.decodeMatrix,s.positionsBuf=new He(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),Wi.positions+=s.positionsBuf.numItems,A.positions3ToAABB3(t.positions,this._aabb),A.positions3ToAABB3(i,zi,s.positionsDecodeMatrix),A.AABB3ToOBB3(zi,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new He(n,n.ARRAY_BUFFER,e,e.length,4,n.STATIC_DRAW),Wi.colors+=s.colorsBuf.numItems}if(t.uv){const e=Ft.getUVBounds(t.uv),i=Ft.compressUVs(t.uv,e.min,e.max),a=i.quantized;s.uvDecodeMatrix=i.decodeMatrix,s.uvBuf=new He(n,n.ARRAY_BUFFER,a,a.length,2,n.STATIC_DRAW),Wi.uvs+=s.uvBuf.numItems}if(t.normals){const e=Ft.compressNormals(t.normals);let i=s.compressGeometry;s.normalsBuf=new He(n,n.ARRAY_BUFFER,e,e.length,3,n.STATIC_DRAW,i),Wi.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,e,e.length,1,n.STATIC_DRAW),Wi.indices+=s.indicesBuf.numItems;const a=Bt(i,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),Wi.meshes++}else this.error("Config expected: indices");else this.error("Config expected: positions")}_buildHash(){const e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}_getEdgeIndices(){return this._edgeIndicesBuf}get primitive(){return this._state.primitiveName}get aabb(){return this._aabb}get obb(){return this._obb}get numTriangles(){return this._numTriangles}_getState(){return this._state}destroy(){super.destroy();const e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),Wi.meshes--}}var Yi={};function Xi(e,t={}){return new Promise((function(s,n){t.src||(console.error("load3DSGeometry: Parameter expected: src"),n());var i=e.canvas.spinner;i.processes++,g.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("load3DSGeometry: no data loaded"),i.processes--,n());var a=Yi.parse.from3DS(e).edit.objects[0].mesh,r=a.vertices,l=a.uvt,o=a.indices;i.processes--,s(g.apply(t,{primitive:"triangles",positions:r,normals:null,uv:l,indices:o}))}),(function(e){console.error("load3DSGeometry: "+e),i.processes--,n()}))}))}function qi(e,t={}){return new Promise((function(s,n){t.src||(console.error("loadOBJGeometry: Parameter expected: src"),n());var i=e.canvas.spinner;i.processes++,g.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("loadOBJGeometry: no data loaded"),i.processes--,n());for(var a=Yi.parse.fromOBJ(e),r=Yi.edit.unwrap(a.i_verts,a.c_verts,3),l=Yi.edit.unwrap(a.i_norms,a.c_norms,3),o=Yi.edit.unwrap(a.i_uvt,a.c_uvt,2),c=new Int32Array(a.i_verts.length),u=0;u0?l:null,autoNormals:0===l.length,uv:o,indices:c}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,n()}))}))}function Ji(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.ySize||1;s<0&&(console.error("negative ySize not allowed - will invert"),s*=-1);let n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);const i=e.center,a=i?i[0]:0,r=i?i[1]:0,l=i?i[2]:0,o=-t+a,c=-s+r,u=-n+l,h=t+a,p=s+r,A=n+l;return g.apply(e,{primitive:"lines",positions:[o,c,u,o,c,A,o,p,u,o,p,A,h,c,u,h,c,A,h,p,u,h,p,A],indices:[0,1,1,3,3,2,2,0,4,5,5,7,7,6,6,4,0,4,1,5,2,6,3,7]})}function Zi(e={}){let t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);let s=e.divisions||1;s<0&&(console.error("negative divisions not allowed - will invert"),s*=-1),s<1&&(s=1),t=t||10,s=s||10;const n=t/s,i=t/2,a=[],r=[];let l=0;for(let e=0,t=-i;e<=s;e++,t+=n)a.push(-i),a.push(0),a.push(t),a.push(i),a.push(0),a.push(t),a.push(t),a.push(0),a.push(-i),a.push(t),a.push(0),a.push(i),r.push(l++),r.push(l++),r.push(l++),r.push(l++);return g.apply(e,{primitive:"lines",positions:a,indices:r})}function $i(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);let n=e.xSegments||1;n<0&&(console.error("negative xSegments not allowed - will invert"),n*=-1),n<1&&(n=1);let i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);const a=e.center,r=a?a[0]:0,l=a?a[1]:0,o=a?a[2]:0,c=t/2,u=s/2,h=Math.floor(n)||1,p=Math.floor(i)||1,A=h+1,d=p+1,f=t/h,I=s/p,y=new Float32Array(A*d*3),m=new Float32Array(A*d*3),v=new Float32Array(A*d*2);let w,E,T,b,D,P,R,C=0,_=0;for(w=0;w65535?Uint32Array:Uint16Array)(h*p*6);for(w=0;w360&&(a=360);const r=e.center;let l=r?r[0]:0,o=r?r[1]:0;const c=r?r[2]:0,u=[],h=[],p=[],d=[];let f,I,y,m,v,w,E,T,b,D,P,R;for(T=0;T<=i;T++)for(E=0;E<=n;E++)f=E/n*a,I=.785398+T/i*Math.PI*2,l=t*Math.cos(f),o=t*Math.sin(f),y=(t+s*Math.cos(I))*Math.cos(f),m=(t+s*Math.cos(I))*Math.sin(f),v=s*Math.sin(I),u.push(y+l),u.push(m+o),u.push(v+c),p.push(1-E/n),p.push(T/i),w=A.normalizeVec3(A.subVec3([y,m,v],[l,o,c],[]),[]),h.push(w[0]),h.push(w[1]),h.push(w[2]);for(T=1;T<=i;T++)for(E=1;E<=n;E++)b=(n+1)*T+E-1,D=(n+1)*(T-1)+E-1,P=(n+1)*(T-1)+E,R=(n+1)*T+E,d.push(b),d.push(D),d.push(P),d.push(P),d.push(R),d.push(b);return g.apply(e,{positions:u,normals:h,uv:p,indices:d})}Yi.load=function(e,t){var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(e){t(e.target.response)},s.send()},Yi.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(Yi.parse._buffToStr(e));window.location.href=s},Yi.clone=function(e){return JSON.parse(JSON.stringify(e))},Yi.bin={},Yi.bin.f=new Float32Array(1),Yi.bin.fb=new Uint8Array(Yi.bin.f.buffer),Yi.bin.rf=function(e,t){for(var s=Yi.bin.f,n=Yi.bin.fb,i=0;i<4;i++)n[i]=e[t+i];return s[0]},Yi.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Yi.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Yi.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},Yi.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},Yi.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},Yi.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},Yi.parse={},Yi.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",n=0;ni&&(i=o),ca&&(a=c),ur&&(r=u)}return{min:{x:t,y:s,z:n},max:{x:i,y:a,z:r}}};class ta extends S{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=A.vec3(t.pos||[0,0,0]),this._up=A.vec3(t.up||[0,1,0]),this._normal=A.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=A.vec3(),this._rtcPos=A.vec3(),this._imageSize=A.vec2(),this._texture=new ki(this,{flipY:!0}),this._image=new Image,"jpg"!==this._type&&"png"!==this._type&&(this.error('Unsupported type - defaulting to "jpg"'),this._type="jpg"),this._node=new Ri(this,{matrix:A.inverseMat4(A.lookAtMat4v(this._pos,A.subVec3(this._pos,this._normal,A.mat4()),this._up,A.mat4())),children:[this._bitmapMesh=new ui(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new Gt(this,$i({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0})})]}),t.image?this.image=t.image:t.src?this.src=t.src:t.imageData&&(this.imageData=t.imageData),this.scene._bitmapCreated(this)}set visible(e){this._bitmapMesh.visible=e}get visible(){return this._bitmapMesh.visible}set image(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}get image(){return this._image}set src(e){if(e){this._image.onload=()=>{this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale()},this._image.src=e;switch(e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}}get src(){return this._image.src}set imageData(e){this._image.onload=()=>{this._texture.image=image,this._imageSize[0]=image.width,this._imageSize[1]=image.height,this._updateBitmapMeshScale()},this._image.src=e}get imageData(){const e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")}set type(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}get type(){return this._type}get pos(){return this._pos}get normal(){return this._normal}get up(){return this._up}set height(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}get height(){return this._height}set collidable(e){this._bitmapMesh.collidable=!1!==e}get collidable(){return this._bitmapMesh.collidable}set clippable(e){this._bitmapMesh.clippable=!1!==e}get clippable(){return this._bitmapMesh.clippable}set pickable(e){this._bitmapMesh.pickable=!1!==e}get pickable(){return this._bitmapMesh.pickable}set opacity(e){this._bitmapMesh.opacity=e}get opacity(){return this._bitmapMesh.opacity}destroy(){super.destroy(),this.scene._bitmapDestroyed(this)}_updateBitmapMeshScale(){const e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}const sa=A.OBB3(),na=A.OBB3(),ia=A.OBB3();class aa{constructor(e,t,s,n,i,a,r=null,l=0){this.model=e,this.object=null,this.parent=null,this.transform=i,this.textureSet=a,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=A.AABB3(),this._aabbWorldDirty=!1,this.layer=r,this.portionId=l,this._color=new Uint8Array([s[0],s[1],s[2],n]),this._colorize=new Uint8Array([s[0],s[1],s[2],n]),this._colorizing=!1,this._transparent=n<255,this.numTriangles=0,this.origin=null,this.entity=null,i&&i._addMesh(this)}_sceneModelDirty(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}_transformDirty(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}_updateMatrix(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}_finalize(e){this.layer.initFlags(this.portionId,e,this._transparent)}_finalize2(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}_setVisible(e){this.layer.setVisible(this.portionId,e,this._transparent)}_setColor(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}_setColorize(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}_setOpacity(e,t){const s=e<255,n=this._transparent!==s;this._color[3]=e,this._colorize[3]=e,this._transparent=s,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),n&&this.layer.setTransparent(this.portionId,t,s)}_setOffset(e){this.layer.setOffset(this.portionId,e)}_setHighlighted(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}_setXRayed(e){this.layer.setXRayed(this.portionId,e,this._transparent)}_setSelected(e){this.layer.setSelected(this.portionId,e,this._transparent)}_setEdges(e){this.layer.setEdges(this.portionId,e,this._transparent)}_setClippable(e){this.layer.setClippable(this.portionId,e,this._transparent)}_setCollidable(e){this.layer.setCollidable(this.portionId,e)}_setPickable(e){this.layer.setPickable(this.portionId,e,this._transparent)}_setCulled(e){this.layer.setCulled(this.portionId,e,this._transparent)}canPickTriangle(){return!1}drawPickTriangles(e,t){}pickTriangleSurface(e){}precisionRayPickSurface(e,t,s,n){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,n)}canPickWorldPos(){return!0}drawPickDepths(e){this.model.drawPickDepths(e)}drawPickNormals(e){this.model.drawPickNormals(e)}delegatePickedEntity(){return this.parent}getEachVertex(e){this.layer.getEachVertex(this.portionId,e)}set aabb(e){this._aabbLocal=e}get aabb(){if(this._aabbWorldDirty){if(A.AABB3ToOBB3(this._aabbLocal,sa),this.transform?(A.transformOBB3(this.transform.worldMatrix,sa,na),A.transformOBB3(this.model.worldMatrix,na,ia),A.OBB3ToAABB3(ia,this._aabbWorld)):(A.transformOBB3(this.model.worldMatrix,sa,na),A.OBB3ToAABB3(na,this._aabbWorld)),this.origin){const e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld}_destroy(){this.model.scene._renderer.putPickID(this.pickId)}}const ra=new class{constructor(){this._uint8Arrays={},this._float32Arrays={}}_clear(){this._uint8Arrays={},this._float32Arrays={}}getUInt8Array(e){let t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}getFloat32Array(e){let t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}};let la=0;const oa={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},ca=new Float32Array([1,1,1,1]),ua=new Float32Array([0,0,0,1]),ha=A.vec4(),pa=A.vec3(),Aa=A.vec3(),da=A.mat4();class fa{constructor(e,t=!1,{instancing:s=!1,edges:n=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=n,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}_getHash(){return this._scene._sectionPlanesState.getHash()}_buildShader(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}_buildVertexShader(){return[""]}_buildFragmentShader(){return[""]}_addMatricesUniformBlockLines(e,t=!1){return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}_addRemapClipPosLines(e,t=1){return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${t}));`),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}getValid(){return this._hash===this._getHash()}setSectionPlanesStateUniforms(e){const t=this._scene,{gl:s}=t.canvas,{model:n,layerIndex:i}=e,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),r=t._sectionPlanesState.sectionPlanes.length;if(a>0){const l=t._sectionPlanesState.sectionPlanes,o=i*r,c=n.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),s.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&d.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,d.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),d.lightMaps.length>0&&d.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,d.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++),this._withSAO){const t=r.sao;if(t.possible){const s=l.drawingBufferWidth,n=l.drawingBufferHeight;ha[0]=s,ha[1]=n,ha[2]=t.blendCutoff,ha[3]=t.blendFactor,l.uniform4fv(this._uSAOParams,ha),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%a,e.bindTexture++}}if(n){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=r.xrayMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=r.highlightMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else if(s===oa[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=r.selectedMaterial._state,n=s[e],i=s[t];l.uniform4f(this._uColor,n[0],n[1],n[2],i)}else l.uniform4fv(this._uColor,this._edges?ua:ca)}this._draw({state:o,frameCtx:e,incrementDrawState:i}),l.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,y.memory.programs--}}class Ia extends fa{constructor(e,t,{instancing:s=!1,edges:n=!1}={}){super(e,t,{instancing:s,edges:n})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=n.pickElementsCount||s.indicesBuf.numItems,a=n.pickElementsOffset?n.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,a),i&&n.drawElements++}}}class ya extends Ia{constructor(e,t){super(e,t,{instancing:!1,edges:!0})}}class ma extends fa{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;this._edges?t.drawElementsInstanced(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0,s.numInstances):(t.drawElementsInstanced(t.TRIANGLES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++)}}class va extends ma{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class wa extends fa{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),i&&n.drawArrays++}}class ga extends fa{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawArraysInstanced(t.POINTS,0,s.positionsBuf.numItems,s.numInstances),i&&n.drawArrays++}}class Ea extends fa{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),i&&n.drawElements++}}class Ta extends fa{constructor(e,t){super(e,t,{instancing:!0})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:n,incrementDrawState:i}=e;t.drawElementsInstanced(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0,s.numInstances),i&&n.drawElements++}}class ba extends Ia{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i;const a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class Da extends Ia{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching flat-shading draw vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._lightsState,s=e._sectionPlanesState,n=s.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),n){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,s=t.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}class Ra extends ya{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ca extends ya{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class _a extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class Ba extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),this._addRemapClipPosLines(s),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Oa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec3 worldNormal = octDecode(normal.xy); "),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Sa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching occlusion vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching occlusion fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class Na extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching depth fragment shader"),n.push("precision highp float;"),n.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}}class xa extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class La extends Ia{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry shadow vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 outColor;"),s.push("void main(void) {"),s.push(" int colorFlag = int(flags) & 0xF;"),s.push(" bool visible = (colorFlag > 0);"),s.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push(" if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry shadow fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class Ma extends Ia{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Triangles batching quality draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),r.push("uniform sampler2D uAOMap;"),r.push("in vec4 vViewPosition;"),r.push("in vec3 vViewNormal;"),r.push("in vec4 vColor;"),r.push("in vec2 vUV;"),r.push("in vec2 vMetallicRoughness;"),n.lightMaps.length>0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching pick flat normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching pick flat normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Ha extends Ia{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles batching color texture vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._lightsState,n=e._sectionPlanesState,i=n.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=n.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let e=0,t=s.lights.length;e4096?e=4096:e<1024&&(e=1024),ja=e}get maxDataTextureHeight(){return ja}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Va=e}get maxGeometryBatchSize(){return Va}}const Qa=new ka;class Wa{constructor(){this.maxVerts=Qa.maxGeometryBatchSize,this.maxIndices=3*Qa.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const za=A.mat4(),Ka=A.mat4();function Ya(e,t,s){const n=e.length,i=new Uint16Array(n),a=t[0],r=t[1],l=t[2],o=t[3]-a,c=t[4]-r,u=t[5]-l,h=65525,p=h/o,d=h/c,f=h/u,I=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(n))*(i>=0?1:-1),n=e,i=t}return new Int8Array([Math[t](127.5*n+(n<0?-1:0)),Math[s](127.5*i+(i<0?-1:0))])}function Ja(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const n=1-Math.abs(t)-Math.abs(s);n<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const i=Math.sqrt(t*t+s*s+n*n);return[t/i,s/i,n/i]}const Za=A.vec3(),$a=A.vec3(),er=A.vec3(),tr=A.vec3(),sr=A.mat4();class nr extends fa{drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Za;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=$a;if(o){const e=er;A.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,sr),y=tr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),l.indicesBuf.bind(),r.drawElements(r.TRIANGLES,l.indicesBuf.numItems,l.indicesBuf.itemType,0),l.indicesBuf.unbind()}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ir=A.vec3(),ar=A.vec3(),rr=A.vec3(),lr=A.vec3(),or=A.mat4();class cr extends fa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=ir;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=ar;if(o){const e=rr;A.transformPoint3(u,o,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,or),y=lr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElements(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0),l.edgeIndicesBuf.unbind()):r.drawArrays(r.POINTS,0,l.positionsBuf.numItems)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;const s=[];return s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapBatchingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class ur{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new nr(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new cr(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new nr(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new cr(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const hr={};const pr=A.mat4(),Ar=A.mat4(),dr=A.vec4([0,0,0,1]),fr=A.vec3(),Ir=A.vec3(),yr=A.vec3(),mr=A.vec3(),vr=A.vec3(),wr=A.vec3(),gr=A.vec3();class Er{constructor(e){this.model=e.model,this.sortId="TrianglesBatchingLayer"+(e.solid?"-solid":"-surface")+(e.autoNormals?"-autonormals":"-normals")+(e.textureSet&&e.textureSet.colorTexture?"-colorTexture":"")+(e.textureSet&&e.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Ga[t];return s||(s=new Ua(e),Ga[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ga[t],s._destroy()}))),s}(e.model.scene),this._snapBatchingRenderers=function(e){const t=e.id;let s=hr[t];return s||(s=new ur(e),hr[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete hr[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Wa(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({origin:A.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:e.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=A.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=A.mat3(e.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,e.origin&&this._state.origin.set(e.origin),this.solid=!!e.solid}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=a.length;e0){const e=pr;y?A.inverseMat4(A.transposeMat4(y,Ar),e):A.identityMat4(e,e),function(e,t,s,n,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let r,l,o,c,u,h,p=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(h=0;hu&&(o=r,u=c),r=qa(d,"floor","ceil"),l=Ja(r),c=a(d,l),c>u&&(o=r,u=c),r=qa(d,"ceil","ceil"),l=Ja(r),c=a(d,l),c>u&&(o=r,u=c),n[i+h+0]=o[0],n[i+h+1]=o[1],n[i+h+2]=0}(e,i,i.length,w.normals,w.normals.length)}if(o)for(let e=0,t=o.length;e0)for(let e=0,t=r.length;e0)for(let e=0,t=l.length;e0){const n=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):Ya(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=A.mat4());if(e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,n.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const n=new Int8Array(s.normals);let i=!0;e.normalsBuf=new He(t,t.ARRAY_BUFFER,n,s.normals.length,3,t.STATIC_DRAW,i)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.uv.length>0)if(e.uvDecodeMatrix){let n=!1;e.uvBuf=new He(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,n)}else{const n=Ft.getUVBounds(s.uv),i=Ft.compressUVs(s.uv,n.min,n.max),a=i.quantized;let r=!1;e.uvDecodeMatrix=A.mat3(i.decodeMatrix),e.uvBuf=new He(t,t.ARRAY_BUFFER,a,a.length,2,t.STATIC_DRAW,r)}if(s.metallicRoughness.length>0){const n=new Uint8Array(s.metallicRoughness);let i=!1;e.metallicRoughnessBuf=new He(t,t.ARRAY_BUFFER,n,s.metallicRoughness.length,2,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n),a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new He(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const n=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}isEmpty(){return!this._state.indicesBuf}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=e,n=this._portions[s],i=4*n.vertsBaseIndex,a=4*n.numVerts,r=this._scratchMemory.getUInt8Array(a),l=t[0],o=t[1],c=t[2],u=t[3];for(let e=0;em)&&(m=e,n.set(v),i&&A.triangleNormal(d,f,I,i),y=!0)}}return y&&i&&(A.transformVec3(this.model.worldNormalMatrix,i,i),A.normalizeVec3(i)),y}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}class Tr extends ma{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0;let i,a,r;const l=[];for(l.push("#version 300 es"),l.push("// Instancing geometry drawing vertex shader"),l.push("uniform int renderPass;"),l.push("in vec3 position;"),l.push("in vec2 normal;"),l.push("in vec4 color;"),l.push("in float flags;"),e.entityOffsetsEnabled&&l.push("in vec3 offset;"),l.push("in vec4 modelMatrixCol0;"),l.push("in vec4 modelMatrixCol1;"),l.push("in vec4 modelMatrixCol2;"),l.push("in vec4 modelNormalMatrixCol0;"),l.push("in vec4 modelNormalMatrixCol1;"),l.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(l,!0),e.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;")),l.push("uniform vec4 lightAmbient;"),i=0,a=s.lights.length;i= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"),n&&(l.push("out vec4 vWorldPosition;"),l.push("out float vFlags;")),l.push("out vec4 vColor;"),l.push("void main(void) {"),l.push("int colorFlag = int(flags) & 0xF;"),l.push("if (colorFlag != renderPass) {"),l.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),l.push("} else {"),l.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),l.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix * worldPosition; "),l.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),l.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),l.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),i=0,a=s.lights.length;i0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}}class br extends ma{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState;let n,i;const a=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry flat-shading drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),a){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}for(r.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),r.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),r.push("float lambertian = 1.0;"),r.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),r.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),r.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),n=0,i=s.lights.length;n0,s=[];return s.push("#version 300 es"),s.push("// Instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 color;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing fill fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Pr extends va{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("uniform vec4 color;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Rr extends va{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Triangles instancing edges vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeFlag = int(flags) >> 8 & 0xF;"),s.push("if (edgeFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Cr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry picking vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 pickColor;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class _r extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push(" vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Br extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec2 normal;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("in vec4 modelNormalMatrixCol0;"),s.push("in vec4 modelNormalMatrixCol1;"),s.push("in vec4 modelNormalMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vWorldNormal;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),s.push(" vWorldNormal = worldNormal;"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Or extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesInstancingOcclusionRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}class Sr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry depth drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec2 vHighPrecisionZW;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}class Nr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec3 normal;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s,!0),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class xr extends ma{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}const Lr={3e3:"linearToLinear",3001:"sRGBToLinear"};class Mr extends ma{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,s=e._lightsState,n=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),n&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState,i=s.getNumAllocatedSectionPlanes()>0,a=s.clippingCaps,r=[];r.push("#version 300 es"),r.push("// Instancing geometry quality drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform sampler2D uColorMap;"),r.push("uniform sampler2D uMetallicRoughMap;"),r.push("uniform sampler2D uEmissiveMap;"),r.push("uniform sampler2D uNormalMap;"),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n.reflectionMaps.length>0&&r.push("uniform samplerCube reflectionMap;"),n.lightMaps.length>0&&r.push("uniform samplerCube lightMap;"),r.push("uniform vec4 lightAmbient;");for(let e=0,t=n.lights.length;e0&&r.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(r,!0),r.push("#define PI 3.14159265359"),r.push("#define RECIPROCAL_PI 0.31830988618"),r.push("#define RECIPROCAL_PI2 0.15915494"),r.push("#define EPSILON 1e-6"),r.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),r.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),r.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),r.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),r.push(" return normalize(surf_norm );"),r.push(" }"),r.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),r.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),r.push(" vec2 st0 = dFdx( uv.st );"),r.push(" vec2 st1 = dFdy( uv.st );"),r.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),r.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),r.push(" vec3 N = normalize( surf_norm );"),r.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),r.push(" mat3 tsn = mat3( S, T, N );"),r.push(" return normalize( tsn * mapN );"),r.push("}"),r.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),r.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),r.push("}"),r.push("struct IncidentLight {"),r.push(" vec3 color;"),r.push(" vec3 direction;"),r.push("};"),r.push("struct ReflectedLight {"),r.push(" vec3 diffuse;"),r.push(" vec3 specular;"),r.push("};"),r.push("struct Geometry {"),r.push(" vec3 position;"),r.push(" vec3 viewNormal;"),r.push(" vec3 worldNormal;"),r.push(" vec3 viewEyeDir;"),r.push("};"),r.push("struct Material {"),r.push(" vec3 diffuseColor;"),r.push(" float specularRoughness;"),r.push(" vec3 specularColor;"),r.push(" float shine;"),r.push("};"),r.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),r.push(" float r = ggxRoughness + 0.0001;"),r.push(" return (2.0 / (r * r) - 2.0);"),r.push("}"),r.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),r.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),r.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),r.push("}"),n.reflectionMaps.length>0&&(r.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),r.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),r.push(" vec3 envMapColor = "+Lr[n.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),r.push(" return envMapColor;"),r.push("}")),r.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),r.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),r.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),r.push("}"),r.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" return 1.0 / ( gl * gv );"),r.push("}"),r.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),r.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),r.push(" return 0.5 / max( gv + gl, EPSILON );"),r.push("}"),r.push("float D_GGX(const in float alpha, const in float dotNH) {"),r.push(" float a2 = ( alpha * alpha );"),r.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),r.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float alpha = ( roughness * roughness );"),r.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),r.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),r.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),r.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),r.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),r.push(" vec3 F = F_Schlick( specularColor, dotLH );"),r.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),r.push(" float D = D_GGX( alpha, dotNH );"),r.push(" return F * (G * D);"),r.push("}"),r.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),r.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),r.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),r.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),r.push(" vec4 r = roughness * c0 + c1;"),r.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),r.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),r.push(" return specularColor * AB.x + AB.y;"),r.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(r.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(r.push(" vec3 irradiance = "+Lr[n.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),r.push(" irradiance *= PI;"),r.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(r.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),r.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),r.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),r.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),r.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),r.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),r.push("}")),r.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),r.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),r.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),r.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),r.push("}"),r.push("out vec4 outColor;"),r.push("void main(void) {"),i){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),r.push(" discard;"),r.push(" }"),r.push(" if (dist > 0.0) { "),r.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" return;"),r.push("}")):(r.push(" if (dist > 0.0) { "),r.push(" discard;"),r.push(" }")),r.push("}")}r.push("IncidentLight light;"),r.push("Material material;"),r.push("Geometry geometry;"),r.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),r.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),r.push("float opacity = float(vColor.a) / 255.0;"),r.push("vec3 baseColor = rgb;"),r.push("float specularF0 = 1.0;"),r.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),r.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),r.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),r.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),r.push("baseColor *= colorTexel.rgb;"),r.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),r.push("metallic *= metalRoughTexel.b;"),r.push("roughness *= metalRoughTexel.g;"),r.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),r.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),r.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),r.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),r.push("geometry.position = vViewPosition.xyz;"),r.push("geometry.viewNormal = -normalize(viewNormal);"),r.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),n.lightMaps.length>0&&r.push("geometry.worldNormal = normalize(vWorldNormal);"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&r.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=n.lights.length;e0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry normals vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s,3),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&s.push("out float vFlags;"),s.push("out vec4 vWorldPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&s.push("vFlags = flags;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),s){n.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),n.push("}"),n}}class Hr extends ma{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry drawing vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in vec2 uv;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vViewPosition;"),s.push("out vec4 vColor;"),s.push("out vec2 vUV;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vViewPosition = viewPosition;"),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),s.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,n=e._lightsState;let i,a;const r=s.getNumAllocatedSectionPlanes()>0,l=[];if(l.push("#version 300 es"),l.push("// Instancing geometry drawing fragment shader"),l.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),l.push("precision highp float;"),l.push("precision highp int;"),l.push("#else"),l.push("precision mediump float;"),l.push("precision mediump int;"),l.push("#endif"),e.logarithmicDepthBufferEnabled&&(l.push("in float isPerspective;"),l.push("uniform float logDepthBufFC;"),l.push("in float vFragDepth;")),l.push("uniform sampler2D uColorMap;"),this._withSAO&&(l.push("uniform sampler2D uOcclusionTexture;"),l.push("uniform vec4 uSAOParams;"),l.push("const float packUpscale = 256. / 255.;"),l.push("const float unpackDownScale = 255. / 256.;"),l.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),l.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),l.push("float unpackRGBToFloat( const in vec4 v ) {"),l.push(" return dot( v, unPackFactors );"),l.push("}")),l.push("uniform float gammaFactor;"),l.push("vec4 linearToLinear( in vec4 value ) {"),l.push(" return value;"),l.push("}"),l.push("vec4 sRGBToLinear( in vec4 value ) {"),l.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),l.push("}"),l.push("vec4 gammaToLinear( in vec4 value) {"),l.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),l.push("}"),t&&(l.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),l.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),l.push("}")),r){l.push("in vec4 vWorldPosition;"),l.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),l.push(" if (clippable) {"),l.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),l.push(" discard;"),l.push(" }"),l.push("}")}for(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),l.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),l.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),l.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,a=n.lights.length;i0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec4 pickColor;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("out float vFlags;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vWorldPosition = worldPosition;"),t&&s.push(" vFlags = flags;"),s.push("vPickColor = pickColor;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Kr=A.vec3(),Yr=A.vec3(),Xr=A.vec3(),qr=A.vec3(),Jr=A.mat4();class Zr extends fa{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=t.aabb,d=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?r.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(l));const f=Kr;let I,y;if(f[0]=A.safeInv(p[3]-p[0])*A.MAX_INT,f[1]=A.safeInv(p[4]-p[1])*A.MAX_INT,f[2]=A.safeInv(p[5]-p[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(f[0]),e.snapPickCoordinateScale[1]=A.safeInv(f[1]),e.snapPickCoordinateScale[2]=A.safeInv(f[2]),o||0!==c[0]||0!==c[1]||0!==c[2]){const t=Yr;if(o){const e=A.transformPoint3(u,o,Xr);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=c[0],t[1]+=c[1],t[2]+=c[2],I=Q(d,t,Jr),y=qr,y[0]=a.eye[0]-t[0],y[1]=a.eye[1]-t[1],y[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else I=d,y=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,y),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,f),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible);let m=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(I,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(l.positionsDecodeMatrix,m+=16),r.bindBuffer(r.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),r.bufferData(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,r.DYNAMIC_DRAW),r.bindBufferBase(r.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(l.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(l.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(l.modelMatrixCol2Buf),r.vertexAttribDivisor(this._aModelMatrixCol0.location,1),r.vertexAttribDivisor(this._aModelMatrixCol1.location,1),r.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(l.flagsBuf),r.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(l.edgeIndicesBuf.bind(),r.drawElementsInstanced(r.LINES,l.edgeIndicesBuf.numItems,l.edgeIndicesBuf.itemType,0,l.numInstances),l.edgeIndicesBuf.unbind()):r.drawArraysInstanced(r.POINTS,0,l.positionsBuf.numItems,l.numInstances),r.vertexAttribDivisor(this._aModelMatrixCol0.location,0),r.vertexAttribDivisor(this._aModelMatrixCol1.location,0),r.vertexAttribDivisor(this._aModelMatrixCol2.location,0),r.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&r.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 snapVectorA;"),s.push("uniform vec2 snapInvVectorAB;"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),s.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int pickFlag = int(flags) >> 12 & 0xF;"),s.push("if (pickFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// SnapInstancingDepthRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int layerNumber;"),s.push("uniform vec3 coordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push("}")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class $r{constructor(e){this._scene=e}_compile(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}eagerCreateRenders(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new zr(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Zr(this._scene))}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new zr(this._scene,!1)),this._snapDepthBufInitRenderer}get snapDepthRenderer(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Zr(this._scene)),this._snapDepthRenderer}_destroy(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}const el={};const tl=new Float32Array(1),sl=A.vec4([0,0,0,1]),nl=new Float32Array(3),il=A.vec3(),al=A.vec3(),rl=A.vec3(),ll=A.vec3(),ol=A.vec3(),cl=A.vec3(),ul=A.vec3(),hl=new Float32Array(4);class pl{constructor(e){this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._instancingRenderers=function(e){const t=e.id;let s=Gr[t];return s||(s=new Ur(e),Gr[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Gr[t],s._destroy()}))),s}(e.model.scene),this._snapInstancingRenderers=function(e){const t=e.id;let s=el[t];return s||(s=new $r(e),el[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete el[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({numInstances:0,obb:A.OBB3(),origin:A.vec3(),geometry:e.geometry,textureSet:e.textureSet,pbrSupported:!1,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,e.origin&&this._state.origin.set(e.origin),this._finalized=!1,this.solid=!!e.solid,this.numIndices=e.geometry.numIndices}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new He(n,n.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,n.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new He(n,n.ARRAY_BUFFER,t,this._metallicRoughness.length,2,n.STATIC_DRAW,s)}if(a>0){let t=!1;e.flagsBuf=new He(n,n.ARRAY_BUFFER,new Float32Array(a),a,1,n.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,n.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new He(n,n.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,n.STATIC_DRAW,s),e.positionsDecodeMatrix=A.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),i=!1;e.colorsBuf=new He(n,n.ARRAY_BUFFER,s,s.length,4,n.STATIC_DRAW,i)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new He(n,n.ARRAY_BUFFER,s,s.length,2,n.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,n.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new He(n,n.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,n.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelMatrixCol1Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelMatrixCol2Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,n.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new He(n,n.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,n.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new He(n,n.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,n.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&s&&s.colorTexture&&s.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!s&&!!s.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?1:0)<<16,tl[0]=A,this._state.flagsBuf&&this._state.flagsBuf.setData(tl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(nl[0]=t[0],nl[1]=t[1],nl[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(nl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const s=this._state,n=s.geometry,i=this._portions[e];if(!i)return void this.model.error("portion not found: "+e);const a=n.quantizedPositions,r=s.origin,l=i.offset,o=r[0]+l[0],c=r[1]+l[1],u=r[2]+l[2],h=sl,p=i.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=a.length;ev)&&(v=e,n.set(w),i&&A.triangleNormal(f,I,y,i),m=!0)}}return m&&i&&(A.transformVec3(l.normalMatrix,i,i),A.transformVec3(this.model.worldNormalMatrix,i,i),A.normalizeVec3(i)),m}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}class Al extends Ea{drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class dl extends Ea{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines batching silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),this._addMatricesUniformBlockLines(s),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines batching silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class fl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Al(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new dl(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const Il={};class yl{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class ml{constructor(e){this.layerIndex=e.layerIndex,this._batchingRenderers=function(e){const t=e.id;let s=Il[t];return s||(s=new fl(e),Il[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Il[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new yl(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:A.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=A.vec3(e.origin))}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ya(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.DYNAMIC_DRAW,i)}if(s.colors.length>0){const n=s.colors.length/4,i=new Float32Array(n);let a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const n=new Uint32Array(s.indices);e.indicesBuf=new He(t,t.ELEMENT_ARRAY_BUFFER,n,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2],c=t[3];for(let e=0;e0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing color vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("in float flags;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 lightAmbient;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("if (colorFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class wl extends Ta{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Lines instancing silhouette vertex shader"),s.push("uniform int renderPass;"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 color;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),s.push("if (silhouetteFlag != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class gl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new vl(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new wl(this._scene)),this._silhouetteRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}const El={};const Tl=new Uint8Array(4),bl=new Float32Array(1),Dl=new Float32Array(3),Pl=new Float32Array(4);class Rl{constructor(e){this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._linesInstancingRenderers=function(e){const t=e.id;let s=El[t];return s||(s=new gl(e),El[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete El[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({obb:A.OBB3(),numInstances:0,origin:null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=A.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new He(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(s>0){let t=!1;this._state.flagsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(s),s,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Tl[0]=t[0],Tl[1]=t[1],Tl[2]=t[2],Tl[3]=t[3],this._state.colorsBuf.setData(Tl,4*e,4)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?255:0)<<16,bl[0]=A,this._state.flagsBuf.setData(bl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Dl[0]=t[0],Dl[1]=t[1],Dl[2]=t[2],this._state.offsetsBuf.setData(Dl,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Pl[0]=t[0],Pl[1]=t[4],Pl[2]=t[8],Pl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Pl,s),Pl[0]=t[1],Pl[1]=t[5],Pl[2]=t[9],Pl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Pl,s),Pl[0]=t[2],Pl[1]=t[6],Pl[2]=t[10],Pl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Pl,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawPickNormals(e,t){}destroy(){const e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}class Cl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial,n=[];return n.push("#version 300 es"),n.push("// Points batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class _l extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}class Bl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching pick mesh vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var i=0;i 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vPickColor; "),n.push("}"),n}}class Ol extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batched pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("gl_PointSize += 10.0;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batched pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class Sl extends wa{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push(" gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push(" }"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}class Nl{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Cl(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new _l(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Bl(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ol(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Sl(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const xl={};class Ll{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]}}class Ml{constructor(e){this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._pointsBatchingRenderers=function(e){const t=e.id;let s=xl[t];return s||(s=new Nl(e),xl[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete xl[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Ll(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new it({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:A.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=A.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(e.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,e.origin&&(this._state.origin=A.vec3(e.origin))}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const n=new Uint16Array(s.positions);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}else{const n=Ya(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new He(t,t.ARRAY_BUFFER,n,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const n=new Uint8Array(s.colors);let i=!1;e.colorsBuf=new He(t,t.ARRAY_BUFFER,n,s.colors.length,4,t.STATIC_DRAW,i)}if(s.positions.length>0){const n=s.positions.length/3,i=new Float32Array(n);let a=!1;e.flagsBuf=new He(t,t.ARRAY_BUFFER,i,i.length,1,t.DYNAMIC_DRAW,a)}if(s.pickColors.length>0){const n=new Uint8Array(s.pickColors);let i=!1;e.pickColorsBuf=new He(t,t.ARRAY_BUFFER,n,s.pickColors.length,4,t.STATIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const n=new Float32Array(s.offsets);e.offsetsBuf=new He(t,t.ARRAY_BUFFER,n,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";const s=2*e,n=4*this._portions[s],i=4*this._portions[s+1],a=this._scratchMemory.getUInt8Array(i),r=t[0],l=t[1],o=t[2];for(let e=0;e0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),s.filterIntensity&&n.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),s.filterIntensity&&(n.push("float intensity = float(color.a) / 255.0;"),n.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {")),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),s.filterIntensity&&n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Hl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 silhouetteColor;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vColor;"),n.push("}"),n}}class Ul extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick mesh vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick mesh fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = vPickColor; "),n.push("}"),n}}class Gl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outColor = packDepth(zNormalizedDepth); "),n.push("}"),n}}class jl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing occlusion vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0;e 1.0) {"),n.push(" discard;"),n.push(" }")),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class Vl extends ga{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,n=[];return n.push("#version 300 es"),n.push("// Points instancing depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),s.perspectivePoints&&n.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),s.perspectivePoints?(n.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),n.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),n.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):n.push("gl_PointSize = pointSize;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,n;const i=t.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),s=0,n=t.getNumAllocatedSectionPlanes();s 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),s=0,n=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}class kl extends ga{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// Instancing geometry shadow drawing vertex shader"),s.push("in vec3 position;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("in vec4 color;"),s.push("in float flags;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out float vFlags;")),s.push("void main(void) {"),s.push("int colorFlag = int(flags) & 0xF;"),s.push("bool visible = (colorFlag > 0);"),s.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),s.push("if (!visible || transparent) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push("} else {"),s.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),s.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags = flags;")),s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s.push("gl_PointSize = pointSize;"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),n.push(" discard;"),n.push(" }"),s){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}}class Ql{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Fl(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Hl(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vl(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ul(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Gl(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new jl(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new kl(this._scene)),this._shadowRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}const Wl={};const zl=new Uint8Array(4),Kl=new Float32Array(1),Yl=new Float32Array(3),Xl=new Float32Array(4);class ql{constructor(e){this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._pointsInstancingRenderers=function(e){const t=e.id;let s=Wl[t];return s||(s=new Ql(e),Wl[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Wl[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new it({obb:A.OBB3(),numInstances:0,origin:e.origin?A.vec3(e.origin):null,geometry:e.geometry,positionsDecodeMatrix:e.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=e.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let n=!1;s.flagsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,n)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;s.offsetsBuf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(n.positionsCompressed&&n.positionsCompressed.length>0){const t=!1;s.positionsBuf=new He(e,e.ARRAY_BUFFER,n.positionsCompressed,n.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=A.mat4(n.positionsDecodeMatrix)}if(n.colorsCompressed&&n.colorsCompressed.length>0){const t=new Uint8Array(n.colorsCompressed),i=!1;s.colorsBuf=new He(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,i)}if(this._modelMatrixCol0.length>0){const t=!1;s.modelMatrixCol0Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),s.modelMatrixCol1Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),s.modelMatrixCol2Buf=new He(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){const t=!1;s.pickColorsBuf=new He(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}s.geometry=null,this._finalized=!0}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,s)}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";zl[0]=t[0],zl[1]=t[1],zl[2]=t[2],this._state.colorsBuf.setData(zl,3*e)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s){if(!this._finalized)throw"Not finalized";const n=!!(t&X),i=!!(t&ee),a=!!(t&te),r=!!(t&se),l=!!(t&ne),o=!!(t&J),c=!!(t&q);let u,h;u=!n||c||i||a&&!this.model.scene.highlightMaterial.glowThrough||r&&!this.model.scene.selectedMaterial.glowThrough?oa.NOT_RENDERED:s?oa.COLOR_TRANSPARENT:oa.COLOR_OPAQUE,h=!n||c?oa.NOT_RENDERED:r?oa.SILHOUETTE_SELECTED:a?oa.SILHOUETTE_HIGHLIGHTED:i?oa.SILHOUETTE_XRAYED:oa.NOT_RENDERED;let p=0;p=!n||c?oa.NOT_RENDERED:r?oa.EDGES_SELECTED:a?oa.EDGES_HIGHLIGHTED:i?oa.EDGES_XRAYED:l?s?oa.EDGES_COLOR_TRANSPARENT:oa.EDGES_COLOR_OPAQUE:oa.NOT_RENDERED;let A=0;A|=u,A|=h<<4,A|=p<<8,A|=(n&&!c&&o?oa.PICK:oa.NOT_RENDERED)<<12,A|=(t&Z?255:0)<<16,Kl[0]=A,this._state.flagsBuf.setData(Kl,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Yl[0]=t[0],Yl[1]=t[1],Yl[2]=t[2],this._state.offsetsBuf.setData(Yl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Xl[0]=t[0],Xl[1]=t[4],Xl[2]=t[8],Xl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Xl,s),Xl[0]=t[1],Xl[1]=t[5],Xl[2]=t[9],Xl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Xl,s),Xl[0]=t[2],Xl[1]=t[6],Xl[2]=t[10],Xl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Xl,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,oa.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,oa.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,oa.PICK)}drawPickNormals(e,t){}destroy(){const e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}class Jl{constructor(e){this.id=e.id,this.colorTexture=e.colorTexture,this.metallicRoughnessTexture=e.metallicRoughnessTexture,this.normalsTexture=e.normalsTexture,this.emissiveTexture=e.emissiveTexture,this.occlusionTexture=e.occlusionTexture}destroy(){}}class Zl{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const $l={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class eo{constructor(e,t,s){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=s}itemStart(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}itemEnd(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}itemError(e){void 0!==this.onError&&this.onError(e)}resolveURL(e){return this.urlModifier?this.urlModifier(e):e}setURLModifier(e){return this.urlModifier=e,this}addHandler(e,t){return this.handlers.push(e,t),this}removeHandler(e){const t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}getHandler(e){for(let t=0,s=this.handlers.length;t{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==no[e])return void no[e].push({onLoad:t,onProgress:s,onError:n});no[e]=[],no[e].push({onLoad:t,onProgress:s,onError:n});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),r=this.mimeType,l=this.responseType;fetch(a).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body.getReader)return t;const s=no[e],n=t.body.getReader(),i=t.headers.get("Content-Length"),a=i?parseInt(i):0,r=0!==a;let l=0;const o=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{l+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:r,loaded:l,total:a});for(let e=0,t=s.length;e{switch(l){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,r)));case"json":return e.json();default:if(void 0===r)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(r),s=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(s);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{$l.add(e,t);const s=no[e];delete no[e];for(let e=0,n=s.length;e{const s=no[e];if(void 0===s)throw this.manager.itemError(e),t;delete no[e];for(let e=0,n=s.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class ao{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let ro=0;class lo{constructor({viewer:e,transcoderPath:t,workerLimit:s}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new ao,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const n=e.capabilities;this._workerConfig={astcSupported:n.astcSupported,etc1Supported:n.etc1Supported,etc2Supported:n.etc2Supported,dxtSupported:n.dxtSupported,bptcSupported:n.bptcSupported,pvrtcSupported:n.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new io;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new io;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const n=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,n]).then((([e,t])=>{const s=lo.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(lo.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(lo.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(lo.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([n])),this._transcoderBinary=t,this._workerPool.setWorkerCreator((()=>{const e=new Worker(this._workerSourceURL),t=this._transcoderBinary.slice(0);return e.postMessage({type:"init",config:this._workerConfig,transcoderBinary:t},[t]),e}))})),ro>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),ro++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((n,i)=>{const a=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:a},e))).then((e=>{const s=e.data,{mipmaps:a,width:r,height:l,format:o,type:c,error:u,dfdTransferFn:h,dfdFlags:p}=s;if("error"===c)return i(u);t.setCompressedData({mipmaps:a,props:{format:o,minFilter:1===a.length?1006:1008,magFilter:1===a.length?1006:1008,encoding:2===h?3001:3e3,premultiplyAlpha:!!(1&p)}}),n()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),ro--}}lo.BasisFormat={ETC1S:0,UASTC_4x4:1},lo.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},lo.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},lo.BasisWorker=function(){let e,t,s;const n=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(r){const u=r.data;switch(u.type){case"init":e=u.config,h=u.transcoderBinary,t=new Promise((e=>{s={wasmBinary:h,onRuntimeInitialized:e},BASIS(s)})).then((()=>{s.initializeBasis(),void 0===s.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:r,hasAlpha:h,mipmaps:p,format:A,dfdTransferFn:d,dfdFlags:f}=function(t){const r=new s.KTX2File(new Uint8Array(t));function u(){r.close(),r.delete()}if(!r.isValid())throw u(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const h=r.isUASTC()?a.UASTC_4x4:a.ETC1S,p=r.getWidth(),A=r.getHeight(),d=r.getLevels(),f=r.getHasAlpha(),I=r.getDFDTransferFunc(),y=r.getDFDFlags(),{transcoderFormat:m,engineFormat:v}=function(t,s,r,u){let h,p;const A=t===a.ETC1S?l:o;for(let n=0;n{delete oo[t],s.destroy()}))),s} /** * @author https://github.com/tmarti, with support from https://tribia.com/ * @license MIT @@ -14,7 +14,7 @@ class e{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){ /** * @author https://github.com/tmarti, with support from https://tribia.com/ * @license MIT - **/let fo=null;function Io(e,t){const s=3*e,n=3*t;let i,a,r,l,o,c;const u=Math.min(i=fo[s],a=fo[s+1],r=fo[s+2]),h=Math.min(l=fo[n],o=fo[n+1],c=fo[n+2]);if(u!==h)return u-h;const p=Math.max(i,a,r),A=Math.max(l,o,c);return p!==A?p-A:0}let yo=null;function mo(e,t){let s=yo[2*e]-yo[2*t];return 0!==s?s:yo[2*e+1]-yo[2*t+1]}function vo(e,t,s=!1){const n=e.positionsCompressed||[],i=function(e,t){const s=new Int32Array(e.length/3);for(let e=0,t=s.length;e>t;s.sort(Io);const n=new Int32Array(e.length);for(let t=0,i=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}yo=new Int32Array(e),t.sort(mo);const s=new Int32Array(e.length);for(let n=0,i=t.length;nt){let s=e;e=t,t=s}function s(s,n){return s!==e?e-s:n!==t?t-n:0}let n=0,i=(a.length>>1)-1;for(;n<=i;){const e=i+n>>1,t=s(a[2*e],a[2*e+1]);if(t>0)n=e+1;else{if(!(t<0))return e;i=e-1}}return-n-1}const l=new Int32Array(a.length/2);l.fill(0);const o=n.length/3;if(o>8*(1<p.maxNumPositions&&(p=h()),p.bucketNumber>8)return[e];let d;-1===c[o]&&(c[o]=p.numPositions++,p.positionsCompressed.push(n[3*o]),p.positionsCompressed.push(n[3*o+1]),p.positionsCompressed.push(n[3*o+2])),-1===c[u]&&(c[u]=p.numPositions++,p.positionsCompressed.push(n[3*u]),p.positionsCompressed.push(n[3*u+1]),p.positionsCompressed.push(n[3*u+2])),-1===c[A]&&(c[A]=p.numPositions++,p.positionsCompressed.push(n[3*A]),p.positionsCompressed.push(n[3*A+1]),p.positionsCompressed.push(n[3*A+2])),p.indices.push(c[o]),p.indices.push(c[u]),p.indices.push(c[A]),(d=r(o,u))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(o,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(u,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]]))}const A=t/8*2,d=t/8,f=2*n.length+(i.length+a.length)*A;let I=0,y=-n.length/3;return u.forEach((e=>{I+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),I>f?[e]:(s&&function(e,t){const s={},n={};let i=0;e.forEach((e=>{const t=e.indices,a=e.edgeIndices,r=e.positionsCompressed;for(let e=0,n=t.length;e0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uLightAmbient=n.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const i=s.lights;let a;for(let e=0,t=i.length;e0;let i;const a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Po=new Float32Array([1,1,1]),Ro=A.vec3(),Co=A.vec3(),_o=A.vec3();A.vec3();const Bo=A.mat4();class Oo{constructor(e,t){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a,d=i.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=Ro;if(c){const t=Co;A.transformPoint3(h,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Bo),I=_o,I[0]=i.eye[0]-e[0],I[1]=i.eye[1]-e[1],I[2]=i.eye[2]-e[2]}else f=d,I=i.eye;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s===oa.SILHOUETTE_XRAYED){const e=n.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.SILHOUETTE_HIGHLIGHTED){const e=n.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.SILHOUETTE_SELECTED){const e=n.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,Po);if(n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=n._sectionPlanesState.getNumAllocatedSectionPlanes(),m=n._sectionPlanesState.sectionPlanes.length;if(y>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture silhouette vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.y) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = color;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const So=new Float32Array([0,0,0,1]),No=A.vec3(),xo=A.vec3();A.vec3();const Lo=A.mat4();class Mo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=No;if(I){const t=A.transformPoint3(h,c,xo);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Lo)}else f=d;if(r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s===oa.EDGES_XRAYED){const e=i.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.EDGES_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.EDGES_SELECTED){const e=i.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,So);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uWorldMatrix=s.getLocation("worldMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Fo=A.vec3(),Ho=A.vec3();A.vec3();const Uo=A.mat4();class Go{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=Fo;if(I){const t=A.transformPoint3(h,c,Ho);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Uo)}else f=d;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled,s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uObjectPerObjectOffsets;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vec4 rgb = vec4(color.rgba);"),s.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const jo=A.vec3(),Vo=A.vec3(),ko=A.vec3(),Qo=A.mat4();class Wo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n;let d,f;o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=jo;if(I){const t=A.transformPoint3(h,c,Vo);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(a.viewMatrix,e,Qo),f=ko,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=a.viewMatrix,f=a.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(a.project.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,e)}const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("smooth out vec4 vWorldPosition;"),s.push("flat out uvec4 vFlags2;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uvec4 vFlags2;");for(var n=0;n 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outPickColor = vPickColor; "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zo=A.vec3(),Ko=A.vec3(),Yo=A.vec3();A.vec3();const Xo=A.mat4();class qo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=e.pickViewMatrix||a.viewMatrix;let f,I;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const t=zo;if(c){const e=Ko;A.transformPoint3(h,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],f=Q(d,t,Xo),I=Yo,I[0]=a.eye[0]-t[0],I[1]=a.eye[1]-t[1],I[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,I=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniform1f(this._uPickZNear,e.pickZNear),r.uniform1f(this._uPickZFar,e.pickZFar),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(var n=0;n 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outPackedDepth = packDepth(zNormalizedDepth); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Jo=A.vec3(),Zo=A.vec3(),$o=A.vec3(),ec=A.vec3();A.vec3();const tc=A.mat4();class sc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=Jo;let y,m;I[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,I[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,I[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(I[0]),e.snapPickCoordinateScale[1]=A.safeInv(I[1]),e.snapPickCoordinateScale[2]=A.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Zo;if(v){const e=A.transformPoint3(h,c,$o);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=Q(f,t,tc),m=ec,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(T,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(T,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(T,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uSnapVectorA;"),s.push("uniform vec2 uSnapInvVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),s.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vViewPosition = clipPos;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const nc=A.vec3(),ic=A.vec3(),ac=A.vec3(),rc=A.vec3();A.vec3();const lc=A.mat4();class oc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=nc;let y,m;I[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,I[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,I[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(I[0]),e.snapPickCoordinateScale[1]=A.safeInv(I[1]),e.snapPickCoordinateScale[2]=A.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=ic;if(v){const e=ac;A.transformPoint3(h,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=Q(f,t,lc),m=rc,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this._uVectorA,e.snapVectorA),r.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uVectorAB;"),s.push("uniform vec2 uInverseVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),s.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" } else {"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const cc=A.vec3(),uc=A.vec3(),hc=A.vec3();A.vec3();const pc=A.mat4();class Ac{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=e.pickViewMatrix||a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=cc;if(c){const t=uc;A.transformPoint3(h,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,pc),I=hc,I[0]=a.eye[0]-e[0],I[1]=a.eye[1]-e[1],I[2]=a.eye[2]-e[2]}else f=d,I=a.eye;r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" } else {"),s.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureColorRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const dc=A.vec3(),fc=A.vec3(),Ic=A.vec3();A.vec3();const yc=A.mat4();class mc{constructor(e){this._scene=e,this._allocate(),this._hash=this._getHash()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=dc;if(I){const t=A.transformPoint3(h,c,fc);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(i.viewMatrix,e,yc),f=Ic,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPositionsDecodeMatrix=s.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture draw vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out highp vec2 vHighPrecisionZW;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in highp vec2 vHighPrecisionZW;"),s.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vc=A.vec3(),wc=A.vec3(),gc=A.vec3();A.vec3();const Ec=A.mat4();class Tc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const I=0!==o[0]||0!==o[1]||0!==o[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(I||y){const e=vc;if(I){const t=wc;A.transformPoint3(u,o,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=c[0],e[1]+=c[1],e[2]+=c[2],d=Q(p,e,Ec),f=gc,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=p,f=a.eye;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,h),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),r.uniformMatrix4fv(this._uWorldNormalMatrix,!1,n.worldNormalMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0,s=[];return s.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("uniform int renderPass;"),s.push("attribute vec3 position;"),e.entityOffsetsEnabled&&s.push("attribute vec3 offset;"),s.push("attribute vec3 normal;"),s.push("attribute vec4 color;"),s.push("attribute vec4 flags;"),s.push("attribute vec4 flags2;"),s.push("uniform mat4 worldMatrix;"),s.push("uniform mat4 worldNormalMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform mat4 viewNormalMatrix;"),s.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("varying float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out vec4 vFlags2;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth?s.push("vFragDepth = 1.0 + clipPos.w;"):(s.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),s.push("clipPos.z *= clipPos.w;")),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bc=A.vec3(),Dc=A.vec3(),Pc=A.vec3();A.vec3(),A.vec4();const Rc=A.mat4();class Cc{constructor(e,t){this._scene=e,this._withSAO=t,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=bc;if(I){const t=A.transformPoint3(h,c,Dc);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(i.viewMatrix,e,Rc),f=Pc,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// trianglesDatatextureNormalsRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("in vec4 vWorldPosition;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class _c{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Oo(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Wo(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new qo(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cc(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new sc(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new oc(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Do(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Do(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Oo(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new mc(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Tc(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Mo(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Go(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Wo(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cc(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Cc(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new qo(this._scene)),this._pickDepthRenderer}get vertexDepthRenderer(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new sc(this._scene)),this._vertexDepthRenderer}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new oc(this._scene)),this._snapDepthBufInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Ac(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const Bc={};class Oc{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]}}class Sc{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}bindCommonTextures(e,t,s,n,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,n,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}bindTriangleIndicesTextures(e,t,s,n){this.indicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.indicesPerBitnessTextures[n].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,n){this.edgeIndicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[n].bindTexture(e,s,6)}}class Nc{constructor(e,t,s,n,i=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=n,this._textureData=i}bindTexture(e,t,s){return e.bindTexture(t,this,s)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const xc={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(xc,null,4));let e=0;Object.keys(xc).forEach((t=>{t.startsWith("size")&&(e+=xc[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/xc.totalPolygons).toFixed(2)}`);let t={};Object.keys(xc).forEach((s=>{s.startsWith("size")&&(t[s]=`${(xc[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class Lc{disableBindedTextureFiltering(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}generateTextureForColorsAndFlags(e,t,s,n,i,a,r){const l=t.length;this.numPortions=l;const o=4096,c=Math.ceil(l/512);if(0===c)throw"texture height===0";const u=new Uint8Array(16384*c);xc.sizeDataColorsAndFlags+=u.byteLength,xc.numberOfTextures++;for(let e=0;e>24&255,n[e]>>16&255,n[e]>>8&255,255&n[e]],32*e+16),u.set([i[e]>>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+20),u.set([a[e]>>24&255,a[e]>>16&255,a[e]>>8&255,255&a[e]],32*e+24),u.set([r[e]?1:0,0,0,0],32*e+28);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,o,c),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,c,e.RGBA_INTEGER,e.UNSIGNED_BYTE,u,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Nc(e,h,o,c,u)}generateTextureForObjectOffsets(e,t){const s=512,n=Math.ceil(t/s);if(0===n)throw"texture height===0";const i=new Float32Array(1536*n).fill(0);xc.sizeDataTextureOffsets+=i.byteLength,xc.numberOfTextures++;const a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,n),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,n,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Nc(e,a,s,n,i)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const n=2048,i=Math.ceil(s/512),a=new Float32Array(8192*i);xc.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Bc[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new Oc,this._dataTextureState=new Sc,this._dataTextureGenerator=new Lc,this._state=new it({origin:A.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numEdgeIndices8Bits:0,numEdgeIndices16Bits:0,numEdgeIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&xc.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const n=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[n]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let n=0,i=0;e.buckets.forEach((e=>{n+=e.positionsCompressed.length/3,i+=e.indices.length/3})),(this._state.numVertices+n>4096*Fc||t+i>4096*Fc)&&xc.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+n<=4096*Fc&&t+i<=4096*Fc}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,n)=>{const i=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${n}`:`${t.id}#${n}`;let a=this._bucketGeometries[i];a||(a=this._createBucketGeometry(t,e),this._bucketGeometries[i]=a);const r=this._createSubPortion(t,a,e);s.push(r)}));const n=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),n}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;xc.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;xc.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.edgeIndices),t.edgeIndices=s}const s=t.positionsCompressed,n=t.indices,i=t.edgeIndices,a=this._buffer;a.positionsCompressed.push(s);const r=a.lenPositionsCompressed/3,l=s.length/3;let o;a.lenPositionsCompressed+=s.length;let c,u=0;if(n){let e;u=n.length/3,l<=256?(e=a.indices8Bits,o=a.lenIndices8Bits/3,a.lenIndices8Bits+=n.length):l<=65536?(e=a.indices16Bits,o=a.lenIndices16Bits/3,a.lenIndices16Bits+=n.length):(e=a.indices32Bits,o=a.lenIndices32Bits/3,a.lenIndices32Bits+=n.length),e.push(n)}let h=0;if(i){let e;h=i.length/2,l<=256?(e=a.edgeIndices8Bits,c=a.lenEdgeIndices8Bits/2,a.lenEdgeIndices8Bits+=i.length):l<=65536?(e=a.edgeIndices16Bits,c=a.lenEdgeIndices16Bits/2,a.lenEdgeIndices16Bits+=i.length):(e=a.edgeIndices32Bits,c=a.lenEdgeIndices32Bits/2,a.lenEdgeIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=l,xc.numberOfGeometries++;return{vertexBase:r,numVertices:l,numTriangles:u,numEdges:h,indicesBase:o,edgeIndicesBase:c,obb:null}}_createSubPortion(e,t,s,n){const i=e.color;e.metallic,e.roughness;const a=e.colors,r=e.opacity,l=e.meshMatrix,o=e.pickColor,c=this._buffer,u=this._state;c.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),c.perObjectInstancePositioningMatrices.push(l||Vc),c.perObjectSolid.push(!!e.solid),a?c.perObjectColors.push([255*a[0],255*a[1],255*a[2],255]):i&&c.perObjectColors.push([i[0],i[1],i[2],r]),c.perObjectPickColors.push(o),c.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?u.numIndices8Bits:t.numVertices<=65536?u.numIndices16Bits:u.numIndices32Bits,c.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?u.numEdgeIndices8Bits:t.numVertices<=65536?u.numEdgeIndices16Bits:u.numEdgeIndices32Bits,c.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const h=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=c.perTriangleNumberPortionId8Bits,u.numIndices8Bits+=s,xc.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=c.perTriangleNumberPortionId16Bits,u.numIndices16Bits+=s,xc.totalPolygons16Bits+=t.numTriangles):(e=c.perTriangleNumberPortionId32Bits,u.numIndices32Bits+=s,xc.totalPolygons32Bits+=t.numTriangles),xc.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=c.perEdgeNumberPortionId8Bits,u.numEdgeIndices8Bits+=s,xc.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=c.perEdgeNumberPortionId16Bits,u.numEdgeIndices16Bits+=s,xc.totalEdges16Bits+=t.numEdges):(e=c.perEdgeNumberPortionId32Bits,u.numEdgeIndices32Bits+=s,xc.totalEdges32Bits+=t.numEdges),xc.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId8Bits)),n.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId16Bits)),n.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId32Bits)),n.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,n.indices8Bits,n.lenIndices8Bits)),n.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,n.indices16Bits,n.lenIndices16Bits)),n.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,n.indices32Bits,n.lenIndices32Bits)),n.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(s,n.edgeIndices8Bits,n.lenEdgeIndices8Bits)),n.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(s,n.edgeIndices16Bits,n.lenEdgeIndices16Bits)),n.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(s,n.edgeIndices32Bits,n.lenEdgeIndices32Bits)),t.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}isEmpty(){return 0===this._numPortions}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,Uc)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,n=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,a=i.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,A.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,Uc))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const n=this._portionToSubPortionsMap[e];for(let e=0,i=n.length;e=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,Uc))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectOffsets._texture),n.texSubImage2D(n.TEXTURE_2D,0,0,e,1,1,n.RGB,n.FLOAT,Gc))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,n.RGBA,n.FLOAT,Hc))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,oa.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const s=this.model.backfaces||e.sectioned;if(t.backfaces!==s){const e=t.gl;s?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=s}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT))}drawDepth(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED))}drawEdgesColorOpaque(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,oa.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,oa.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,oa.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,oa.PICK))}drawSnapInitDepthBuf(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,oa.PICK))}drawSnapDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,oa.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,oa.PICK))}destroy(){if(this._destroyed)return;const e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const Qc=A.vec4(4),Wc=A.vec4(),zc=A.vec4(),Kc=A.vec3([1,0,0]),Yc=A.vec3([0,1,0]),Xc=A.vec3([0,0,1]);A.vec3(3),A.vec3(3);const qc=A.identityMat4();class Jc{constructor(e){this._model=e.model,this.id=e.id,this._parentTransform=e.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=A.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=A.identityMat4(new Float32Array(16)),this._worldMatrix=A.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,e.matrix?this.matrix=e.matrix:(this.scale=e.scale,this.position=e.position,e.quaternion||(this.rotation=e.rotation)),e.parent&&e.parent._addChildTransform(this)}_addChildTransform(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}_addMesh(e){this._meshes.push(e),e.transform=this}get parentTransform(){return this._parentTransform}get meshes(){return this._meshes}set position(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),A.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),A.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}get quaternion(){return this._quaternion}set scale(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}get scale(){return this._scale}set matrix(e){this._localMatrix||(this._localMatrix=A.identityMat4()),this._localMatrix.set(e||qc),A.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}get matrix(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=A.identityMat4()),A.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix}get worldMatrix(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}rotate(e,t){return Qc[0]=e[0],Qc[1]=e[1],Qc[2]=e[2],Qc[3]=t*A.DEGTORAD,A.angleAxisToQuaternion(Qc,Wc),A.mulQuaternions(this.quaternion,Wc,zc),this.quaternion=zc,this._setLocalMatrixDirty(),this._model.glRedraw(),this}rotateOnWorldAxis(e,t){return Qc[0]=e[0],Qc[1]=e[1],Qc[2]=e[2],Qc[3]=t*A.DEGTORAD,A.angleAxisToQuaternion(Qc,Wc),A.mulQuaternions(Wc,this.quaternion,Wc),this}rotateX(e){return this.rotate(Kc,e)}rotateY(e){return this.rotate(Yc,e)}rotateZ(e){return this.rotate(Xc,e)}translate(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateX(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateY(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateZ(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}_setLocalMatrixDirty(){this._localMatrixDirty=!0,this._transformDirty()}_transformDirty(){this._worldMatrixDirty=!0;for(let e=0,t=this._childTransforms.length;e0){const e=t._meshes;for(let t=0,s=e.length;t0){const e=this._meshes;for(let t=0,s=e.length;t{this._viewMatrixDirty=!0})),this._meshesWithDirtyMatrices=[],this._numMeshesWithDirtyMatrices=0,this._onTick=this.scene.on("tick",(()=>{for(;this._numMeshesWithDirtyMatrices>0;)this._meshesWithDirtyMatrices[--this._numMeshesWithDirtyMatrices]._updateMatrix()})),this._createDefaultTextureSet(),this.visible=t.visible,this.culled=t.culled,this.pickable=t.pickable,this.clippable=t.clippable,this.collidable=t.collidable,this.castsShadow=t.castsShadow,this.receivesShadow=t.receivesShadow,this.xrayed=t.xrayed,this.highlighted=t.highlighted,this.selected=t.selected,this.edges=t.edges,this.colorize=t.colorize,this.opacity=t.opacity,this.backfaces=t.backfaces}_meshMatrixDirty(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}_createDefaultTextureSet(){const e=new Zl({id:"defaultColorTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new Zl({id:"defaultMetalRoughTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new Zl({id:"defaultNormalsTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),n=new Zl({id:"defaultEmissiveTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new Zl({id:"defaultOcclusionTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=s,this._textures.defaultEmissiveTexture=n,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Jl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:n,occlusionTexture:i})}get isPerformanceModel(){return!0}get transforms(){return this._transforms}get textures(){return this._textures}get textureSets(){return this._textureSets}get meshes(){return this._meshes}get objects(){return this._entities}get origin(){return this._origin}set position(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),A.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),A.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get quaternion(){return this._quaternion}set scale(e){}get scale(){return this._scale}set matrix(e){this._matrix.set(e||iu),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),A.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),A.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get matrix(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix}get rotationMatrix(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}_rebuildMatrices(){this._matrixDirty&&(A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),A.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),A.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}get rotationMatrixConjugate(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}_setWorldMatrixDirty(){this._matrixDirty=!0,this._aabbDirty=!0}_transformDirty(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}_sceneModelDirty(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(let e=0,t=this._entityList.length;e0}set visible(e){e=!1!==e,this._visible=e;for(let t=0,s=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,s=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,s=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,s=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,s=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,s=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,s=new Uint8Array(t.length);for(let e=0,n=t.length;e{o.setImage(c,{minFilter:s,magFilter:n,wrapS:i,wrapT:a,wrapR:r,flipY:e.flipY,encoding:l}),this.glRedraw()},c.src=e.src;break;default:this._textureTranscoder?g.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'src': file data is zero length")}),(function(e){this.error(`[createTexture] Can't create texture from 'src': ${e}`)})):this.error(`[createTexture] Can't create texture from 'src' - SceneModel needs to be configured with a TextureTranscoder for this file type ('${t}')`)}}else e.buffers&&(this._textureTranscoder?this._textureTranscoder.transcode(e.buffers,o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'buffers' - SceneModel needs to be configured with a TextureTranscoder for this option"));this._textures[t]=new Zl({id:t,texture:o})}createTextureSet(e){const t=e.id;if(null==t)return void this.error("[createTextureSet] Config missing: id");if(this._textureSets[t])return void this.error(`[createTextureSet] Texture set already created: ${t}`);let s,n,i,a,r;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(s=this._textures[e.colorTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(n=this._textures[e.metallicRoughnessTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(i=this._textures[e.normalsTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(a=this._textures[e.emissiveTextureId],!a)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else a=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(r=this._textures[e.occlusionTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultOcclusionTexture;const l=new Jl({id:t,model:this,colorTexture:s,metallicRoughnessTexture:n,normalsTexture:i,emissiveTexture:a,occlusionTexture:r});return this._textureSets[t]=l,l}createTransform(e){if(void 0===e.id||null===e.id)return void this.error("[createTransform] SceneModel.createTransform() config missing: id");if(this._transforms[e.id])return void this.error(`[createTransform] SceneModel already has a transform with this ID: ${e.id}`);let t;if(this.parentTransformId&&(t=this._transforms[e.parentTransformId],!t))return void this.error("[createTransform] SceneModel.createTransform() config missing: id");const s=new Jc({id:e.id,model:this,parentTransform:t,matrix:e.matrix,position:e.position,scale:e.scale,rotation:e.rotation,quaternion:e.quaternion});return this._transforms[s.id]=s,s}createMesh(e){if(void 0===e.id||null===e.id)return void this.error("[createMesh] SceneModel.createMesh() config missing: id");if(this._scheduledMeshes[e.id])return void this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`);if(!(void 0!==e.geometryId)){if(void 0!==e.primitive&&null!==e.primitive||(e.primitive="triangles"),"points"!==e.primitive&&"lines"!==e.primitive&&"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)return void this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`);if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),null;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),null;if(!e.buckets&&!e.indices&&"points"!==e.primitive)return this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),null;if((e.matrix||e.position||e.rotation||e.scale)&&(e.positionsCompressed||e.positionsDecodeBoundary))return this.error("Unexpected params: 'matrix', 'rotation', 'scale', 'position' not allowed with 'positionsCompressed'"),null;const t=!!this._dtxEnabled&&("triangles"===e.primitive||"solid"===e.primitive||"surface"===e.primitive);if(e.origin=e.origin?A.addVec3(this._origin,e.origin,A.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||eu,s=e.position||tu,n=e.rotation||su;A.eulerToQuaternion(n,"XYZ",nu),e.meshMatrix=A.composeMat4(s,nu,t,A.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Xa(e.positionsDecodeBoundary,A.mat4())),t){if(e.type=2,e.color=e.color?new Uint8Array([Math.floor(255*e.color[0]),Math.floor(255*e.color[1]),Math.floor(255*e.color[2])]):au,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=A.vec3(),s=[];z(e.positions,s,t)&&(e.positions=s,e.origin=A.addVec3(e.origin,t,t))}if(e.positions){const t=A.collapseAABB3();e.positionsDecodeMatrix=A.mat4(),A.expandAABB3Points3(t,e.positions),e.positionsCompressed=Ya(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=A.collapseAABB3();A.expandAABB3Points3(t,e.positionsCompressed),Ft.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=A.collapseAABB3();for(let s=0,n=e.buckets.length;s>24&255,i=s>>16&255,a=s>>8&255,r=255&s;switch(e.pickColor=new Uint8Array([r,a,i,n]),e.solid="solid"===e.primitive,t.origin=A.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}_getNumPrimitives(e){let t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(let s=0,n=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,n=e.textureSetId||"-",i=e.geometryId,a=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${n}.${i}`;let r=this._vboInstancingLayers[a];if(r)return r;let l=e.textureSet;const o=e.geometry;for(;!r;)switch(o.primitive){case"triangles":case"surface":r=new pl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!1});break;case"solid":r=new pl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!0});break;case"lines":r=new Rl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0});break;case"points":r=new ql({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0})}return this._vboInstancingLayers[a]=r,this.layerList.push(r),r}createEntity(e){if(void 0===e.id?e.id=A.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=A.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=X),this._pickable&&!1!==e.pickable&&(t|=J),this._culled&&!1!==e.culled&&(t|=q),this._clippable&&!1!==e.clippable&&(t|=Z),this._collidable&&!1!==e.collidable&&(t|=$),this._edges&&!1!==e.edges&&(t|=ne),this._xrayed&&!1!==e.xrayed&&(t|=ee),this._highlighted&&!1!==e.highlighted&&(t|=te),this._selected&&!1!==e.selected&&(t|=se),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let s=0,n=e.meshIds.length;se.sortIdt.sortId?1:0));for(let e=0,t=this.layerList.length;e0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}_updateRenderFlagsVisibleLayers(){const e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(let t=0,s=this.layerList.length;t0)for(let e=0;e0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){const t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0){this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0))}if(this.numSelectedLayerPortions>0){const t=this.scene.selectedMaterial._state;t.fill&&(t.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){const t=this.scene.highlightMaterial._state;t.fill&&(t.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}drawColorOpaque(e){const t=this.renderFlags;for(let s=0,n=t.visibleLayers.length;s65536?16:8)}else r=[{positionsCompressed:n,indices:i,edgeIndices:a}];return r}class ou extends ru{constructor(e,t={}){super(e,t)}}class cu extends S{constructor(e,t={}){if(super(e,t),this._positions=t.positions||[],t.indices)this._indices=t.indices;else{this._indices=[];for(let e=0,t=this._positions.length/3-1;ed.has(e.id)||I.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let n,i=function(e){let t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0"),t}(s.colorize);s.xrayed?(n=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,n=Math.round(255*n).toString(16).padStart(2,"0"),i=n+i):d.has(s.id)&&(n=Math.round(255*s.opacity).toString(16).padStart(2,"0"),i=n+i),e[i]||(e[i]=[]);const a=s.id,r=s.originalSystemId,l={ifc_guid:r,originating_system:this.originatingSystem};return r!==a&&(l.authoring_tool_id=a),e[i].push(l),e}),{}),m=Object.entries(y).map((([e,t])=>({color:e,components:t})));a.components.coloring=m;const v=t.objectIds,w=t.visibleObjects,g=t.visibleObjectIds,E=v.filter((e=>!w[e])),T=t.selectedObjectIds;return e.defaultInvisible||g.length0&&e.clipping_planes.forEach((function(e){let t=Iu(e.location,uu),s=Iu(e.direction,uu);c&&A.negateVec3(s),A.subVec3(t,o),i.yUp&&(t=mu(t),s=mu(s)),new yi(n,{pos:t,dir:s})})),n.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let i=0;e.lines.forEach((e=>{e.start_point&&e.end_point&&(t.push(e.start_point.x),t.push(e.start_point.y),t.push(e.start_point.z),t.push(e.end_point.x),t.push(e.end_point.y),t.push(e.end_point.z),s.push(i++),s.push(i++))})),new cu(n,{positions:t,indices:s,clippable:!1,collidable:!0})}if(n.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let a=Iu(e.location,hu),r=Iu(e.normal,pu),l=Iu(e.up,Au),o=e.height||1;t&&s&&a&&r&&l&&(i.yUp&&(a=mu(a),r=mu(r),l=mu(l)),new ta(n,{src:s,type:t,pos:a,normal:r,up:l,clippable:!1,collidable:!0,height:o}))})),l&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),n.setObjectsHighlighted(n.highlightedObjectIds,!1),n.setObjectsSelected(n.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(n.setObjectsVisible(n.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(n.setObjectsVisible(n.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const i=e.components.visibility.view_setup_hints;i&&(!1===i.spaces_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==i.spaces_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),i.space_boundaries_visible,!1===i.openings_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),i.space_boundaries_translucent,void 0!==i.openings_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(n.setObjectsSelected(n.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let s=e.color,n=0,i=!1;8===s.length&&(n=parseInt(s.substring(0,2),16)/256,n<=1&&n>=.95&&(n=1),s=s.substring(2),i=!0);const a=[parseInt(s.substring(0,2),16)/256,parseInt(s.substring(2,4),16)/256,parseInt(s.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=a,i&&(e.opacity=n)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let l,c,u,h;if(e.perspective_camera?(l=Iu(e.perspective_camera.camera_view_point,uu),c=Iu(e.perspective_camera.camera_direction,uu),u=Iu(e.perspective_camera.camera_up_vector,uu),i.perspective.fov=e.perspective_camera.field_of_view,h="perspective"):(l=Iu(e.orthogonal_camera.camera_view_point,uu),c=Iu(e.orthogonal_camera.camera_direction,uu),u=Iu(e.orthogonal_camera.camera_up_vector,uu),i.ortho.scale=e.orthogonal_camera.view_to_world_scale,h="ortho"),A.subVec3(l,o),i.yUp&&(l=mu(l),c=mu(c),u=mu(u)),a){const e=n.pick({pickSurface:!0,origin:l,direction:c});c=e?e.worldPos:A.addVec3(l,c,uu)}else c=A.addVec3(l,c,uu);r?(i.eye=l,i.look=c,i.up=u,i.projection=h):s.cameraFlight.flyTo({eye:l,look:c,up:u,duration:t.duration,projection:h})}}_withBCFComponent(e,t,s){const n=this.viewer,i=n.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const a=t.authoring_tool_id,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}}if(t.ifc_guid){const a=t.ifc_guid,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}Object.keys(i.models).forEach((t=>{const r=A.globalizeObjectId(t,a),l=i.objects[r];if(l)s(l);else if(e.updateCompositeObjects){n.metaScene.metaObjects[r]&&i.withObjects(n.metaScene.getObjectIDsInSubtree(r),s)}}))}}destroy(){super.destroy()}}function fu(e){return{x:e[0],y:e[1],z:e[2]}}function Iu(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function yu(e){return new Float64Array([e[0],-e[2],e[1]])}function mu(e){return new Float64Array([e[0],e[2],-e[1]])}const vu=A.vec3(),wu=(e,t,s,n)=>{var i=e-s,a=t-n;return Math.sqrt(i*i+a*a)};class gu extends S{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._eventSubs={};var s=this.plugin.viewer.scene;this._originMarker=new ce(s,t.origin),this._targetMarker=new ce(s,t.target),this._originWorld=A.vec3(),this._targetWorld=A.vec3(),this._wp=new Float64Array(24),this._vp=new Float64Array(24),this._pp=new Float64Array(24),this._cp=new Float64Array(8),this._xAxisLabelCulled=!1,this._yAxisLabelCulled=!1,this._zAxisLabelCulled=!1,this._color=t.color||this.plugin.defaultColor;const n=t.onMouseOver?e=>{t.onMouseOver(e,this)}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this)}:null,a=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._targetDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._lengthWire=new ue(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._xAxisWire=new ue(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._yAxisWire=new ue(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._zAxisWire=new ue(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._lengthLabel=new pe(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._xAxisLabel=new pe(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._yAxisLabel=new pe(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._zAxisLabel=new pe(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:r,onContextMenu:a}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._sectionPlanesDirty=!0,this._visible=!1,this._originVisible=!1,this._targetVisible=!1,this._wireVisible=!1,this._axisVisible=!1,this._xAxisVisible=!1,this._yAxisVisible=!1,this._zAxisVisible=!1,this._axisEnabled=!0,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=s.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=s.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=s.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.targetVisible=t.targetVisible,this.wireVisible=t.wireVisible,this.axisVisible=t.axisVisible,this.xAxisVisible=t.xAxisVisible,this.yAxisVisible=t.yAxisVisible,this.zAxisVisible=t.zAxisVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(A.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}const t=this._originMarker.viewPos[2],s=this._targetMarker.viewPos[2];if(t>-.3||s>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){A.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var n=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var r=a.top-t.top,l=a.left-t.left,o=e.canvas.boundary,c=o[2],u=o[3],h=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,I=s.units,y=s.unitsInfo[I].abbrev;for(var p=0,d=n.length;p{const t=e.snappedCanvasPos||e.canvasPos;i=!0,a.set(e.worldPos),r.set(e.canvasPos),0===this._mouseState?(this._markerDiv.style.marginLeft=t[0]-5+"px",this._markerDiv.style.marginTop=t[1]-5+"px",this._markerDiv.style.background="pink",e.snappedToVertex||e.snappedToEdge?(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,this.pointerLens.snapped=!0),this._markerDiv.style.background="greenyellow",this._markerDiv.style.border="2px solid green"):(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.canvasPos,this.pointerLens.snapped=!1),this._markerDiv.style.background="pink",this._markerDiv.style.border="2px solid red"),c=e.entity):(this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px"),n.style.cursor="pointer",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=this._currentDistanceMeasurementInitState.wireVisible,this._currentDistanceMeasurement.axisVisible=this._currentDistanceMeasurementInitState.axisVisible&&this.distanceMeasurementsPlugin.defaultAxisVisible,this._currentDistanceMeasurement.xAxisVisible=this._currentDistanceMeasurementInitState.xAxisVisible&&this.distanceMeasurementsPlugin.defaultXAxisVisible,this._currentDistanceMeasurement.yAxisVisible=this._currentDistanceMeasurementInitState.yAxisVisible&&this.distanceMeasurementsPlugin.defaultYAxisVisible,this._currentDistanceMeasurement.zAxisVisible=this._currentDistanceMeasurementInitState.zAxisVisible&&this.distanceMeasurementsPlugin.defaultZAxisVisible,this._currentDistanceMeasurement.targetVisible=this._currentDistanceMeasurementInitState.targetVisible,this._currentDistanceMeasurement.target.worldPos=a.slice(),this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px")})),n.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(l=e.clientX,o=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>l+20||t.clientXo+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),i=!1,this._markerDiv.style.marginLeft="-100px",this._markerDiv.style.marginTop="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),n.style.cursor="default"})),this._active=!0}deactivate(){if(!this._active)return;this.fire("activated",!1),this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.distanceMeasurementsPlugin.viewer.cameraControl;t.off(this._onCameraControlHoverSnapOrSurface),t.off(this._onCameraControlHoverSnapOrSurfaceOff),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null))}destroy(){this.deactivate(),super.destroy()}}class bu extends V{constructor(e,t={}){super("DistanceMeasurements",e),this._pointerLens=t.pointerLens,this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.labelMinAxisLength=t.labelMinAxisLength,this.defaultVisible=!1!==t.defaultVisible,this.defaultOriginVisible=!1!==t.defaultOriginVisible,this.defaultTargetVisible=!1!==t.defaultTargetVisible,this.defaultWireVisible=!1!==t.defaultWireVisible,this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.defaultAxisVisible=!1!==t.defaultAxisVisible,this.defaultXAxisVisible=!1!==t.defaultXAxisVisible,this.defaultYAxisVisible=!1!==t.defaultYAxisVisible,this.defaultZAxisVisible=!1!==t.defaultZAxisVisible,this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,distanceMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get pointerLens(){return this._pointerLens}get control(){return this._defaultControl||(this._defaultControl=new Tu(this,{})),this._defaultControl}get measurements(){return this._measurements}set labelMinAxisLength(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}get labelMinAxisLength(){return this._labelMinAxisLength}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.target,n=new gu(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:s.entity,worldPos:s.worldPos},visible:e.visible,wireVisible:e.wireVisible,axisVisible:!1!==e.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==e.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==e.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==e.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==e.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:e.originVisible,targetVisible:e.targetVisible,color:e.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[n.id]=n,n.on("destroyed",(()=>{delete this._measurements[n.id]})),this.fire("measurementCreated",n),n}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}setAxisVisible(e){for(const[t,s]of Object.entries(this.measurements))s.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{s=1e3*this._delayBeforeRestoreSeconds,n||(e.scene._renderer.setColorTextureEnabled(!this._hideColorTexture),e.scene._renderer.setPBREnabled(!this._hidePBR),e.scene._renderer.setSAOEnabled(!this._hideSAO),e.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!this._hideEdges),this._scaleCanvasResolution?e.scene.canvas.resolutionScale=this._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,n=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",i),this._onCameraMatrix=e.scene.camera.on("matrix",i),this._onSceneTick=e.scene.on("tick",(t=>{n&&(s-=t.deltaTime,(!this._delayBeforeRestore||s<=0)&&(e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),n=!1))}));let a=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{a=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{a=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{a&&i()}))}get hideColorTexture(){return this._hideColorTexture}set hideColorTexture(e){this._hideColorTexture=e}get hidePBR(){return this._hidePBR}set hidePBR(e){this._hidePBR=e}get hideSAO(){return this._hideSAO}set hideSAO(e){this._hideSAO=e}get hideEdges(){return this._hideEdges}set hideEdges(e){this._hideEdges=e}get hideTransparentObjects(){return this._hideTransparentObjects}set hideTransparentObjects(e){this._hideTransparentObjects=!1!==e}get scaleCanvasResolution(){return this._scaleCanvasResolution}set scaleCanvasResolution(e){this._scaleCanvasResolution=e}get scaleCanvasResolutionFactor(){return this._scaleCanvasResolutionFactor}set scaleCanvasResolutionFactor(e){this._scaleCanvasResolutionFactor=e||.6}get delayBeforeRestore(){return this._delayBeforeRestore}set delayBeforeRestore(e){this._delayBeforeRestore=e}get delayBeforeRestoreSeconds(){return this._delayBeforeRestoreSeconds}set delayBeforeRestoreSeconds(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}send(e,t){}destroy(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),super.destroy()}}class Pu{constructor(){}getMetaModel(e,t,s){g.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getGLTF(e,t,s){g.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getGLB(e,t,s){g.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getArrayBuffer(e,t,s,n){!function(e,t,s,n){var i=()=>{};s=s||i,n=n||i;const a=/^data:(.*?)(;base64)?,(.*)$/,r=t.match(a);if(r){const e=!!r[2];var l=r[3];l=window.decodeURIComponent(l),e&&(l=window.atob(l));try{const e=new ArrayBuffer(l.length),t=new Uint8Array(e);for(var o=0;o{s(e)}),(function(e){n(e)}))}}class Ru{constructor(e={}){this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=e.messages,this.locale=e.locale}set messages(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}loadMessages(e={}){for(let t in e)this._messages[t]=e[t];this.messages=this._messages}clearMessages(){this.messages={}}get locales(){return this._locales}set locale(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}get locale(){return this._locale}translate(e,t){const s=this._messages[this._locale];if(!s)return null;const n=Cu(e,s);return n?t?_u(n,t):n:null}translatePlurals(e,t,s){const n=this._messages[this._locale];if(!n)return null;let i=Cu(e,n);return i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one,i?(i=_u(i,[t]),s&&(i=_u(i,s)),i):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];if(n)for(const e in n)if(n.hasOwnProperty(e)){n[e].callback(t)}}on(t,s){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new e),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let n=this._eventSubs[t];n||(n={},this._eventSubs[t]=n);const i=this._eventSubIDMap.addItem();n[i]={callback:s},this._eventSubEvents[i]=t;const a=this._events[t];return void 0!==a&&s(a),i}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const s=this._eventSubs[t];s&&delete s[e],this._eventSubIDMap.removeItem(e)}}}function Cu(e,t){if(t[e])return t[e];const s=e.split(".");let n=t;for(let e=0,t=s.length;n&&e1?1:e}get t(){return this._t}get tangent(){return this.getTangent(this._t)}get length(){var e=this._getLengths();return e[e.length-1]}getTangent(e){var t=1e-4;void 0===e&&(e=this._t);var s=e-t,n=e+t;s<0&&(s=0),n>1&&(n=1);var i=this.getPoint(s),a=this.getPoint(n),r=A.subVec3(a,i,[]);return A.normalizeVec3(r,[])}getPointAt(e){var t=this.getUToTMapping(e);return this.getPoint(t)}getPoints(e){e||(e=5);var t,s=[];for(t=0;t<=e;t++)s.push(this.getPoint(t/e));return s}_getLengths(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,s,n=[],i=this.getPoint(0),a=0;for(n.push(0),s=1;s<=e;s++)t=this.getPoint(s/e),a+=A.lenVec3(A.subVec3(t,i,[])),n.push(a),i=t;return this.cacheArcLengths=n,n}_updateArcLengths(){this.needsUpdate=!0,this._getLengths()}getUToTMapping(e,t){var s,n=this._getLengths(),i=0,a=n.length;s=t||e*n[a-1];for(var r,l=0,o=a-1;l<=o;)if((r=n[i=Math.floor(l+(o-l)/2)]-s)<0)l=i+1;else{if(!(r>0)){o=i;break}o=i-1}if(n[i=o]===s)return i/(a-1);var c=n[i];return(i+(s-c)/(n[i+1]-c))/(a-1)}}class Ou extends Bu{constructor(e,t={}){super(e,t),this.points=t.points,this.t=t.t}set points(e){this._points=e||[]}get points(){return this._points}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=this.points;if(!(t.length<3)){var s=(t.length-1)*e,n=Math.floor(s),i=s-n,a=t[0===n?n:n-1],r=t[n],l=t[n>t.length-2?t.length-1:n+1],o=t[n>t.length-3?t.length-1:n+2],c=A.vec3();return c[0]=A.catmullRomInterpolate(a[0],r[0],l[0],o[0],i),c[1]=A.catmullRomInterpolate(a[1],r[1],l[1],o[1],i),c[2]=A.catmullRomInterpolate(a[2],r[2],l[2],o[2],i),c}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}getJSON(){return{points:points,t:this._t}}}const Su=A.vec3();class Nu extends S{get type(){return"CameraPath"}constructor(e,t={}){super(e,t),this._frames=[],this._eyeCurve=new Ou(this),this._lookCurve=new Ou(this),this._upCurve=new Ou(this),t.frames&&(this.addFrames(t.frames),this.smoothFrameTimes(1))}get frames(){return this._frames}get eyeCurve(){return this._eyeCurve}get lookCurve(){return this._lookCurve}get upCurve(){return this._upCurve}saveFrame(e){const t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}addFrame(e,t,s,n){const i={t:e,eye:t.slice(0),look:s.slice(0),up:n.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}addFrames(e){let t;for(let s=0,n=e.length;s1?1:e,t.eye=this._eyeCurve.getPoint(e,Su),t.look=this._lookCurve.getPoint(e,Su),t.up=this._upCurve.getPoint(e,Su)}sampleFrame(e,t,s,n){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,s),this._upCurve.getPoint(e,n)}smoothFrameTimes(e){if(0===this._frames.length)return;const t=A.vec3();var s=0;this._frames[0].t=0;const n=[];for(let e=1,a=this._frames.length;e=1;e>1&&(e=1);const s=this.easing?Uu._ease(e,0,1,1):e,n=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(A.subVec3(n.eye,n.look,Hu),n.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Mu),n.look=A.subVec3(Mu,Hu,Lu)):this._flyingLook&&(n.look=A.lerpVec3(s,0,1,this._look1,this._look2,Lu),n.up=A.lerpVec3(s,0,1,this._up1,this._up2,Fu)):this._flyingEyeLookUp&&(n.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Mu),n.look=A.lerpVec3(s,0,1,this._look1,this._look2,Lu),n.up=A.lerpVec3(s,0,1,this._up1,this._up2,Fu)),this._projection2){const t="ortho"===this._projection2?Uu._easeOutExpo(e,0,1,1):Uu._easeInCubic(e,0,1,1);n.customProjection.matrix=A.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else n.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return n.ortho.scale=this._orthoScale2,void this.stop();B.scheduleTask(this._update,this)}static _ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}static _easeInCubic(e,t,s,n){return s*(e/=n)*e*e+t}static _easeOutExpo(e,t,s,n){return s*(1-Math.pow(2,-10*e/n))+t}stop(){if(!this._flying)return;this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);const e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}cancel(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}set duration(e){this._duration=e?1e3*e:500,this.stop()}get duration(){return this._duration/1e3}set fit(e){this._fit=!1!==e}get fit(){return this._fit}set fitFOV(e){this._fitFOV=e||45}get fitFOV(){return this._fitFOV}set trail(e){this._trail=!!e}get trail(){return this._trail}destroy(){this.stop(),super.destroy()}}class Gu extends S{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new Uu(this),this._t=0,this.state=Gu.SCRUBBING,this._playingFromT=0,this._playingToT=0,this._playingRate=t.playingRate||1,this._playingDir=1,this._lastTime=null,this.cameraPath=t.cameraPath,this._tick=this.scene.on("tick",this._updateT,this)}_updateT(){const e=this._cameraPath;if(!e)return;let t,s;const n=performance.now(),i=this._lastTime?.001*(n-this._lastTime):0;if(this._lastTime=n,0!==i)switch(this.state){case Gu.SCRUBBING:return;case Gu.PLAYING:if(this._t+=this._playingRate*i,t=this._cameraPath.frames.length,0===t||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=Gu.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case Gu.PLAYING_TO:s=this._t+this._playingRate*i*this._playingDir,(this._playingDir<0&&s<=this._playingToT||this._playingDir>0&&s>=this._playingToT)&&(s=this._playingToT,this.state=Gu.SCRUBBING,this.fire("stopped")),this._t=s,e.loadFrame(this._t)}}_ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}set cameraPath(e){this._cameraPath=e}get cameraPath(){return this._cameraPath}set rate(e){this._playingRate=e}get rate(){return this._playingRate}play(){this._cameraPath&&(this._lastTime=null,this.state=Gu.PLAYING)}playToT(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=Gu.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const s=t.frames[e];s?this.playToT(s.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const s=this._cameraPath;if(!s)return;const n=s.frames[e];n?(this.state=Gu.SCRUBBING,this._cameraFlightAnimation.flyTo(n,t)):this.error("flyToFrame - frame index out of range: "+e)}scrubToT(e){const t=this._cameraPath;if(!t)return;this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=Gu.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=Gu.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=Gu.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}Gu.STOPPED=0,Gu.SCRUBBING=1,Gu.PLAYING=2,Gu.PLAYING_TO=3;const ju=A.vec3(),Vu=A.vec3();A.vec3();const ku=A.vec3([0,-1,0]),Qu=A.vec4([0,0,0,1]);class Wu extends S{constructor(e,t={}){super(e,t),this._src=null,this._image=null,this._pos=A.vec3(),this._origin=A.vec3(),this._rtcPos=A.vec3(),this._dir=A.vec3(),this._size=1,this._imageSize=A.vec2(),this._texture=new ki(this),this._plane=new ui(this,{geometry:new Gt(this,$i({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0}),clippable:t.clippable}),this._grid=new ui(this,{geometry:new Gt(this,Zi({size:1,divisions:10})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:t.clippable}),this._node=new Ri(this,{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[this._plane,this._grid]}),this._gridVisible=!1,this.visible=!0,this.gridVisible=t.gridVisible,this.position=t.position,this.rotation=t.rotation,this.dir=t.dir,this.size=t.size,this.collidable=t.collidable,this.clippable=t.clippable,this.pickable=t.pickable,this.opacity=t.opacity,t.image?this.image=t.image:this.src=t.src}set visible(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}get visible(){return this._plane.visible}set gridVisible(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}get gridVisible(){return this._gridVisible}set image(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}get image(){return this._image}set src(e){if(this._src=e,this._src){this._image=null;const e=new Image;e.onload=()=>{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set position(e){this._pos.set(e||[0,0,0]),W(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}get position(){return this._pos}set rotation(e){this._node.rotation=e}get rotation(){return this._node.rotation}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set dir(e){if(this._dir.set(e||[0,0,-1]),e){const t=this.scene.center,s=[-this._dir[0],-this._dir[1],-this._dir[2]];A.subVec3(t,this.position,ju);const n=-A.dotVec3(s,ju);A.normalizeVec3(s),A.mulVec3Scalar(s,n,Vu),A.vec3PairToQuaternion(ku,e,Qu),this._node.quaternion=Qu}}get dir(){return this._dir}set collidable(e){this._node.collidable=!1!==e}get collidable(){return this._node.collidable}set clippable(e){this._node.clippable=!1!==e}get clippable(){return this._node.clippable}set pickable(e){this._node.pickable=!1!==e}get pickable(){return this._node.pickable}set opacity(e){this._node.opacity=e}get opacity(){return this._node.opacity}destroy(){super.destroy()}_updatePlaneSizeFromImage(){const e=this._size,t=this._imageSize[0],s=this._imageSize[1];if(t>s){const n=s/t;this._node.scale=[e,1,e*n]}else{const n=t/s;this._node.scale=[e*n,1,e]}}}class zu extends Pt{get type(){return"PointLight"}constructor(e,t={}){super(e,t);const s=this;this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const n=this.scene.camera,i=this.scene.canvas;this._onCameraViewMatrix=n.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=n.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new it({type:"point",pos:A.vec3([1,1,1]),color:A.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(s._shadowViewMatrixDirty){s._shadowViewMatrix||(s._shadowViewMatrix=A.identityMat4());const e=s._state.pos,t=n.look,i=n.up;A.lookAtMat4v(e,t,i,s._shadowViewMatrix),s._shadowViewMatrixDirty=!1}return s._shadowViewMatrix},getShadowProjMatrix:()=>{if(s._shadowProjMatrixDirty){s._shadowProjMatrix||(s._shadowProjMatrix=A.identityMat4());const e=s.scene.canvas.canvas;A.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,s._shadowProjMatrix),s._shadowProjMatrixDirty=!1}return s._shadowProjMatrix},getShadowRenderBuf:()=>(s._shadowRenderBuf||(s._shadowRenderBuf=new Ze(s.scene.canvas.canvas,s.scene.canvas.gl,{size:[1024,1024]})),s._shadowRenderBuf)}),this.pos=t.pos,this.color=t.color,this.intensity=t.intensity,this.constantAttenuation=t.constantAttenuation,this.linearAttenuation=t.linearAttenuation,this.quadraticAttenuation=t.quadraticAttenuation,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set pos(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get pos(){return this._state.pos}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set constantAttenuation(e){this._state.attenuation[0]=e||0,this.glRedraw()}get constantAttenuation(){return this._state.attenuation[0]}set linearAttenuation(e){this._state.attenuation[1]=e||0,this.glRedraw()}get linearAttenuation(){return this._state.attenuation[1]}set quadraticAttenuation(e){this._state.attenuation[2]=e||0,this.glRedraw()}get quadraticAttenuation(){return this._state.attenuation[2]}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}function Ku(e){if(!Yu(e.width)||!Yu(e.height)){const t=document.createElement("canvas");t.width=Xu(e.width),t.height=Xu(e.height);t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function Yu(e){return 0==(e&e-1)}function Xu(e){--e;for(let t=1;t<32;t<<=1)e|=e>>t;return e+1}class qu extends S{get type(){return"CubeTexture"}constructor(e,t={}){super(e,t);const s=this.scene.canvas.gl;this._state=new it({texture:new Fi({gl:s,target:s.TEXTURE_CUBE_MAP}),flipY:this._checkFlipY(t.minFilter),encoding:this._checkEncoding(t.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),this._src=t.src,this._images=[],this._loadSrc(t.src),y.memory.textures++}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}_loadSrc(e){const t=this,s=this.scene.canvas.gl;this._images=[];let n=!1,i=0;for(let a=0;a{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set collidable(e){this._mesh.collidable=!1!==e}get collidable(){return this._mesh.collidable}set clippable(e){this._mesh.clippable=!1!==e}get clippable(){return this._mesh.clippable}set pickable(e){this._mesh.pickable=!1!==e}get pickable(){return this._mesh.pickable}set opacity(e){this._mesh.opacity=e}get opacity(){return this._mesh.opacity}_updatePlaneSizeFromImage(){const e=.5*this._size,t=this._imageSize[0],s=this._imageSize[1],n=s/t;this._geometry.positions=t>s?[e,e*n,0,-e,e*n,0,-e,-e*n,0,e,-e*n,0]:[e/n,e,0,-e/n,e,0,-e/n,-e,0,e/n,-e,0]}}class eh{constructor(e){this._eye=A.vec3(),this._look=A.vec3(),this._up=A.vec3(),this._projection={},e&&this.saveCamera(e)}saveCamera(e){const t=e.camera,s=t.project;switch(this._eye.set(t.eye),this._look.set(t.look),this._up.set(t.up),t.projection){case"perspective":this._projection={projection:"perspective",fov:s.fov,fovAxis:s.fovAxis,near:s.near,far:s.far};break;case"ortho":this._projection={projection:"ortho",scale:s.scale,near:s.near,far:s.far};break;case"frustum":this._projection={projection:"frustum",left:s.left,right:s.right,top:s.top,bottom:s.bottom,near:s.near,far:s.far};break;case"custom":this._projection={projection:"custom",matrix:s.matrix.slice()}}}restoreCamera(e,t){const s=e.camera,n=this._projection;function i(){switch(n.type){case"perspective":s.perspective.fov=n.fov,s.perspective.fovAxis=n.fovAxis,s.perspective.near=n.near,s.perspective.far=n.far;break;case"ortho":s.ortho.scale=n.scale,s.ortho.near=n.near,s.ortho.far=n.far;break;case"frustum":s.frustum.left=n.left,s.frustum.right=n.right,s.frustum.top=n.top,s.frustum.bottom=n.bottom,s.frustum.near=n.near,s.frustum.far=n.far;break;case"custom":s.customProjection.matrix=n.matrix}}t?e.viewer.cameraFlight.flyTo({eye:this._eye,look:this._look,up:this._up,orthoScale:n.scale,projection:n.projection},(()=>{i(),t()})):(s.eye=this._eye,s.look=this._look,s.up=this._up,i(),s.projection=n.projection)}}const th=A.vec3();class sh{constructor(e){if(this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsOpacity=[],this.numObjects=0,e){const t=e.metaScene.scene;this.saveObjects(t,e)}}saveObjects(e,t,s){this.numObjects=0,this._mask=s?g.apply(s,{}):null;const n=!s||s.visible,i=!s||s.edges,a=!s||s.xrayed,r=!s||s.highlighted,l=!s||s.selected,o=!s||s.clippable,c=!s||s.pickable,u=!s||s.colorize,h=!s||s.opacity,p=t.metaObjects,A=e.objects;for(let e=0,t=p.length;e1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=A.vec3();return t[0]=A.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=A.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=A.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}}class rh extends Bu{constructor(e,t={}){super(e,t),this._cachedLengths=[],this._dirty=!0,this._curves=[],this._t=0,this._dirtySubs=[],this._destroyedSubs=[],this.curves=t.curves||[],this.t=t.t}addCurve(e){this._curves.push(e),this._dirty=!0}set curves(e){var t,s,n;for(e=e||[],s=0,n=this._curves.length;s1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}get length(){var e=this._getCurveLengths();return e[e.length-1]}getPoint(e){for(var t,s=e*this.length,n=this._getCurveLengths(),i=0;i=s){var a=1-(n[i]-s)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}_getCurveLengths(){if(!this._dirty)return this._cachedLengths;var e,t=[],s=0,n=this._curves.length;for(e=0;e1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=A.vec3();return t[0]=A.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=A.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=A.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}}class oh extends S{constructor(e,t={}){super(e,t),this._skyboxMesh=new ui(this,{geometry:new Gt(this,{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Wt(this,{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new ki(this,{src:t.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:t.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),this.size=t.size,this.active=t.active}set size(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}get size(){return this._size}set active(e){this._skyboxMesh.visible=e}get active(){return this._skyboxMesh.visible}}class ch{transcode(e,t,s={}){}destroy(){}}const uh=A.vec4(),hh=A.vec4(),ph=A.vec3(),Ah=A.vec3(),dh=A.vec3(),fh=A.vec4(),Ih=A.vec4(),yh=A.vec4();class mh{constructor(e){this._scene=e}dollyToCanvasPos(e,t,s){let n=!1;const i=this._scene.camera;if(e){const t=A.subVec3(e,i.eye,ph);n=A.lenVec3(t){this._cameraDirty=!0})),this._onProjMatrix=this._scene.camera.on("projMatrix",(()=>{this._cameraDirty=!0})),this._onTick=this._scene.on("tick",(()=>{this.updatePivotElement(),this.updatePivotSphere()}))}createPivotSphere(){const e=this.getPivotPos(),t=A.vec3();A.decomposeMat4(A.inverseMat4(this._scene.viewer.camera.viewMatrix,A.mat4()),t,A.vec4(),A.vec3());const s=A.distVec3(t,e);let n=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(n/=this._scene.camera.ortho.scale/2),W(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new Ki(this._scene,Ai({radius:n})),this._pivotSphere=new ui(this._scene,{geometry:this._pivotSphereGeometry,material:this._pivotSphereMaterial,pickable:!1,position:this._rtcPos,rtcCenter:this._rtcCenter})}destroyPivotSphere(){this._pivotSphere&&(this._pivotSphere.destroy(),this._pivotSphere=null),this._pivotSphereGeometry&&(this._pivotSphereGeometry.destroy(),this._pivotSphereGeometry=null)}updatePivotElement(){const e=this._scene.camera,t=this._scene.canvas;if(this._pivoting&&this._cameraDirty){A.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,A.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const s=t.boundary,n=s[2],i=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*n/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*i/2);let a=t._lastBoundingClientRect;if(!a||t._canvasSizeChanged){const e=t.canvas;a=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(a.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(a.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(W(this.getPivotPos(),this._rtcCenter,this._rtcPos),A.compareVec3(this._rtcPos,this._pivotSphere.position)||(this.destroyPivotSphere(),this.createPivotSphere()))}setPivotElement(e){this._pivotElement=e}enablePivotSphere(e={}){this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);const t=e.color||[1,0,0];this._pivotSphereMaterial=new Wt(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}disablePivotSphere(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}startPivot(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;const e=this._scene.camera;let t=A.lookAtMat4v(e.eye,e.look,e.worldUp);A.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const s=this.getPivotPos();this._cameraOffset[2]+=A.distVec3(e.eye,s),t=A.inverseMat4(t);const n=A.transformVec3(t,this._cameraOffset),i=A.vec3();if(A.subVec3(e.eye,s,i),A.addVec3(i,n),e.zUp){const e=i[1];i[1]=i[2],i[2]=e}this._radius=A.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=A.normalizeVec3(A.subVec3(e.look,e.eye,vh)),s=A.cross3Vec3(t,e.worldUp,wh);return A.sqLenVec3(s)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,s=Math.abs(A.distVec3(this._scene.center,t.eye)),n=t.project.transposedMatrix,i=n.subarray(8,12),a=n.subarray(12),r=[0,0,-1,1],l=A.dotVec4(r,i)/A.dotVec4(r,a),o=Eh;t.project.unproject(e,l,Th,bh,o);const c=A.normalizeVec3(A.subVec3(o,t.eye,vh)),u=A.addVec3(t.eye,A.mulVec3Scalar(c,s,wh),gh);this.setPivotPos(u)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const s=this._scene.camera;var n=-e;const i=-t;1===s.worldUp[2]&&(n=-n),this._azimuth+=.01*-n,this._polar+=.01*i,this._polar=A.clamp(this._polar,.001,Math.PI-.001);const a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===s.worldUp[2]){const e=a[1];a[1]=a[2],a[2]=e}const r=A.lenVec3(A.subVec3(s.look,s.eye,A.vec3())),l=this.getPivotPos();A.addVec3(a,l);let o=A.lookAtMat4v(a,l,s.worldUp);o=A.inverseMat4(o);const c=A.transformVec3(o,this._cameraOffset);o[12]-=c[0],o[13]-=c[1],o[14]-=c[2];const u=[o[8],o[9],o[10]];s.eye=[o[12],o[13],o[14]],A.subVec3(s.eye,A.mulVec3Scalar(u,r),s.look),s.up=[o[4],o[5],o[6]],this.showPivot()}showPivot(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}hidePivot(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}endPivot(){this._pivoting=!1}destroy(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}class Ph{constructor(e,t){this._scene=e.scene,this._cameraControl=e,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=t,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=A.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}update(){if(!this._configs.pointerEnabled)return;if(!this.schedulePickEntity&&!this.schedulePickSurface)return;const e=`${~~this.pickCursorPos[0]}-${~~this.pickCursorPos[1]}-${this.scheduleSnapOrPick}-${this.schedulePickSurface}-${this.schedulePickEntity}`;if(this._lastHash===e)return;this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;const t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){const e=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});e&&(e.snappedToEdge||e.snappedToVertex)?(this.snapPickResult=e,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){const e=this.pickResult.canvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){const e=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}fireEvents(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){const e=new Be;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){const e=this.pickResult.entity.id;this._lastPickedEntityId!==e&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=e)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}const Rh=A.vec2();class Ch{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController;let r,l,o,c=0,u=0,h=0,p=0,d=!1;const f=A.vec3();let I=!0;const y=this._scene.canvas.canvas,m=[];function v(e=!0){y.style.cursor="move",c=n.pointerCanvasPos[0],u=n.pointerCanvasPos[1],h=n.pointerCanvasPos[0],p=n.pointerCanvasPos[1],e&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(d=!0,f.set(a.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:m[e.input.KEY_SHIFT]||s.planView?(r=!0,v()):(r=!0,v(!1));break;case 2:l=!0,v();break;case 3:o=!0,s.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!r&&!l&&!o)return;const t=e.canvas.boundary,a=t[2],h=t[3],p=n.pointerCanvasPos[0],I=n.pointerCanvasPos[1];if(m[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&l||s.panRightClick&&o){const t=p-c,s=I-u,n=e.camera;if("perspective"===n.projection){const a=Math.abs(d?A.lenVec3(A.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=1.5*t*a/h,i.panDeltaY+=1.5*s*a/h}else i.panDeltaX+=.5*n.ortho.scale*(t/h),i.panDeltaY+=.5*n.ortho.scale*(s/h)}else!r||l||o||s.planView||(s.firstPerson?(i.rotateDeltaY-=(p-c)/a*s.dragRotationRate/2,i.rotateDeltaX+=(I-u)/h*(s.dragRotationRate/4)):(i.rotateDeltaY-=(p-c)/a*(1.5*s.dragRotationRate),i.rotateDeltaX+=(I-u)/h*(1.5*s.dragRotationRate)));c=p,u=I}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&n.mouseover&&(I=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:r=!1,l=!1,o=!1}}),y.addEventListener("mouseup",this._mouseUpHandler=e=>{if(s.active&&s.pointerEnabled){if(3===e.which){!function(e,t){if(e){let s=e.target,n=0,i=0,a=0,r=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,a+=s.scrollLeft,r+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+a-n,t[1]=e.pageY+r-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Rh);const s=Rh[0],n=Rh[1];Math.abs(s-h)<3&&Math.abs(n-p)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Rh,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const w=1/60;let g=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var a=null!==g?t-g:0;g=t,a>.05&&(a=.05),a{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const r=i._isKeyDownForAction(i.AXIS_VIEW_RIGHT),l=i._isKeyDownForAction(i.AXIS_VIEW_BACK),o=i._isKeyDownForAction(i.AXIS_VIEW_LEFT),c=i._isKeyDownForAction(i.AXIS_VIEW_FRONT),u=i._isKeyDownForAction(i.AXIS_VIEW_TOP),h=i._isKeyDownForAction(i.AXIS_VIEW_BOTTOM);if(!(r||l||o||c||u||h))return;const p=e.aabb,d=A.getAABB3Diag(p);A.getAABB3Center(p,_h);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*A.DEGTORAD)),I=1.1*d;xh.orthoScale=I,r?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldRight,f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):l?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldForward,f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):o?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldRight,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):c?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldForward,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):u?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldUp,f,Bh),Nh)),xh.look.set(_h),xh.up.set(A.normalizeVec3(A.mulVec3Scalar(a.worldForward,1,Oh),Sh))):h&&(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldUp,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(A.normalizeVec3(A.mulVec3Scalar(a.worldForward,-1,Oh)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(_h),t.cameraFlight.duration>0?t.cameraFlight.flyTo(xh,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(xh),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Mh{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let o=!1,c=!1;const u=this._scene.canvas.canvas,h=s=>{let n;s&&s.worldPos&&(n=s.worldPos);const i=s&&s.entity?s.entity.aabb:e.aabb;if(n){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})},p=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(o||c)return;const i=l.hasSubs("hover"),r=l.hasSubs("hoverEnter"),u=l.hasSubs("hoverOut"),h=l.hasSubs("hoverOff"),p=l.hasSubs("hoverSurface"),A=l.hasSubs("hoverSnapOrSurface");if(i||r||u||h||p||A)if(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=p,a.scheduleSnapOrPick=A,a.update(),a.pickResult){if(a.pickResult.entity){const t=a.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),l.fire("hoverEnter",a.pickResult,!0),this._lastPickedEntityId=t)}l.fire("hover",a.pickResult,!0),(a.pickResult.worldPos||a.pickResult.snappedWorldPos)&&l.fire("hoverSurface",a.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),l.fire("hoverOff",{canvasPos:a.pickCursorPos},!0)});u.addEventListener("mousemove",p),u.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(o=!0),3===t.which&&(c=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(n.mouseDownClientX=t.clientX,n.mouseDownClientY=t.clientY,n.mouseDownCursorX=n.pointerCanvasPos[0],n.mouseDownCursorY=n.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),1===t.which))){const t=a.pickResult;t&&t.worldPos?(r.setPivotPos(t.worldPos),r.startPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),r.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(o=!1),3===e.which&&(c=!1),r.getPivoting()&&r.endPivot()}),u.addEventListener("mouseup",this._canvasMouseUpHandler=i=>{if(!s.active||!s.pointerEnabled)return;if(!(1===i.which))return;if(r.hidePivot(),Math.abs(i.clientX-n.mouseDownClientX)>3||Math.abs(i.clientY-n.mouseDownClientY)>3)return;const o=l.hasSubs("picked"),c=l.hasSubs("pickedNothing"),u=l.hasSubs("pickedSurface"),p=l.hasSubs("doublePicked"),d=l.hasSubs("doublePickedSurface"),f=l.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||p||d||f))return(o||c||u)&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=u,a.update(),a.pickResult?(l.fire("picked",a.pickResult,!0),a.pickedSurface&&l.fire("pickedSurface",a.pickResult,!0)):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo,a.schedulePickSurface=u,a.update();const e=a.pickResult,i=a.pickedSurface;this._timeout=setTimeout((()=>{e?(l.fire("picked",e,!0),i&&(l.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo||p||d,a.schedulePickSurface=a.schedulePickEntity&&d,a.update(),a.pickResult){if(l.fire("doublePicked",a.pickResult,!0),a.pickedSurface&&l.fire("doublePickedSurface",a.pickResult,!0),s.doublePickFlyTo&&(h(a.pickResult),!s.firstPerson&&s.followPointer)){const e=a.pickResult.entity.aabb,s=A.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(l.fire("doublePickedNothing",{canvasPos:n.pointerCanvasPos},!0),s.doublePickFlyTo&&(h(),!s.firstPerson&&s.followPointer)){const s=e.aabb,n=A.getAABB3Center(s);t.pivotController.setPivotPos(n),t.pivotController.startPivot()&&t.pivotController.showPivot()}this._clicks=0}},!1)}reset(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}destroy(){const e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}class Fh{constructor(e,t,s,n,i){this._scene=e;const a=e.input,r=[],l=e.canvas.canvas;let o=!0;this._onSceneMouseMove=a.on("mousemove",(()=>{o=!0})),this._onSceneKeyDown=a.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&n.mouseover&&(r[t]=!0,t===a.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=a.on("keyup",(n=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(r[n]=!1,n===a.KEY_SHIFT&&(l.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(l=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const c=t.cameraControl,u=l.deltaTime/1e3;if(!s.planView){const e=c._isKeyDownForAction(c.ROTATE_Y_POS,r),n=c._isKeyDownForAction(c.ROTATE_Y_NEG,r),a=c._isKeyDownForAction(c.ROTATE_X_POS,r),l=c._isKeyDownForAction(c.ROTATE_X_NEG,r),o=u*s.keyboardRotationRate;(e||n||a||l)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?i.rotateDeltaY+=o:n&&(i.rotateDeltaY-=o),a?i.rotateDeltaX+=o:l&&(i.rotateDeltaX-=o),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!r[a.KEY_CTRL]&&!r[a.KEY_ALT]){const e=c._isKeyDownForAction(c.DOLLY_BACKWARDS,r),a=c._isKeyDownForAction(c.DOLLY_FORWARDS,r);if(e||a){const r=u*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),a?i.dollyDelta-=r:e&&(i.dollyDelta+=r),o&&(n.followPointerDirty=!0,o=!1)}}const h=c._isKeyDownForAction(c.PAN_FORWARDS,r),p=c._isKeyDownForAction(c.PAN_BACKWARDS,r),A=c._isKeyDownForAction(c.PAN_LEFT,r),d=c._isKeyDownForAction(c.PAN_RIGHT,r),f=c._isKeyDownForAction(c.PAN_UP,r),I=c._isKeyDownForAction(c.PAN_DOWN,r),y=(r[a.KEY_ALT]?.3:1)*u*s.keyboardPanRate;(h||p||A||d||f||I)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),I?i.panDeltaY+=y:f&&(i.panDeltaY+=-y),d?i.panDeltaX+=-y:A&&(i.panDeltaX+=y),p?i.panDeltaZ+=y:h&&(i.panDeltaZ+=-y))}))}reset(){}destroy(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}const Hh=A.vec3();class Uh{constructor(e,t,s,n,i){this._scene=e;const a=e.camera,r=t.pickController,l=t.pivotController,o=t.panController;let c=1,u=1,h=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(i.dollyDelta)<.001&&(i.dollyDelta=0),Math.abs(i.rotateDeltaX)<.001&&(i.rotateDeltaX=0),Math.abs(i.rotateDeltaY)<.001&&(i.rotateDeltaY=0),0===i.rotateDeltaX&&0===i.rotateDeltaY||(i.dollyDelta=0),s.followPointer&&--c<=0&&(c=1,0!==i.dollyDelta)){if(0===i.rotateDeltaY&&0===i.rotateDeltaX&&s.followPointer&&n.followPointerDirty&&(r.pickCursorPos=n.pointerCanvasPos,r.schedulePickSurface=!0,r.update(),r.pickResult&&r.pickResult.worldPos?h=r.pickResult.worldPos:(u=1,h=null),n.followPointerDirty=!1),h){const t=Math.abs(A.lenVec3(A.subVec3(h,e.camera.eye,Hh)));u=t/s.dollyProximityThreshold}u{n.mouseover=!0}),a.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{n.mouseover=!1,a.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{jh(e,a,n.pointerCanvasPos)}),a.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(jh(e,a,n.pointerCanvasPos),n.mouseover=!0)}),a.addEventListener("mouseup",this._mouseUpHandler=e=>{s.active&&s.pointerEnabled})}reset(){}destroy(){const e=this._scene.canvas.canvas;document.removeEventListener("mousemove",this._mouseMoveHandler),e.removeEventListener("mouseenter",this._mouseEnterHandler),e.removeEventListener("mouseleave",this._mouseLeaveHandler),e.removeEventListener("mousedown",this._mouseDownHandler),e.removeEventListener("mouseup",this._mouseUpHandler)}}function jh(e,t,s){if(e){const{x:n,y:i}=t.getBoundingClientRect();s[0]=e.clientX-n,s[1]=e.clientY-i}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const Vh=function(e,t){if(e){let s=e.target,n=0,i=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class kh{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=A.vec2(),o=A.vec2(),c=A.vec2(),u=A.vec2(),h=[],p=this._scene.canvas.canvas;let d=0,f=!1;this._onTick=e.on("tick",(()=>{f=!1})),p.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!s.active||!s.pointerEnabled)return;t.preventDefault();const i=t.touches,o=t.changedTouches;for(n.touchStartTime=Date.now(),1===i.length&&1===o.length&&(Vh(i[0],l),s.followPointer&&(a.pickCursorPos=l,a.schedulePickSurface=!0,a.update(),s.planView||(a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(r.setPivotPos(a.pickResult.worldPos),!s.firstPerson&&r.startPivot()&&r.showPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),!s.firstPerson&&r.startPivot()&&r.showPivot()))));h.length{r.getPivoting()&&r.endPivot()}),p.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const r=e.canvas.boundary,l=r[2],p=r[3],I=t.touches;if(t.touches.length===d){if(1===d){Vh(I[0],o),A.subVec2(o,h[0],u);const t=u[0],a=u[1];if(null!==n.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(a)>s.longTapRadius)&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),s.planView){const n=e.camera;if("perspective"===n.projection){const r=Math.abs(e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=t*r/p*s.touchPanRate,i.panDeltaY+=a*r/p*s.touchPanRate}else i.panDeltaX+=.5*n.ortho.scale*(t/p)*s.touchPanRate,i.panDeltaY+=.5*n.ortho.scale*(a/p)*s.touchPanRate}else i.rotateDeltaY-=t/l*(1*s.dragRotationRate),i.rotateDeltaX+=a/p*(1.5*s.dragRotationRate)}else if(2===d){const t=I[0],r=I[1];Vh(t,o),Vh(r,c);const l=A.geometricMeanVec2(h[0],h[1]),u=A.geometricMeanVec2(o,c),d=A.vec2();A.subVec2(l,u,d);const f=d[0],y=d[1],m=e.camera,v=A.distVec2([t.pageX,t.pageY],[r.pageX,r.pageY]),w=(A.distVec2(h[0],h[1])-v)*s.touchDollyRate;if(i.dollyDelta=w,Math.abs(w)<1)if("perspective"===m.projection){const t=a.pickResult?a.pickResult.worldPos:e.center,n=Math.abs(A.lenVec3(A.subVec3(t,e.camera.eye,[])))*Math.tan(m.perspective.fov/2*Math.PI/180);i.panDeltaX-=f*n/p*s.touchPanRate,i.panDeltaY-=y*n/p*s.touchPanRate}else i.panDeltaX-=.5*m.ortho.scale*(f/p)*s.touchPanRate,i.panDeltaY-=.5*m.ortho.scale*(y/p)*s.touchPanRate;n.pointerCanvasPos=u}for(let e=0;e{let n;s&&s.worldPos&&(n=s.worldPos);const i=s?s.entity.aabb:e.aabb;if(n){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})};p.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null);const i=e.touches,a=e.changedTouches;if(l=Date.now(),1===i.length&&1===a.length){u=l,Qh(i[0],c);const a=c[0],r=c[1],o=i[0].pageX,h=i[0].pageY;n.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(o),Math.round(h)],canvasPos:[Math.round(a),Math.round(r)],event:e},!0),n.longTouchTimeout=null}),s.longTapTimeout)}else u=-1;for(;o.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),i=e.touches,l=e.changedTouches,p=r.hasSubs("pickedSurface");null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),0===i.length&&1===l.length&&u>-1&&t-u<150&&(h>-1&&u-h<325?(Qh(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=p,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("doublePicked",a.pickResult),a.pickedSurface&&r.fire("doublePickedSurface",a.pickResult),s.doublePickFlyTo&&d(a.pickResult)):(r.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),h=-1):A.distVec2(o[0],c)<4&&(Qh(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=p,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("picked",a.pickResult),a.pickedSurface&&r.fire("pickedSurface",a.pickResult)):r.fire("pickedNothing"),h=t),u=-1),o.length=i.length;for(let e=0,t=i.length;e{e.preventDefault()},this._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},this._states={pointerCanvasPos:A.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:A.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const s=this.scene;this._controllers={cameraControl:this,pickController:new Ph(this,this._configs),pivotController:new Dh(s,this._configs),panController:new mh(s),cameraFlight:new Uu(this,{duration:.5})},this._handlers=[new Gh(this.scene,this._controllers,this._configs,this._states,this._updates),new kh(this.scene,this._controllers,this._configs,this._states,this._updates),new Ch(this.scene,this._controllers,this._configs,this._states,this._updates),new Lh(this.scene,this._controllers,this._configs,this._states,this._updates),new Mh(this.scene,this._controllers,this._configs,this._states,this._updates),new Wh(this.scene,this._controllers,this._configs,this._states,this._updates),new Fh(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Uh(this.scene,this._controllers,this._configs,this._states,this._updates),this.navMode=t.navMode,t.planView&&(this.planView=t.planView),this.constrainVertical=t.constrainVertical,t.keyboardLayout?this.keyboardLayout=t.keyboardLayout:this.keyMap=t.keyMap,this.doublePickFlyTo=t.doublePickFlyTo,this.panRightClick=t.panRightClick,this.active=t.active,this.followPointer=t.followPointer,this.rotationInertia=t.rotationInertia,this.keyboardPanRate=t.keyboardPanRate,this.touchPanRate=t.touchPanRate,this.keyboardRotationRate=t.keyboardRotationRate,this.dragRotationRate=t.dragRotationRate,this.touchDollyRate=t.touchDollyRate,this.dollyInertia=t.dollyInertia,this.dollyProximityThreshold=t.dollyProximityThreshold,this.dollyMinSpeed=t.dollyMinSpeed,this.panInertia=t.panInertia,this.pointerEnabled=!0,this.keyboardDollyRate=t.keyboardDollyRate,this.mouseWheelDollyRate=t.mouseWheelDollyRate}set keyMap(e){if(e=e||"qwerty",g.isString(e)){const t=this.scene.input,s={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":s[this.PAN_LEFT]=[t.KEY_A],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_Z],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":s[this.PAN_LEFT]=[t.KEY_Q],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_W],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=s}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const s=this._keyMap[e];if(!s)return!1;t||(t=this.scene.input.keyDown);for(let e=0,n=s.length;e0?Zh(t):null,r=s&&s.length>0?Zh(s):null,l=e=>{if(!e)return;var t=!0;(r&&r[e.type]||a&&!a[e.type])&&(t=!1),t&&n.push(e.id);const s=e.children;if(s)for(var i=0,o=s.length;i>t;s.sort(Io);const n=new Int32Array(e.length);for(let t=0,i=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}yo=new Int32Array(e),t.sort(mo);const s=new Int32Array(e.length);for(let n=0,i=t.length;nt){let s=e;e=t,t=s}function s(s,n){return s!==e?e-s:n!==t?t-n:0}let n=0,i=(a.length>>1)-1;for(;n<=i;){const e=i+n>>1,t=s(a[2*e],a[2*e+1]);if(t>0)n=e+1;else{if(!(t<0))return e;i=e-1}}return-n-1}const l=new Int32Array(a.length/2);l.fill(0);const o=n.length/3;if(o>8*(1<p.maxNumPositions&&(p=h()),p.bucketNumber>8)return[e];let d;-1===c[o]&&(c[o]=p.numPositions++,p.positionsCompressed.push(n[3*o]),p.positionsCompressed.push(n[3*o+1]),p.positionsCompressed.push(n[3*o+2])),-1===c[u]&&(c[u]=p.numPositions++,p.positionsCompressed.push(n[3*u]),p.positionsCompressed.push(n[3*u+1]),p.positionsCompressed.push(n[3*u+2])),-1===c[A]&&(c[A]=p.numPositions++,p.positionsCompressed.push(n[3*A]),p.positionsCompressed.push(n[3*A+1]),p.positionsCompressed.push(n[3*A+2])),p.indices.push(c[o]),p.indices.push(c[u]),p.indices.push(c[A]),(d=r(o,u))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(o,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]])),(d=r(u,A))>=0&&0===l[d]&&(l[d]=1,p.edgeIndices.push(c[a[2*d]]),p.edgeIndices.push(c[a[2*d+1]]))}const A=t/8*2,d=t/8,f=2*n.length+(i.length+a.length)*A;let I=0,y=-n.length/3;return u.forEach((e=>{I+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),I>f?[e]:(s&&function(e,t){const s={},n={};let i=0;e.forEach((e=>{const t=e.indices,a=e.edgeIndices,r=e.positionsCompressed;for(let e=0,n=t.length;e0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uLightAmbient=n.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const i=s.lights;let a;for(let e=0,t=i.length;e0;let i;const a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(let e=0,t=s.lights.length;e0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),this._withSAO&&(n.push("uniform sampler2D uOcclusionTexture;"),n.push("uniform vec4 uSAOParams;"),n.push("const float packUpscale = 256. / 255.;"),n.push("const float unpackDownScale = 255. / 256.;"),n.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),n.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),n.push("float unpackRGBToFloat( const in vec4 v ) {"),n.push(" return dot( v, unPackFactors );"),n.push("}")),s){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):n.push(" outColor = vColor;"),n.push("}"),n}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Po=new Float32Array([1,1,1]),Ro=A.vec3(),Co=A.vec3(),_o=A.vec3();A.vec3();const Bo=A.mat4();class Oo{constructor(e,t){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a,d=i.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=Ro;if(c){const t=Co;A.transformPoint3(h,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Bo),I=_o,I[0]=i.eye[0]-e[0],I[1]=i.eye[1]-e[1],I[2]=i.eye[2]-e[2]}else f=d,I=i.eye;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s===oa.SILHOUETTE_XRAYED){const e=n.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.SILHOUETTE_HIGHLIGHTED){const e=n.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.SILHOUETTE_SELECTED){const e=n.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,Po);if(n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=n._sectionPlanesState.getNumAllocatedSectionPlanes(),m=n._sectionPlanesState.sectionPlanes.length;if(y>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture silhouette vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.y) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = color;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const So=new Float32Array([0,0,0,1]),No=A.vec3(),xo=A.vec3();A.vec3();const Lo=A.mat4();class Mo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=No;if(I){const t=A.transformPoint3(h,c,xo);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Lo)}else f=d;if(r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s===oa.EDGES_XRAYED){const e=i.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.EDGES_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===oa.EDGES_SELECTED){const e=i.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;r.uniform4f(this._uColor,t[0],t[1],t[2],s)}else r.uniform4fv(this._uColor,So);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uColor=s.getLocation("color"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uWorldMatrix=s.getLocation("worldMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vColor = vec4(color.r, color.g, color.b, color.a);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Fo=A.vec3(),Ho=A.vec3();A.vec3();const Uo=A.mat4();class Go{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=a.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=Fo;if(I){const t=A.transformPoint3(h,c,Ho);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,Uo)}else f=d;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(r.LINES,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(r.LINES,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(r.LINES,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled,s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uObjectPerObjectOffsets;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;")),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vColor;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.z) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push("vec4 rgb = vec4(color.rgba);"),s.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureEdgesColorRenderer"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const jo=A.vec3(),Vo=A.vec3(),ko=A.vec3(),Qo=A.mat4();class Wo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n;let d,f;o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=jo;if(I){const t=A.transformPoint3(h,c,Vo);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(a.viewMatrix,e,Qo),f=ko,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=a.viewMatrix,f=a.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(a.project.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,e)}const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry picking vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("smooth out vec4 vWorldPosition;"),s.push("flat out uvec4 vFlags2;")),s.push("out vec4 vPickColor;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uvec4 vFlags2;");for(var n=0;n 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outPickColor = vPickColor; "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zo=A.vec3(),Ko=A.vec3(),Yo=A.vec3();A.vec3();const Xo=A.mat4();class qo{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=e.pickViewMatrix||a.viewMatrix;let f,I;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const t=zo;if(c){const e=Ko;A.transformPoint3(h,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],f=Q(d,t,Xo),I=Yo,I[0]=a.eye[0]-t[0],I[1]=a.eye[1]-t[1],I[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,I=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniform1f(this._uPickZNear,e.pickZNear),r.uniform1f(this._uPickZFar,e.pickZFar),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform bool pickInvisible;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = remapClipPos(clipPos);"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(var n=0;n 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outPackedDepth = packDepth(zNormalizedDepth); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Jo=A.vec3(),Zo=A.vec3(),$o=A.vec3(),ec=A.vec3();A.vec3();const tc=A.mat4();class sc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=Jo;let y,m;I[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,I[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,I[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(I[0]),e.snapPickCoordinateScale[1]=A.safeInv(I[1]),e.snapPickCoordinateScale[2]=A.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=Zo;if(v){const e=A.transformPoint3(h,c,$o);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=Q(f,t,tc),m=ec,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this.uVectorA,e.snapVectorA),r.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),r.drawArrays(T,0,l.numEdgeIndices8Bits)),l.numEdgeIndices16Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),r.drawArrays(T,0,l.numEdgeIndices16Bits)),l.numEdgeIndices32Bits>0&&(o.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),r.drawArrays(T,0,l.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Batched geometry edges drawing vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),s.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uSnapVectorA;"),s.push("uniform vec2 uSnapInvVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),s.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("out vec4 vViewPosition;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int edgeIndex = gl_VertexID / 2;"),s.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),s.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),s.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),s.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2.r;")),s.push("vViewPosition = viewPosition;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vViewPosition = clipPos;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push("gl_PointSize = 1.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture pick depth fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const nc=A.vec3(),ic=A.vec3(),ac=A.vec3(),rc=A.vec3();A.vec3();const lc=A.mat4();class oc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=t.aabb,f=e.pickViewMatrix||a.viewMatrix,I=nc;let y,m;I[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,I[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,I[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(I[0]),e.snapPickCoordinateScale[1]=A.safeInv(I[1]),e.snapPickCoordinateScale[2]=A.safeInv(I[2]),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==c[0]||0!==c[1]||0!==c[2],w=0!==u[0]||0!==u[1]||0!==u[2];if(v||w){const t=ic;if(v){const e=ac;A.transformPoint3(h,c,e),t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=u[0],t[1]+=u[1],t[2]+=u[2],y=Q(f,t,lc),m=rc,m[0]=a.eye[0]-t[0],m[1]=a.eye[1]-t[1],m[2]=a.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,m=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;r.uniform3fv(this._uCameraEyeRtc,m),r.uniform2fv(this._uVectorA,e.snapVectorA),r.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),r.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),r.uniform3fv(this._uCoordinateScaler,I),r.uniform1i(this._uRenderPass,s),r.uniform1i(this._uPickInvisible,e.pickInvisible),r.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,y),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const g=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(g>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("uniform vec2 uVectorAB;"),s.push("uniform vec2 uInverseVectorAB;"),s.push("vec3 positions[3];"),s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("vec2 remapClipPos(vec2 clipPos) {"),s.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),s.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),s.push(" return vec2(x, y);"),s.push("}"),s.push("flat out vec4 vPickColor;"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("out highp vec3 relativeToOriginPosition;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("{"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" } else {"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" viewNormal = -viewNormal;"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("relativeToOriginPosition = worldPosition.xyz;"),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),s.push("vec4 clipPos = projMatrix * viewPosition;"),s.push("float tmp = clipPos.w;"),s.push("clipPos.xyzw /= tmp;"),s.push("clipPos.xy = remapClipPos(clipPos.xy);"),s.push("clipPos.xyzw *= tmp;"),s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"),s.push("uniform int uLayerNumber;"),s.push("uniform vec3 uCoordinateScaler;"),s.push("in vec4 vWorldPosition;"),s.push("flat in vec4 vPickColor;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return s.push(" float dx = dFdx(vFragDepth);"),s.push(" float dy = dFdy(vFragDepth);"),s.push(" float diff = sqrt(dx*dx+dy*dy);"),s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),s.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),s.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(`outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const cc=A.vec3(),uc=A.vec3(),hc=A.vec3();A.vec3();const pc=A.mat4();class Ac{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=n,d=e.pickViewMatrix||a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,I;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),c||0!==u[0]||0!==u[1]||0!==u[2]){const e=cc;if(c){const t=uc;A.transformPoint3(h,c,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],f=Q(d,e,pc),I=hc,I[0]=a.eye[0]-e[0],I[1]=a.eye[1]-e[1],I[2]=a.eye[2]-e[2]}else f=d,I=a.eye;r.uniform3fv(this._uCameraEyeRtc,I),r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,f),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*m,a=n.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uWorldMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("if (solid != 1u) {"),s.push(" if (isPerspectiveMatrix(projMatrix)) {"),s.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" } else {"),s.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push(" if (viewNormal.z < 0.0) {"),s.push(" position = positions[2 - (gl_VertexID % 3)];"),s.push(" }"),s.push(" }"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTextureColorRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const dc=A.vec3(),fc=A.vec3(),Ic=A.vec3();A.vec3();const yc=A.mat4();class mc{constructor(e){this._scene=e,this._allocate(),this._hash=this._getHash()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=dc;if(I){const t=A.transformPoint3(h,c,fc);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(i.viewMatrix,e,yc),f=Ic,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPositionsDecodeMatrix=s.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// Triangles dataTexture draw vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out highp vec2 vHighPrecisionZW;"),t&&(s.push("out vec4 vWorldPosition;"),s.push("flat out uint vFlags2;")),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(s.push("vWorldPosition = worldPosition;"),s.push("vFlags2 = flags2.r;")),s.push("gl_Position = clipPos;"),s.push("vHighPrecisionZW = gl_Position.zw;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles dataTexture draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in highp vec2 vHighPrecisionZW;"),s.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vc=A.vec3(),wc=A.vec3(),gc=A.vec3();A.vec3();const Ec=A.mat4();class Tc{constructor(e){this._scene=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(e,t,s){const n=t.model,i=n.scene,a=i.camera,r=i.canvas.gl,l=t._state,o=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:h}=n,p=a.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const I=0!==o[0]||0!==o[1]||0!==o[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(I||y){const e=vc;if(I){const t=wc;A.transformPoint3(u,o,t),e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=c[0],e[1]+=c[1],e[2]+=c[2],d=Q(p,e,Ec),f=gc,f[0]=a.eye[0]-e[0],f[1]=a.eye[1]-e[1],f[2]=a.eye[2]-e[2]}else d=p,f=a.eye;r.uniform1i(this._uRenderPass,s),r.uniformMatrix4fv(this._uWorldMatrix,!1,h),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),r.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),r.uniformMatrix4fv(this._uWorldNormalMatrix,!1,n.worldNormalMatrix);const m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),v=i._sectionPlanesState.sectionPlanes.length;if(m>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,a=n.renderFlags;for(let t=0;t0,s=[];return s.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("uniform int renderPass;"),s.push("attribute vec3 position;"),e.entityOffsetsEnabled&&s.push("attribute vec3 offset;"),s.push("attribute vec3 normal;"),s.push("attribute vec4 color;"),s.push("attribute vec4 flags;"),s.push("attribute vec4 flags2;"),s.push("uniform mat4 worldMatrix;"),s.push("uniform mat4 worldNormalMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform mat4 viewNormalMatrix;"),s.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("varying float isPerspective;")),s.push("vec3 octDecode(vec2 oct) {"),s.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),s.push(" if (v.z < 0.0) {"),s.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),s.push(" }"),s.push(" return normalize(v);"),s.push("}"),t&&(s.push("out vec4 vWorldPosition;"),s.push("out vec4 vFlags2;")),s.push("out vec3 vViewNormal;"),s.push("void main(void) {"),s.push("if (int(flags.x) != renderPass) {"),s.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),s.push(" } else {"),s.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition; "),s.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),s.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(s.push(" vWorldPosition = worldPosition;"),s.push(" vFlags2 = flags2;")),s.push(" vViewNormal = viewNormal;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth?s.push("vFragDepth = 1.0 + clipPos.w;"):(s.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),s.push("clipPos.z *= clipPos.w;")),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("gl_Position = clipPos;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push("#extension GL_EXT_frag_depth : enable"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),t){s.push("in vec4 vWorldPosition;"),s.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var n=0;n 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&s.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bc=A.vec3(),Dc=A.vec3(),Pc=A.vec3();A.vec3(),A.vec4();const Rc=A.mat4();class Cc{constructor(e,t){this._scene=e,this._withSAO=t,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,s){const n=this._scene,i=n.camera,a=t.model,r=n.canvas.gl,l=t._state,o=l.textureState,c=t._state.origin,{position:u,rotationMatrix:h,rotationMatrixConjugate:p}=a;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,l)),o.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const I=0!==c[0]||0!==c[1]||0!==c[2],y=0!==u[0]||0!==u[1]||0!==u[2];if(I||y){const e=bc;if(I){const t=A.transformPoint3(h,c,Dc);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=u[0],e[1]+=u[1],e[2]+=u[2],d=Q(i.viewMatrix,e,Rc),f=Pc,f[0]=i.eye[0]-e[0],f[1]=i.eye[1]-e[1],f[2]=i.eye[2]-e[2]}else d=i.viewMatrix,f=i.eye;if(r.uniform2fv(this._uPickClipPos,e.pickClipPos),r.uniform2f(this._uDrawingBufferSize,r.drawingBufferWidth,r.drawingBufferHeight),r.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),r.uniformMatrix4fv(this._uViewMatrix,!1,d),r.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),r.uniform3fv(this._uCameraEyeRtc,f),r.uniform1i(this._uRenderPass,s),n.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,t)}const m=n._sectionPlanesState.getNumAllocatedSectionPlanes(),v=n._sectionPlanesState.sectionPlanes.length;if(m>0){const e=n._sectionPlanesState.sectionPlanes,s=t.layerIndex*v,i=a.renderFlags;for(let t=0;t0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),r.drawArrays(r.TRIANGLES,0,l.numIndices8Bits)),l.numIndices16Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),r.drawArrays(r.TRIANGLES,0,l.numIndices16Bits)),l.numIndices32Bits>0&&(o.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),r.drawArrays(r.TRIANGLES,0,l.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uPickInvisible=s.getLocation("pickInvisible"),this._uPickClipPos=s.getLocation("pickClipPos"),this._uDrawingBufferSize=s.getLocation("drawingBufferSize"),this._uSceneModelMatrix=s.getLocation("sceneModelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// trianglesDatatextureNormalsRenderer vertex shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("precision highp usampler2D;"),s.push("precision highp isampler2D;"),s.push("precision highp sampler2D;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("precision mediump usampler2D;"),s.push("precision mediump isampler2D;"),s.push("precision mediump sampler2D;"),s.push("#endif"),s.push("uniform int renderPass;"),e.entityOffsetsEnabled&&s.push("in vec3 offset;"),s.push("uniform mat4 sceneModelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),s.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),s.push("uniform highp sampler2D uTexturePerObjectMatrix;"),s.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),s.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),s.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),s.push("uniform vec3 uCameraEyeRtc;"),s.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("out float isPerspective;")),s.push("uniform vec2 pickClipPos;"),s.push("uniform vec2 drawingBufferSize;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out vec4 vWorldPosition;"),t&&s.push("flat out uint vFlags2;"),s.push("void main(void) {"),s.push("int polygonIndex = gl_VertexID / 3;"),s.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),s.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),s.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),s.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),s.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push("if (int(flags.w) != renderPass) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("} else {"),s.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),s.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),s.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),s.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),s.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),s.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),s.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),s.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),s.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),s.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),s.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),s.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),s.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),s.push("if (color.a == 0u) {"),s.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),s.push(" return;"),s.push("};"),s.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),s.push("vec3 position;"),s.push("position = positions[gl_VertexID % 3];"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (solid != 1u) {"),s.push("if (isPerspectiveMatrix(projMatrix)) {"),s.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),s.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("viewNormal = -viewNormal;"),s.push("}"),s.push("} else {"),s.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),s.push("if (viewNormal.z < 0.0) {"),s.push("position = positions[2 - (gl_VertexID % 3)];"),s.push("}"),s.push("}"),s.push("}"),s.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),s.push("vec4 viewPosition = viewMatrix * worldPosition; "),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s.push("vWorldPosition = worldPosition;"),t&&s.push("vFlags2 = flags2.r;"),s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("in vec4 vWorldPosition;"),t){s.push("flat in uint vFlags2;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,n=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),s.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),s.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),s.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class _c{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Oo(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Wo(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new qo(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cc(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new sc(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new oc(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Do(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Do(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Oo(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new mc(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Tc(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Mo(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Go(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Wo(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cc(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Cc(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new qo(this._scene)),this._pickDepthRenderer}get vertexDepthRenderer(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new sc(this._scene)),this._vertexDepthRenderer}get snapDepthBufInitRenderer(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new oc(this._scene)),this._snapDepthBufInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Ac(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const Bc={};class Oc{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]}}class Sc{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}bindCommonTextures(e,t,s,n,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,n,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}bindTriangleIndicesTextures(e,t,s,n){this.indicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.indicesPerBitnessTextures[n].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,n){this.edgeIndicesPortionIdsPerBitnessTextures[n].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[n].bindTexture(e,s,6)}}class Nc{constructor(e,t,s,n,i=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=n,this._textureData=i}bindTexture(e,t,s){return e.bindTexture(t,this,s)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const xc={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(xc,null,4));let e=0;Object.keys(xc).forEach((t=>{t.startsWith("size")&&(e+=xc[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/xc.totalPolygons).toFixed(2)}`);let t={};Object.keys(xc).forEach((s=>{s.startsWith("size")&&(t[s]=`${(xc[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class Lc{disableBindedTextureFiltering(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}generateTextureForColorsAndFlags(e,t,s,n,i,a,r){const l=t.length;this.numPortions=l;const o=4096,c=Math.ceil(l/512);if(0===c)throw"texture height===0";const u=new Uint8Array(16384*c);xc.sizeDataColorsAndFlags+=u.byteLength,xc.numberOfTextures++;for(let e=0;e>24&255,n[e]>>16&255,n[e]>>8&255,255&n[e]],32*e+16),u.set([i[e]>>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+20),u.set([a[e]>>24&255,a[e]>>16&255,a[e]>>8&255,255&a[e]],32*e+24),u.set([r[e]?1:0,0,0,0],32*e+28);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,o,c),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,c,e.RGBA_INTEGER,e.UNSIGNED_BYTE,u,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Nc(e,h,o,c,u)}generateTextureForObjectOffsets(e,t){const s=512,n=Math.ceil(t/s);if(0===n)throw"texture height===0";const i=new Float32Array(1536*n).fill(0);xc.sizeDataTextureOffsets+=i.byteLength,xc.numberOfTextures++;const a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,n),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,n,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Nc(e,a,s,n,i)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const n=2048,i=Math.ceil(s/512),a=new Float32Array(8192*i);xc.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Bc[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new Oc,this._dataTextureState=new Sc,this._dataTextureGenerator=new Lc,this._state=new it({origin:A.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numEdgeIndices8Bits:0,numEdgeIndices16Bits:0,numEdgeIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=A.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){A.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&xc.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const n=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[n]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let n=0,i=0;e.buckets.forEach((e=>{n+=e.positionsCompressed.length/3,i+=e.indices.length/3})),(this._state.numVertices+n>4096*Fc||t+i>4096*Fc)&&xc.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+n<=4096*Fc&&t+i<=4096*Fc}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,n)=>{const i=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${n}`:`${t.id}#${n}`;let a=this._bucketGeometries[i];a||(a=this._createBucketGeometry(t,e),this._bucketGeometries[i]=a);const r=this._createSubPortion(t,a,e);s.push(r)}));const n=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),n}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;xc.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;xc.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.edgeIndices),t.edgeIndices=s}const s=t.positionsCompressed,n=t.indices,i=t.edgeIndices,a=this._buffer;a.positionsCompressed.push(s);const r=a.lenPositionsCompressed/3,l=s.length/3;let o;a.lenPositionsCompressed+=s.length;let c,u=0;if(n){let e;u=n.length/3,l<=256?(e=a.indices8Bits,o=a.lenIndices8Bits/3,a.lenIndices8Bits+=n.length):l<=65536?(e=a.indices16Bits,o=a.lenIndices16Bits/3,a.lenIndices16Bits+=n.length):(e=a.indices32Bits,o=a.lenIndices32Bits/3,a.lenIndices32Bits+=n.length),e.push(n)}let h=0;if(i){let e;h=i.length/2,l<=256?(e=a.edgeIndices8Bits,c=a.lenEdgeIndices8Bits/2,a.lenEdgeIndices8Bits+=i.length):l<=65536?(e=a.edgeIndices16Bits,c=a.lenEdgeIndices16Bits/2,a.lenEdgeIndices16Bits+=i.length):(e=a.edgeIndices32Bits,c=a.lenEdgeIndices32Bits/2,a.lenEdgeIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=l,xc.numberOfGeometries++;return{vertexBase:r,numVertices:l,numTriangles:u,numEdges:h,indicesBase:o,edgeIndicesBase:c,obb:null}}_createSubPortion(e,t,s,n){const i=e.color;e.metallic,e.roughness;const a=e.colors,r=e.opacity,l=e.meshMatrix,o=e.pickColor,c=this._buffer,u=this._state;c.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),c.perObjectInstancePositioningMatrices.push(l||Vc),c.perObjectSolid.push(!!e.solid),a?c.perObjectColors.push([255*a[0],255*a[1],255*a[2],255]):i&&c.perObjectColors.push([i[0],i[1],i[2],r]),c.perObjectPickColors.push(o),c.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?u.numIndices8Bits:t.numVertices<=65536?u.numIndices16Bits:u.numIndices32Bits,c.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?u.numEdgeIndices8Bits:t.numVertices<=65536?u.numEdgeIndices16Bits:u.numEdgeIndices32Bits,c.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const h=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=c.perTriangleNumberPortionId8Bits,u.numIndices8Bits+=s,xc.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=c.perTriangleNumberPortionId16Bits,u.numIndices16Bits+=s,xc.totalPolygons16Bits+=t.numTriangles):(e=c.perTriangleNumberPortionId32Bits,u.numIndices32Bits+=s,xc.totalPolygons32Bits+=t.numTriangles),xc.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=c.perEdgeNumberPortionId8Bits,u.numEdgeIndices8Bits+=s,xc.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=c.perEdgeNumberPortionId16Bits,u.numEdgeIndices16Bits+=s,xc.totalEdges16Bits+=t.numEdges):(e=c.perEdgeNumberPortionId32Bits,u.numEdgeIndices32Bits+=s,xc.totalEdges32Bits+=t.numEdges),xc.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId8Bits)),n.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId16Bits)),n.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(s,n.perEdgeNumberPortionId32Bits)),n.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,n.indices8Bits,n.lenIndices8Bits)),n.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,n.indices16Bits,n.lenIndices16Bits)),n.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,n.indices32Bits,n.lenIndices32Bits)),n.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(s,n.edgeIndices8Bits,n.lenEdgeIndices8Bits)),n.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(s,n.edgeIndices16Bits,n.lenEdgeIndices16Bits)),n.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(s,n.edgeIndices32Bits,n.lenEdgeIndices32Bits)),t.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}isEmpty(){return 0===this._numPortions}initFlags(e,t,s){t&X&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&te&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&ee&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&se&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Z&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ne&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&J&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&q&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),s&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,s,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,s){if(!this._finalized)throw"Not finalized";t&X?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,s)}setHighlighted(e,t,s){if(!this._finalized)throw"Not finalized";t&te?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,s)}setXRayed(e,t,s){if(!this._finalized)throw"Not finalized";t&ee?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,s)}setSelected(e,t,s){if(!this._finalized)throw"Not finalized";t&se?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){if(!this._finalized)throw"Not finalized";t&ne?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,s)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Z?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}setCulled(e,t,s){if(!this._finalized)throw"Not finalized";t&q?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,s){if(!this._finalized)throw"Not finalized";t&J?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,Uc)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,n=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,a=i.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,A.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,Uc))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const n=this._portionToSubPortionsMap[e];for(let e=0,i=n.length;e=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,Uc))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectOffsets._texture),n.texSubImage2D(n.TEXTURE_2D,0,0,e,1,1,n.RGB,n.FLOAT,Gc))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,n=s.length;e=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),n.texSubImage2D(n.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,n.RGBA,n.FLOAT,Hc))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,oa.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const s=this.model.backfaces||e.sectioned;if(t.backfaces!==s){const e=t.gl;s?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=s}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,oa.COLOR_TRANSPARENT))}drawDepth(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,oa.SILHOUETTE_SELECTED))}drawEdgesColorOpaque(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,oa.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,oa.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,oa.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,oa.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,oa.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,oa.PICK))}drawSnapInitDepthBuf(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,oa.PICK))}drawSnapDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,oa.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,oa.PICK))}destroy(){if(this._destroyed)return;const e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const Qc=A.vec4(4),Wc=A.vec4(),zc=A.vec4(),Kc=A.vec3([1,0,0]),Yc=A.vec3([0,1,0]),Xc=A.vec3([0,0,1]);A.vec3(3),A.vec3(3);const qc=A.identityMat4();class Jc{constructor(e){this._model=e.model,this.id=e.id,this._parentTransform=e.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=A.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=A.identityMat4(new Float32Array(16)),this._worldMatrix=A.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,e.matrix?this.matrix=e.matrix:(this.scale=e.scale,this.position=e.position,e.quaternion||(this.rotation=e.rotation)),e.parent&&e.parent._addChildTransform(this)}_addChildTransform(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}_addMesh(e){this._meshes.push(e),e.transform=this}get parentTransform(){return this._parentTransform}get meshes(){return this._meshes}set position(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),A.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),A.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}get quaternion(){return this._quaternion}set scale(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}get scale(){return this._scale}set matrix(e){this._localMatrix||(this._localMatrix=A.identityMat4()),this._localMatrix.set(e||qc),A.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}get matrix(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=A.identityMat4()),A.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix}get worldMatrix(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}rotate(e,t){return Qc[0]=e[0],Qc[1]=e[1],Qc[2]=e[2],Qc[3]=t*A.DEGTORAD,A.angleAxisToQuaternion(Qc,Wc),A.mulQuaternions(this.quaternion,Wc,zc),this.quaternion=zc,this._setLocalMatrixDirty(),this._model.glRedraw(),this}rotateOnWorldAxis(e,t){return Qc[0]=e[0],Qc[1]=e[1],Qc[2]=e[2],Qc[3]=t*A.DEGTORAD,A.angleAxisToQuaternion(Qc,Wc),A.mulQuaternions(Wc,this.quaternion,Wc),this}rotateX(e){return this.rotate(Kc,e)}rotateY(e){return this.rotate(Yc,e)}rotateZ(e){return this.rotate(Xc,e)}translate(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateX(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateY(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}translateZ(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}_setLocalMatrixDirty(){this._localMatrixDirty=!0,this._transformDirty()}_transformDirty(){this._worldMatrixDirty=!0;for(let e=0,t=this._childTransforms.length;e0){const e=t._meshes;for(let t=0,s=e.length;t0){const e=this._meshes;for(let t=0,s=e.length;t{this._viewMatrixDirty=!0})),this._meshesWithDirtyMatrices=[],this._numMeshesWithDirtyMatrices=0,this._onTick=this.scene.on("tick",(()=>{for(;this._numMeshesWithDirtyMatrices>0;)this._meshesWithDirtyMatrices[--this._numMeshesWithDirtyMatrices]._updateMatrix()})),this._createDefaultTextureSet(),this.visible=t.visible,this.culled=t.culled,this.pickable=t.pickable,this.clippable=t.clippable,this.collidable=t.collidable,this.castsShadow=t.castsShadow,this.receivesShadow=t.receivesShadow,this.xrayed=t.xrayed,this.highlighted=t.highlighted,this.selected=t.selected,this.edges=t.edges,this.colorize=t.colorize,this.opacity=t.opacity,this.backfaces=t.backfaces}_meshMatrixDirty(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}_createDefaultTextureSet(){const e=new Zl({id:"defaultColorTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new Zl({id:"defaultMetalRoughTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new Zl({id:"defaultNormalsTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),n=new Zl({id:"defaultEmissiveTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new Zl({id:"defaultOcclusionTexture",texture:new Fi({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=s,this._textures.defaultEmissiveTexture=n,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Jl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:n,occlusionTexture:i})}get isPerformanceModel(){return!0}get transforms(){return this._transforms}get textures(){return this._textures}get textureSets(){return this._textureSets}get meshes(){return this._meshes}get objects(){return this._entities}get origin(){return this._origin}set position(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get position(){return this._position}set rotation(e){this._rotation.set(e||[0,0,0]),A.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get rotation(){return this._rotation}set quaternion(e){this._quaternion.set(e||[0,0,0,1]),A.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get quaternion(){return this._quaternion}set scale(e){}get scale(){return this._scale}set matrix(e){this._matrix.set(e||iu),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),A.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),A.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get matrix(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix}get rotationMatrix(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}_rebuildMatrices(){this._matrixDirty&&(A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),A.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),A.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),A.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}get rotationMatrixConjugate(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}_setWorldMatrixDirty(){this._matrixDirty=!0,this._aabbDirty=!0}_transformDirty(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}_sceneModelDirty(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(let e=0,t=this._entityList.length;e0}set visible(e){e=!1!==e,this._visible=e;for(let t=0,s=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,s=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,s=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,s=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,s=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,s=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,s=new Uint8Array(t.length);for(let e=0,n=t.length;e{o.setImage(c,{minFilter:s,magFilter:n,wrapS:i,wrapT:a,wrapR:r,flipY:e.flipY,encoding:l}),this.glRedraw()},c.src=e.src;break;default:this._textureTranscoder?g.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'src': file data is zero length")}),(function(e){this.error(`[createTexture] Can't create texture from 'src': ${e}`)})):this.error(`[createTexture] Can't create texture from 'src' - SceneModel needs to be configured with a TextureTranscoder for this file type ('${t}')`)}}else e.buffers&&(this._textureTranscoder?this._textureTranscoder.transcode(e.buffers,o).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'buffers' - SceneModel needs to be configured with a TextureTranscoder for this option"));this._textures[t]=new Zl({id:t,texture:o})}createTextureSet(e){const t=e.id;if(null==t)return void this.error("[createTextureSet] Config missing: id");if(this._textureSets[t])return void this.error(`[createTextureSet] Texture set already created: ${t}`);let s,n,i,a,r;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(s=this._textures[e.colorTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(n=this._textures[e.metallicRoughnessTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(i=this._textures[e.normalsTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(a=this._textures[e.emissiveTextureId],!a)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else a=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(r=this._textures[e.occlusionTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultOcclusionTexture;const l=new Jl({id:t,model:this,colorTexture:s,metallicRoughnessTexture:n,normalsTexture:i,emissiveTexture:a,occlusionTexture:r});return this._textureSets[t]=l,l}createTransform(e){if(void 0===e.id||null===e.id)return void this.error("[createTransform] SceneModel.createTransform() config missing: id");if(this._transforms[e.id])return void this.error(`[createTransform] SceneModel already has a transform with this ID: ${e.id}`);let t;if(this.parentTransformId&&(t=this._transforms[e.parentTransformId],!t))return void this.error("[createTransform] SceneModel.createTransform() config missing: id");const s=new Jc({id:e.id,model:this,parentTransform:t,matrix:e.matrix,position:e.position,scale:e.scale,rotation:e.rotation,quaternion:e.quaternion});return this._transforms[s.id]=s,s}createMesh(e){if(void 0===e.id||null===e.id)return void this.error("[createMesh] SceneModel.createMesh() config missing: id");if(this._scheduledMeshes[e.id])return void this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`);if(!(void 0!==e.geometryId)){if(void 0!==e.primitive&&null!==e.primitive||(e.primitive="triangles"),"points"!==e.primitive&&"lines"!==e.primitive&&"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)return void this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`);if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),null;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),null;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),null;if(!e.buckets&&!e.indices&&"points"!==e.primitive)return this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),null;if((e.matrix||e.position||e.rotation||e.scale)&&(e.positionsCompressed||e.positionsDecodeBoundary))return this.error("Unexpected params: 'matrix', 'rotation', 'scale', 'position' not allowed with 'positionsCompressed'"),null;const t=!!this._dtxEnabled&&("triangles"===e.primitive||"solid"===e.primitive||"surface"===e.primitive);if(e.origin=e.origin?A.addVec3(this._origin,e.origin,A.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||eu,s=e.position||tu,n=e.rotation||su;A.eulerToQuaternion(n,"XYZ",nu),e.meshMatrix=A.composeMat4(s,nu,t,A.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Xa(e.positionsDecodeBoundary,A.mat4())),t){if(e.type=2,e.color=e.color?new Uint8Array([Math.floor(255*e.color[0]),Math.floor(255*e.color[1]),Math.floor(255*e.color[2])]):au,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=A.vec3(),s=[];z(e.positions,s,t)&&(e.positions=s,e.origin=A.addVec3(e.origin,t,t))}if(e.positions){const t=A.collapseAABB3();e.positionsDecodeMatrix=A.mat4(),A.expandAABB3Points3(t,e.positions),e.positionsCompressed=Ya(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=A.collapseAABB3();A.expandAABB3Points3(t,e.positionsCompressed),Ft.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=A.collapseAABB3();for(let s=0,n=e.buckets.length;s>24&255,i=s>>16&255,a=s>>8&255,r=255&s;switch(e.pickColor=new Uint8Array([r,a,i,n]),e.solid="solid"===e.primitive,t.origin=A.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}_getNumPrimitives(e){let t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(let s=0,n=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,n=e.textureSetId||"-",i=e.geometryId,a=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${n}.${i}`;let r=this._vboInstancingLayers[a];if(r)return r;let l=e.textureSet;const o=e.geometry;for(;!r;)switch(o.primitive){case"triangles":case"surface":r=new pl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!1});break;case"solid":r=new pl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0,solid:!0});break;case"lines":r=new Rl({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0});break;case"points":r=new ql({model:t,textureSet:l,geometry:o,origin:s,layerIndex:0})}return this._vboInstancingLayers[a]=r,this.layerList.push(r),r}createEntity(e){if(void 0===e.id?e.id=A.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=A.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=X),this._pickable&&!1!==e.pickable&&(t|=J),this._culled&&!1!==e.culled&&(t|=q),this._clippable&&!1!==e.clippable&&(t|=Z),this._collidable&&!1!==e.collidable&&(t|=$),this._edges&&!1!==e.edges&&(t|=ne),this._xrayed&&!1!==e.xrayed&&(t|=ee),this._highlighted&&!1!==e.highlighted&&(t|=te),this._selected&&!1!==e.selected&&(t|=se),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let s=0,n=e.meshIds.length;se.sortIdt.sortId?1:0));for(let e=0,t=this.layerList.length;e0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}_updateRenderFlagsVisibleLayers(){const e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(let t=0,s=this.layerList.length;t0)for(let e=0;e0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){const t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0){this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0))}if(this.numSelectedLayerPortions>0){const t=this.scene.selectedMaterial._state;t.fill&&(t.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){const t=this.scene.highlightMaterial._state;t.fill&&(t.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}drawColorOpaque(e){const t=this.renderFlags;for(let s=0,n=t.visibleLayers.length;s65536?16:8)}else r=[{positionsCompressed:n,indices:i,edgeIndices:a}];return r}class ou extends ru{constructor(e,t={}){super(e,t)}}class cu extends S{constructor(e,t={}){if(super(e,t),this._positions=t.positions||[],t.indices)this._indices=t.indices;else{this._indices=[];for(let e=0,t=this._positions.length/3-1;ed.has(e.id)||I.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let n,i=function(e){let t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0"),t}(s.colorize);s.xrayed?(n=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,n=Math.round(255*n).toString(16).padStart(2,"0"),i=n+i):d.has(s.id)&&(n=Math.round(255*s.opacity).toString(16).padStart(2,"0"),i=n+i),e[i]||(e[i]=[]);const a=s.id,r=s.originalSystemId,l={ifc_guid:r,originating_system:this.originatingSystem};return r!==a&&(l.authoring_tool_id=a),e[i].push(l),e}),{}),m=Object.entries(y).map((([e,t])=>({color:e,components:t})));a.components.coloring=m;const v=t.objectIds,w=t.visibleObjects,g=t.visibleObjectIds,E=v.filter((e=>!w[e])),T=t.selectedObjectIds;return e.defaultInvisible||g.length0&&e.clipping_planes.forEach((function(e){let t=Iu(e.location,uu),s=Iu(e.direction,uu);c&&A.negateVec3(s),A.subVec3(t,o),i.yUp&&(t=mu(t),s=mu(s)),new yi(n,{pos:t,dir:s})})),n.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let i=0;e.lines.forEach((e=>{e.start_point&&e.end_point&&(t.push(e.start_point.x),t.push(e.start_point.y),t.push(e.start_point.z),t.push(e.end_point.x),t.push(e.end_point.y),t.push(e.end_point.z),s.push(i++),s.push(i++))})),new cu(n,{positions:t,indices:s,clippable:!1,collidable:!0})}if(n.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let a=Iu(e.location,hu),r=Iu(e.normal,pu),l=Iu(e.up,Au),o=e.height||1;t&&s&&a&&r&&l&&(i.yUp&&(a=mu(a),r=mu(r),l=mu(l)),new ta(n,{src:s,type:t,pos:a,normal:r,up:l,clippable:!1,collidable:!0,height:o}))})),l&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),n.setObjectsHighlighted(n.highlightedObjectIds,!1),n.setObjectsSelected(n.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(n.setObjectsVisible(n.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(n.setObjectsVisible(n.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const i=e.components.visibility.view_setup_hints;i&&(!1===i.spaces_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==i.spaces_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),i.space_boundaries_visible,!1===i.openings_visible&&n.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),i.space_boundaries_translucent,void 0!==i.openings_translucent&&n.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(n.setObjectsSelected(n.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(n.setObjectsXRayed(n.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let s=e.color,n=0,i=!1;8===s.length&&(n=parseInt(s.substring(0,2),16)/256,n<=1&&n>=.95&&(n=1),s=s.substring(2),i=!0);const a=[parseInt(s.substring(0,2),16)/256,parseInt(s.substring(2,4),16)/256,parseInt(s.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=a,i&&(e.opacity=n)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let l,c,u,h;if(e.perspective_camera?(l=Iu(e.perspective_camera.camera_view_point,uu),c=Iu(e.perspective_camera.camera_direction,uu),u=Iu(e.perspective_camera.camera_up_vector,uu),i.perspective.fov=e.perspective_camera.field_of_view,h="perspective"):(l=Iu(e.orthogonal_camera.camera_view_point,uu),c=Iu(e.orthogonal_camera.camera_direction,uu),u=Iu(e.orthogonal_camera.camera_up_vector,uu),i.ortho.scale=e.orthogonal_camera.view_to_world_scale,h="ortho"),A.subVec3(l,o),i.yUp&&(l=mu(l),c=mu(c),u=mu(u)),a){const e=n.pick({pickSurface:!0,origin:l,direction:c});c=e?e.worldPos:A.addVec3(l,c,uu)}else c=A.addVec3(l,c,uu);r?(i.eye=l,i.look=c,i.up=u,i.projection=h):s.cameraFlight.flyTo({eye:l,look:c,up:u,duration:t.duration,projection:h})}}_withBCFComponent(e,t,s){const n=this.viewer,i=n.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const a=t.authoring_tool_id,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}}if(t.ifc_guid){const a=t.ifc_guid,r=i.objects[a];if(r)return void s(r);if(e.updateCompositeObjects){if(n.metaScene.metaObjects[a])return void i.withObjects(n.metaScene.getObjectIDsInSubtree(a),s)}Object.keys(i.models).forEach((t=>{const r=A.globalizeObjectId(t,a),l=i.objects[r];if(l)s(l);else if(e.updateCompositeObjects){n.metaScene.metaObjects[r]&&i.withObjects(n.metaScene.getObjectIDsInSubtree(r),s)}}))}}destroy(){super.destroy()}}function fu(e){return{x:e[0],y:e[1],z:e[2]}}function Iu(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function yu(e){return new Float64Array([e[0],-e[2],e[1]])}function mu(e){return new Float64Array([e[0],e[2],-e[1]])}const vu=A.vec3(),wu=(e,t,s,n)=>{var i=e-s,a=t-n;return Math.sqrt(i*i+a*a)};class gu extends S{constructor(e,t={}){if(super(e.viewer.scene,t),this.plugin=e,this._container=t.container,!this._container)throw"config missing: container";this._eventSubs={};var s=this.plugin.viewer.scene;this._originMarker=new ce(s,t.origin),this._targetMarker=new ce(s,t.target),this._originWorld=A.vec3(),this._targetWorld=A.vec3(),this._wp=new Float64Array(24),this._vp=new Float64Array(24),this._pp=new Float64Array(24),this._cp=new Float64Array(8),this._xAxisLabelCulled=!1,this._yAxisLabelCulled=!1,this._zAxisLabelCulled=!1,this._color=t.color||this.plugin.defaultColor;const n=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,i=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},r=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,c=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._targetDot=new he(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._lengthWire=new ue(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._xAxisWire=new ue(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._yAxisWire=new ue(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._zAxisWire=new ue(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._lengthLabel=new pe(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._xAxisLabel=new pe(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._yAxisLabel=new pe(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._zAxisLabel=new pe(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:n,onMouseLeave:i,onMouseWheel:c,onMouseDown:a,onMouseUp:r,onMouseMove:l,onContextMenu:o}),this._wpDirty=!1,this._vpDirty=!1,this._cpDirty=!1,this._sectionPlanesDirty=!0,this._visible=!1,this._originVisible=!1,this._targetVisible=!1,this._wireVisible=!1,this._axisVisible=!1,this._xAxisVisible=!1,this._yAxisVisible=!1,this._zAxisVisible=!1,this._axisEnabled=!0,this._labelsVisible=!1,this._clickable=!1,this._originMarker.on("worldPos",(e=>{this._originWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._targetMarker.on("worldPos",(e=>{this._targetWorld.set(e||[0,0,0]),this._wpDirty=!0,this._needUpdate(0)})),this._onViewMatrix=s.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=s.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=s.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=s.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=s.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=s.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=s.on("sectionPlaneUpdated",(()=>{this._sectionPlanesDirty=!0,this._needUpdate()})),this.approximate=t.approximate,this.visible=t.visible,this.originVisible=t.originVisible,this.targetVisible=t.targetVisible,this.wireVisible=t.wireVisible,this.axisVisible=t.axisVisible,this.xAxisVisible=t.xAxisVisible,this.yAxisVisible=t.yAxisVisible,this.zAxisVisible=t.zAxisVisible,this.labelsVisible=t.labelsVisible}_update(){if(!this._visible)return;const e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&(A.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}const t=this._originMarker.viewPos[2],s=this._targetMarker.viewPos[2];if(t>-.3||s>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){A.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var n=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var r=a.top-t.top,l=a.left-t.left,o=e.canvas.boundary,c=o[2],u=o[3],h=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,I=s.units,y=s.unitsInfo[I].abbrev;for(var p=0,d=n.length;p{const t=e.snappedCanvasPos||e.canvasPos;i=!0,a.set(e.worldPos),r.set(e.canvasPos),0===this._mouseState?(this._markerDiv.style.marginLeft=t[0]-5+"px",this._markerDiv.style.marginTop=t[1]-5+"px",this._markerDiv.style.background="pink",e.snappedToVertex||e.snappedToEdge?(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,this.pointerLens.snapped=!0),this._markerDiv.style.background="greenyellow",this._markerDiv.style.border="2px solid green"):(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.canvasPos,this.pointerLens.snapped=!1),this._markerDiv.style.background="pink",this._markerDiv.style.border="2px solid red"),c=e.entity):(this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px"),n.style.cursor="pointer",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=this._currentDistanceMeasurementInitState.wireVisible,this._currentDistanceMeasurement.axisVisible=this._currentDistanceMeasurementInitState.axisVisible&&this.distanceMeasurementsPlugin.defaultAxisVisible,this._currentDistanceMeasurement.xAxisVisible=this._currentDistanceMeasurementInitState.xAxisVisible&&this.distanceMeasurementsPlugin.defaultXAxisVisible,this._currentDistanceMeasurement.yAxisVisible=this._currentDistanceMeasurementInitState.yAxisVisible&&this.distanceMeasurementsPlugin.defaultYAxisVisible,this._currentDistanceMeasurement.zAxisVisible=this._currentDistanceMeasurementInitState.zAxisVisible&&this.distanceMeasurementsPlugin.defaultZAxisVisible,this._currentDistanceMeasurement.targetVisible=this._currentDistanceMeasurementInitState.targetVisible,this._currentDistanceMeasurement.target.worldPos=a.slice(),this._markerDiv.style.marginLeft="-10000px",this._markerDiv.style.marginTop="-10000px")})),n.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(l=e.clientX,o=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>l+20||t.clientXo+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),i=!1,this._markerDiv.style.marginLeft="-100px",this._markerDiv.style.marginTop="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),n.style.cursor="default"})),this._active=!0}deactivate(){if(!this._active)return;this.fire("activated",!1),this.pointerLens&&(this.pointerLens.visible=!1),this._markerDiv&&this._destroyMarkerDiv(),this.reset();const e=this.scene.canvas.canvas;e.removeEventListener("mousedown",this._onMouseDown),e.removeEventListener("mouseup",this._onMouseUp);const t=this.distanceMeasurementsPlugin.viewer.cameraControl;t.off(this._onCameraControlHoverSnapOrSurface),t.off(this._onCameraControlHoverSnapOrSurfaceOff),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null))}destroy(){this.deactivate(),super.destroy()}}class bu extends V{constructor(e,t={}){super("DistanceMeasurements",e),this._pointerLens=t.pointerLens,this._container=t.container||document.body,this._defaultControl=null,this._measurements={},this.labelMinAxisLength=t.labelMinAxisLength,this.defaultVisible=!1!==t.defaultVisible,this.defaultOriginVisible=!1!==t.defaultOriginVisible,this.defaultTargetVisible=!1!==t.defaultTargetVisible,this.defaultWireVisible=!1!==t.defaultWireVisible,this.defaultLabelsVisible=!1!==t.defaultLabelsVisible,this.defaultAxisVisible=!1!==t.defaultAxisVisible,this.defaultXAxisVisible=!1!==t.defaultXAxisVisible,this.defaultYAxisVisible=!1!==t.defaultYAxisVisible,this.defaultZAxisVisible=!1!==t.defaultZAxisVisible,this.defaultColor=void 0!==t.defaultColor?t.defaultColor:"#00BBFF",this.zIndex=t.zIndex||1e4,this._onMouseOver=(e,t)=>{this.fire("mouseOver",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onMouseLeave=(e,t)=>{this.fire("mouseLeave",{plugin:this,distanceMeasurement:t,measurement:t,event:e})},this._onContextMenu=(e,t)=>{this.fire("contextMenu",{plugin:this,distanceMeasurement:t,measurement:t,event:e})}}getContainerElement(){return this._container}send(e,t){}get pointerLens(){return this._pointerLens}get control(){return this._defaultControl||(this._defaultControl=new Tu(this,{})),this._defaultControl}get measurements(){return this._measurements}set labelMinAxisLength(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}get labelMinAxisLength(){return this._labelMinAxisLength}createMeasurement(e={}){this.viewer.scene.components[e.id]&&(this.error("Viewer scene component with this ID already exists: "+e.id),delete e.id);const t=e.origin,s=e.target,n=new gu(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:s.entity,worldPos:s.worldPos},visible:e.visible,wireVisible:e.wireVisible,axisVisible:!1!==e.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==e.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==e.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==e.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==e.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:e.originVisible,targetVisible:e.targetVisible,color:e.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[n.id]=n,n.on("destroyed",(()=>{delete this._measurements[n.id]})),this.fire("measurementCreated",n),n}destroyMeasurement(e){const t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}setLabelsShown(e){for(const[t,s]of Object.entries(this.measurements))s.labelShown=e}setAxisVisible(e){for(const[t,s]of Object.entries(this.measurements))s.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,s=e.length;t{s=1e3*this._delayBeforeRestoreSeconds,n||(e.scene._renderer.setColorTextureEnabled(!this._hideColorTexture),e.scene._renderer.setPBREnabled(!this._hidePBR),e.scene._renderer.setSAOEnabled(!this._hideSAO),e.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!this._hideEdges),this._scaleCanvasResolution?e.scene.canvas.resolutionScale=this._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,n=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",i),this._onCameraMatrix=e.scene.camera.on("matrix",i),this._onSceneTick=e.scene.on("tick",(t=>{n&&(s-=t.deltaTime,(!this._delayBeforeRestore||s<=0)&&(e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),n=!1))}));let a=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{a=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{a=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{a&&i()}))}get hideColorTexture(){return this._hideColorTexture}set hideColorTexture(e){this._hideColorTexture=e}get hidePBR(){return this._hidePBR}set hidePBR(e){this._hidePBR=e}get hideSAO(){return this._hideSAO}set hideSAO(e){this._hideSAO=e}get hideEdges(){return this._hideEdges}set hideEdges(e){this._hideEdges=e}get hideTransparentObjects(){return this._hideTransparentObjects}set hideTransparentObjects(e){this._hideTransparentObjects=!1!==e}get scaleCanvasResolution(){return this._scaleCanvasResolution}set scaleCanvasResolution(e){this._scaleCanvasResolution=e}get scaleCanvasResolutionFactor(){return this._scaleCanvasResolutionFactor}set scaleCanvasResolutionFactor(e){this._scaleCanvasResolutionFactor=e||.6}get delayBeforeRestore(){return this._delayBeforeRestore}set delayBeforeRestore(e){this._delayBeforeRestore=e}get delayBeforeRestoreSeconds(){return this._delayBeforeRestoreSeconds}set delayBeforeRestoreSeconds(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}send(e,t){}destroy(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),super.destroy()}}class Pu{constructor(){}getMetaModel(e,t,s){g.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getGLTF(e,t,s){g.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getGLB(e,t,s){g.loadArraybuffer(e,(e=>{t(e)}),(function(e){s(e)}))}getArrayBuffer(e,t,s,n){!function(e,t,s,n){var i=()=>{};s=s||i,n=n||i;const a=/^data:(.*?)(;base64)?,(.*)$/,r=t.match(a);if(r){const e=!!r[2];var l=r[3];l=window.decodeURIComponent(l),e&&(l=window.atob(l));try{const e=new ArrayBuffer(l.length),t=new Uint8Array(e);for(var o=0;o{s(e)}),(function(e){n(e)}))}}class Ru{constructor(e={}){this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=e.messages,this.locale=e.locale}set messages(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}loadMessages(e={}){for(let t in e)this._messages[t]=e[t];this.messages=this._messages}clearMessages(){this.messages={}}get locales(){return this._locales}set locale(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}get locale(){return this._locale}translate(e,t){const s=this._messages[this._locale];if(!s)return null;const n=Cu(e,s);return n?t?_u(n,t):n:null}translatePlurals(e,t,s){const n=this._messages[this._locale];if(!n)return null;let i=Cu(e,n);return i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one,i?(i=_u(i,[t]),s&&(i=_u(i,s)),i):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const n=this._eventSubs[e];if(n)for(const e in n)if(n.hasOwnProperty(e)){n[e].callback(t)}}on(t,s){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new e),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let n=this._eventSubs[t];n||(n={},this._eventSubs[t]=n);const i=this._eventSubIDMap.addItem();n[i]={callback:s},this._eventSubEvents[i]=t;const a=this._events[t];return void 0!==a&&s(a),i}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const s=this._eventSubs[t];s&&delete s[e],this._eventSubIDMap.removeItem(e)}}}function Cu(e,t){if(t[e])return t[e];const s=e.split(".");let n=t;for(let e=0,t=s.length;n&&e1?1:e}get t(){return this._t}get tangent(){return this.getTangent(this._t)}get length(){var e=this._getLengths();return e[e.length-1]}getTangent(e){var t=1e-4;void 0===e&&(e=this._t);var s=e-t,n=e+t;s<0&&(s=0),n>1&&(n=1);var i=this.getPoint(s),a=this.getPoint(n),r=A.subVec3(a,i,[]);return A.normalizeVec3(r,[])}getPointAt(e){var t=this.getUToTMapping(e);return this.getPoint(t)}getPoints(e){e||(e=5);var t,s=[];for(t=0;t<=e;t++)s.push(this.getPoint(t/e));return s}_getLengths(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,s,n=[],i=this.getPoint(0),a=0;for(n.push(0),s=1;s<=e;s++)t=this.getPoint(s/e),a+=A.lenVec3(A.subVec3(t,i,[])),n.push(a),i=t;return this.cacheArcLengths=n,n}_updateArcLengths(){this.needsUpdate=!0,this._getLengths()}getUToTMapping(e,t){var s,n=this._getLengths(),i=0,a=n.length;s=t||e*n[a-1];for(var r,l=0,o=a-1;l<=o;)if((r=n[i=Math.floor(l+(o-l)/2)]-s)<0)l=i+1;else{if(!(r>0)){o=i;break}o=i-1}if(n[i=o]===s)return i/(a-1);var c=n[i];return(i+(s-c)/(n[i+1]-c))/(a-1)}}class Ou extends Bu{constructor(e,t={}){super(e,t),this.points=t.points,this.t=t.t}set points(e){this._points=e||[]}get points(){return this._points}set t(e){e=e||0,this._t=e<0?0:e>1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=this.points;if(!(t.length<3)){var s=(t.length-1)*e,n=Math.floor(s),i=s-n,a=t[0===n?n:n-1],r=t[n],l=t[n>t.length-2?t.length-1:n+1],o=t[n>t.length-3?t.length-1:n+2],c=A.vec3();return c[0]=A.catmullRomInterpolate(a[0],r[0],l[0],o[0],i),c[1]=A.catmullRomInterpolate(a[1],r[1],l[1],o[1],i),c[2]=A.catmullRomInterpolate(a[2],r[2],l[2],o[2],i),c}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}getJSON(){return{points:points,t:this._t}}}const Su=A.vec3();class Nu extends S{get type(){return"CameraPath"}constructor(e,t={}){super(e,t),this._frames=[],this._eyeCurve=new Ou(this),this._lookCurve=new Ou(this),this._upCurve=new Ou(this),t.frames&&(this.addFrames(t.frames),this.smoothFrameTimes(1))}get frames(){return this._frames}get eyeCurve(){return this._eyeCurve}get lookCurve(){return this._lookCurve}get upCurve(){return this._upCurve}saveFrame(e){const t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}addFrame(e,t,s,n){const i={t:e,eye:t.slice(0),look:s.slice(0),up:n.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}addFrames(e){let t;for(let s=0,n=e.length;s1?1:e,t.eye=this._eyeCurve.getPoint(e,Su),t.look=this._lookCurve.getPoint(e,Su),t.up=this._upCurve.getPoint(e,Su)}sampleFrame(e,t,s,n){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,s),this._upCurve.getPoint(e,n)}smoothFrameTimes(e){if(0===this._frames.length)return;const t=A.vec3();var s=0;this._frames[0].t=0;const n=[];for(let e=1,a=this._frames.length;e=1;e>1&&(e=1);const s=this.easing?Uu._ease(e,0,1,1):e,n=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(A.subVec3(n.eye,n.look,Hu),n.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Mu),n.look=A.subVec3(Mu,Hu,Lu)):this._flyingLook&&(n.look=A.lerpVec3(s,0,1,this._look1,this._look2,Lu),n.up=A.lerpVec3(s,0,1,this._up1,this._up2,Fu)):this._flyingEyeLookUp&&(n.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Mu),n.look=A.lerpVec3(s,0,1,this._look1,this._look2,Lu),n.up=A.lerpVec3(s,0,1,this._up1,this._up2,Fu)),this._projection2){const t="ortho"===this._projection2?Uu._easeOutExpo(e,0,1,1):Uu._easeInCubic(e,0,1,1);n.customProjection.matrix=A.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else n.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return n.ortho.scale=this._orthoScale2,void this.stop();B.scheduleTask(this._update,this)}static _ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}static _easeInCubic(e,t,s,n){return s*(e/=n)*e*e+t}static _easeOutExpo(e,t,s,n){return s*(1-Math.pow(2,-10*e/n))+t}stop(){if(!this._flying)return;this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);const e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}cancel(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}set duration(e){this._duration=e?1e3*e:500,this.stop()}get duration(){return this._duration/1e3}set fit(e){this._fit=!1!==e}get fit(){return this._fit}set fitFOV(e){this._fitFOV=e||45}get fitFOV(){return this._fitFOV}set trail(e){this._trail=!!e}get trail(){return this._trail}destroy(){this.stop(),super.destroy()}}class Gu extends S{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new Uu(this),this._t=0,this.state=Gu.SCRUBBING,this._playingFromT=0,this._playingToT=0,this._playingRate=t.playingRate||1,this._playingDir=1,this._lastTime=null,this.cameraPath=t.cameraPath,this._tick=this.scene.on("tick",this._updateT,this)}_updateT(){const e=this._cameraPath;if(!e)return;let t,s;const n=performance.now(),i=this._lastTime?.001*(n-this._lastTime):0;if(this._lastTime=n,0!==i)switch(this.state){case Gu.SCRUBBING:return;case Gu.PLAYING:if(this._t+=this._playingRate*i,t=this._cameraPath.frames.length,0===t||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=Gu.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case Gu.PLAYING_TO:s=this._t+this._playingRate*i*this._playingDir,(this._playingDir<0&&s<=this._playingToT||this._playingDir>0&&s>=this._playingToT)&&(s=this._playingToT,this.state=Gu.SCRUBBING,this.fire("stopped")),this._t=s,e.loadFrame(this._t)}}_ease(e,t,s,n){return-s*(e/=n)*(e-2)+t}set cameraPath(e){this._cameraPath=e}get cameraPath(){return this._cameraPath}set rate(e){this._playingRate=e}get rate(){return this._playingRate}play(){this._cameraPath&&(this._lastTime=null,this.state=Gu.PLAYING)}playToT(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=Gu.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const s=t.frames[e];s?this.playToT(s.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const s=this._cameraPath;if(!s)return;const n=s.frames[e];n?(this.state=Gu.SCRUBBING,this._cameraFlightAnimation.flyTo(n,t)):this.error("flyToFrame - frame index out of range: "+e)}scrubToT(e){const t=this._cameraPath;if(!t)return;this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=Gu.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=Gu.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=Gu.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}Gu.STOPPED=0,Gu.SCRUBBING=1,Gu.PLAYING=2,Gu.PLAYING_TO=3;const ju=A.vec3(),Vu=A.vec3();A.vec3();const ku=A.vec3([0,-1,0]),Qu=A.vec4([0,0,0,1]);class Wu extends S{constructor(e,t={}){super(e,t),this._src=null,this._image=null,this._pos=A.vec3(),this._origin=A.vec3(),this._rtcPos=A.vec3(),this._dir=A.vec3(),this._size=1,this._imageSize=A.vec2(),this._texture=new ki(this),this._plane=new ui(this,{geometry:new Gt(this,$i({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0}),clippable:t.clippable}),this._grid=new ui(this,{geometry:new Gt(this,Zi({size:1,divisions:10})),material:new Wt(this,{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:t.clippable}),this._node=new Ri(this,{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[this._plane,this._grid]}),this._gridVisible=!1,this.visible=!0,this.gridVisible=t.gridVisible,this.position=t.position,this.rotation=t.rotation,this.dir=t.dir,this.size=t.size,this.collidable=t.collidable,this.clippable=t.clippable,this.pickable=t.pickable,this.opacity=t.opacity,t.image?this.image=t.image:this.src=t.src}set visible(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}get visible(){return this._plane.visible}set gridVisible(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}get gridVisible(){return this._gridVisible}set image(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}get image(){return this._image}set src(e){if(this._src=e,this._src){this._image=null;const e=new Image;e.onload=()=>{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set position(e){this._pos.set(e||[0,0,0]),W(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}get position(){return this._pos}set rotation(e){this._node.rotation=e}get rotation(){return this._node.rotation}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set dir(e){if(this._dir.set(e||[0,0,-1]),e){const t=this.scene.center,s=[-this._dir[0],-this._dir[1],-this._dir[2]];A.subVec3(t,this.position,ju);const n=-A.dotVec3(s,ju);A.normalizeVec3(s),A.mulVec3Scalar(s,n,Vu),A.vec3PairToQuaternion(ku,e,Qu),this._node.quaternion=Qu}}get dir(){return this._dir}set collidable(e){this._node.collidable=!1!==e}get collidable(){return this._node.collidable}set clippable(e){this._node.clippable=!1!==e}get clippable(){return this._node.clippable}set pickable(e){this._node.pickable=!1!==e}get pickable(){return this._node.pickable}set opacity(e){this._node.opacity=e}get opacity(){return this._node.opacity}destroy(){super.destroy()}_updatePlaneSizeFromImage(){const e=this._size,t=this._imageSize[0],s=this._imageSize[1];if(t>s){const n=s/t;this._node.scale=[e,1,e*n]}else{const n=t/s;this._node.scale=[e*n,1,e]}}}class zu extends Pt{get type(){return"PointLight"}constructor(e,t={}){super(e,t);const s=this;this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const n=this.scene.camera,i=this.scene.canvas;this._onCameraViewMatrix=n.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=n.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new it({type:"point",pos:A.vec3([1,1,1]),color:A.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(s._shadowViewMatrixDirty){s._shadowViewMatrix||(s._shadowViewMatrix=A.identityMat4());const e=s._state.pos,t=n.look,i=n.up;A.lookAtMat4v(e,t,i,s._shadowViewMatrix),s._shadowViewMatrixDirty=!1}return s._shadowViewMatrix},getShadowProjMatrix:()=>{if(s._shadowProjMatrixDirty){s._shadowProjMatrix||(s._shadowProjMatrix=A.identityMat4());const e=s.scene.canvas.canvas;A.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,s._shadowProjMatrix),s._shadowProjMatrixDirty=!1}return s._shadowProjMatrix},getShadowRenderBuf:()=>(s._shadowRenderBuf||(s._shadowRenderBuf=new Ze(s.scene.canvas.canvas,s.scene.canvas.gl,{size:[1024,1024]})),s._shadowRenderBuf)}),this.pos=t.pos,this.color=t.color,this.intensity=t.intensity,this.constantAttenuation=t.constantAttenuation,this.linearAttenuation=t.linearAttenuation,this.quadraticAttenuation=t.quadraticAttenuation,this.castsShadow=t.castsShadow,this.scene._lightCreated(this)}set pos(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get pos(){return this._state.pos}set color(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}get intensity(){return this._state.intensity}set constantAttenuation(e){this._state.attenuation[0]=e||0,this.glRedraw()}get constantAttenuation(){return this._state.attenuation[0]}set linearAttenuation(e){this._state.attenuation[1]=e||0,this.glRedraw()}get linearAttenuation(){return this._state.attenuation[1]}set quadraticAttenuation(e){this._state.attenuation[2]=e||0,this.glRedraw()}get quadraticAttenuation(){return this._state.attenuation[2]}set castsShadow(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}function Ku(e){if(!Yu(e.width)||!Yu(e.height)){const t=document.createElement("canvas");t.width=Xu(e.width),t.height=Xu(e.height);t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function Yu(e){return 0==(e&e-1)}function Xu(e){--e;for(let t=1;t<32;t<<=1)e|=e>>t;return e+1}class qu extends S{get type(){return"CubeTexture"}constructor(e,t={}){super(e,t);const s=this.scene.canvas.gl;this._state=new it({texture:new Fi({gl:s,target:s.TEXTURE_CUBE_MAP}),flipY:this._checkFlipY(t.minFilter),encoding:this._checkEncoding(t.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),this._src=t.src,this._images=[],this._loadSrc(t.src),y.memory.textures++}_checkFlipY(e){return!!e}_checkEncoding(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}_webglContextRestored(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}_loadSrc(e){const t=this,s=this.scene.canvas.gl;this._images=[];let n=!1,i=0;for(let a=0;a{this._texture.image=e,this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage()},e.src=this._src}}get src(){return this._src}set size(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}get size(){return this._size}set collidable(e){this._mesh.collidable=!1!==e}get collidable(){return this._mesh.collidable}set clippable(e){this._mesh.clippable=!1!==e}get clippable(){return this._mesh.clippable}set pickable(e){this._mesh.pickable=!1!==e}get pickable(){return this._mesh.pickable}set opacity(e){this._mesh.opacity=e}get opacity(){return this._mesh.opacity}_updatePlaneSizeFromImage(){const e=.5*this._size,t=this._imageSize[0],s=this._imageSize[1],n=s/t;this._geometry.positions=t>s?[e,e*n,0,-e,e*n,0,-e,-e*n,0,e,-e*n,0]:[e/n,e,0,-e/n,e,0,-e/n,-e,0,e/n,-e,0]}}class eh{constructor(e){this._eye=A.vec3(),this._look=A.vec3(),this._up=A.vec3(),this._projection={},e&&this.saveCamera(e)}saveCamera(e){const t=e.camera,s=t.project;switch(this._eye.set(t.eye),this._look.set(t.look),this._up.set(t.up),t.projection){case"perspective":this._projection={projection:"perspective",fov:s.fov,fovAxis:s.fovAxis,near:s.near,far:s.far};break;case"ortho":this._projection={projection:"ortho",scale:s.scale,near:s.near,far:s.far};break;case"frustum":this._projection={projection:"frustum",left:s.left,right:s.right,top:s.top,bottom:s.bottom,near:s.near,far:s.far};break;case"custom":this._projection={projection:"custom",matrix:s.matrix.slice()}}}restoreCamera(e,t){const s=e.camera,n=this._projection;function i(){switch(n.type){case"perspective":s.perspective.fov=n.fov,s.perspective.fovAxis=n.fovAxis,s.perspective.near=n.near,s.perspective.far=n.far;break;case"ortho":s.ortho.scale=n.scale,s.ortho.near=n.near,s.ortho.far=n.far;break;case"frustum":s.frustum.left=n.left,s.frustum.right=n.right,s.frustum.top=n.top,s.frustum.bottom=n.bottom,s.frustum.near=n.near,s.frustum.far=n.far;break;case"custom":s.customProjection.matrix=n.matrix}}t?e.viewer.cameraFlight.flyTo({eye:this._eye,look:this._look,up:this._up,orthoScale:n.scale,projection:n.projection},(()=>{i(),t()})):(s.eye=this._eye,s.look=this._look,s.up=this._up,i(),s.projection=n.projection)}}const th=A.vec3();class sh{constructor(e){if(this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsOpacity=[],this.numObjects=0,e){const t=e.metaScene.scene;this.saveObjects(t,e)}}saveObjects(e,t,s){this.numObjects=0,this._mask=s?g.apply(s,{}):null;const n=!s||s.visible,i=!s||s.edges,a=!s||s.xrayed,r=!s||s.highlighted,l=!s||s.selected,o=!s||s.clippable,c=!s||s.pickable,u=!s||s.colorize,h=!s||s.opacity,p=t.metaObjects,A=e.objects;for(let e=0,t=p.length;e1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=A.vec3();return t[0]=A.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=A.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=A.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}}class rh extends Bu{constructor(e,t={}){super(e,t),this._cachedLengths=[],this._dirty=!0,this._curves=[],this._t=0,this._dirtySubs=[],this._destroyedSubs=[],this.curves=t.curves||[],this.t=t.t}addCurve(e){this._curves.push(e),this._dirty=!0}set curves(e){var t,s,n;for(e=e||[],s=0,n=this._curves.length;s1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}get length(){var e=this._getCurveLengths();return e[e.length-1]}getPoint(e){for(var t,s=e*this.length,n=this._getCurveLengths(),i=0;i=s){var a=1-(n[i]-s)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}_getCurveLengths(){if(!this._dirty)return this._cachedLengths;var e,t=[],s=0,n=this._curves.length;for(e=0;e1?1:e}get t(){return this._t}get point(){return this.getPoint(this._t)}getPoint(e){var t=A.vec3();return t[0]=A.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=A.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=A.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}getJSON(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}}class oh extends S{constructor(e,t={}){super(e,t),this._skyboxMesh=new ui(this,{geometry:new Gt(this,{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Wt(this,{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new ki(this,{src:t.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:t.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),this.size=t.size,this.active=t.active}set size(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}get size(){return this._size}set active(e){this._skyboxMesh.visible=e}get active(){return this._skyboxMesh.visible}}class ch{transcode(e,t,s={}){}destroy(){}}const uh=A.vec4(),hh=A.vec4(),ph=A.vec3(),Ah=A.vec3(),dh=A.vec3(),fh=A.vec4(),Ih=A.vec4(),yh=A.vec4();class mh{constructor(e){this._scene=e}dollyToCanvasPos(e,t,s){let n=!1;const i=this._scene.camera;if(e){const t=A.subVec3(e,i.eye,ph);n=A.lenVec3(t){this._cameraDirty=!0})),this._onProjMatrix=this._scene.camera.on("projMatrix",(()=>{this._cameraDirty=!0})),this._onTick=this._scene.on("tick",(()=>{this.updatePivotElement(),this.updatePivotSphere()}))}createPivotSphere(){const e=this.getPivotPos(),t=A.vec3();A.decomposeMat4(A.inverseMat4(this._scene.viewer.camera.viewMatrix,A.mat4()),t,A.vec4(),A.vec3());const s=A.distVec3(t,e);let n=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(n/=this._scene.camera.ortho.scale/2),W(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new Ki(this._scene,Ai({radius:n})),this._pivotSphere=new ui(this._scene,{geometry:this._pivotSphereGeometry,material:this._pivotSphereMaterial,pickable:!1,position:this._rtcPos,rtcCenter:this._rtcCenter})}destroyPivotSphere(){this._pivotSphere&&(this._pivotSphere.destroy(),this._pivotSphere=null),this._pivotSphereGeometry&&(this._pivotSphereGeometry.destroy(),this._pivotSphereGeometry=null)}updatePivotElement(){const e=this._scene.camera,t=this._scene.canvas;if(this._pivoting&&this._cameraDirty){A.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,A.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const s=t.boundary,n=s[2],i=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*n/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*i/2);let a=t._lastBoundingClientRect;if(!a||t._canvasSizeChanged){const e=t.canvas;a=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(a.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(a.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(W(this.getPivotPos(),this._rtcCenter,this._rtcPos),A.compareVec3(this._rtcPos,this._pivotSphere.position)||(this.destroyPivotSphere(),this.createPivotSphere()))}setPivotElement(e){this._pivotElement=e}enablePivotSphere(e={}){this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);const t=e.color||[1,0,0];this._pivotSphereMaterial=new Wt(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}disablePivotSphere(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}startPivot(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;const e=this._scene.camera;let t=A.lookAtMat4v(e.eye,e.look,e.worldUp);A.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const s=this.getPivotPos();this._cameraOffset[2]+=A.distVec3(e.eye,s),t=A.inverseMat4(t);const n=A.transformVec3(t,this._cameraOffset),i=A.vec3();if(A.subVec3(e.eye,s,i),A.addVec3(i,n),e.zUp){const e=i[1];i[1]=i[2],i[2]=e}this._radius=A.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=A.normalizeVec3(A.subVec3(e.look,e.eye,vh)),s=A.cross3Vec3(t,e.worldUp,wh);return A.sqLenVec3(s)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,s=Math.abs(A.distVec3(this._scene.center,t.eye)),n=t.project.transposedMatrix,i=n.subarray(8,12),a=n.subarray(12),r=[0,0,-1,1],l=A.dotVec4(r,i)/A.dotVec4(r,a),o=Eh;t.project.unproject(e,l,Th,bh,o);const c=A.normalizeVec3(A.subVec3(o,t.eye,vh)),u=A.addVec3(t.eye,A.mulVec3Scalar(c,s,wh),gh);this.setPivotPos(u)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const s=this._scene.camera;var n=-e;const i=-t;1===s.worldUp[2]&&(n=-n),this._azimuth+=.01*-n,this._polar+=.01*i,this._polar=A.clamp(this._polar,.001,Math.PI-.001);const a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===s.worldUp[2]){const e=a[1];a[1]=a[2],a[2]=e}const r=A.lenVec3(A.subVec3(s.look,s.eye,A.vec3())),l=this.getPivotPos();A.addVec3(a,l);let o=A.lookAtMat4v(a,l,s.worldUp);o=A.inverseMat4(o);const c=A.transformVec3(o,this._cameraOffset);o[12]-=c[0],o[13]-=c[1],o[14]-=c[2];const u=[o[8],o[9],o[10]];s.eye=[o[12],o[13],o[14]],A.subVec3(s.eye,A.mulVec3Scalar(u,r),s.look),s.up=[o[4],o[5],o[6]],this.showPivot()}showPivot(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}hidePivot(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}endPivot(){this._pivoting=!1}destroy(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}class Ph{constructor(e,t){this._scene=e.scene,this._cameraControl=e,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=t,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=A.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}update(){if(!this._configs.pointerEnabled)return;if(!this.schedulePickEntity&&!this.schedulePickSurface)return;const e=`${~~this.pickCursorPos[0]}-${~~this.pickCursorPos[1]}-${this.scheduleSnapOrPick}-${this.schedulePickSurface}-${this.schedulePickEntity}`;if(this._lastHash===e)return;this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;const t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){const e=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});e&&(e.snappedToEdge||e.snappedToVertex)?(this.snapPickResult=e,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){const e=this.pickResult.canvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){const e=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(e[0]===this.pickCursorPos[0]&&e[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}fireEvents(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){const e=new Be;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){const e=this.pickResult.entity.id;this._lastPickedEntityId!==e&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=e)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}const Rh=A.vec2();class Ch{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController;let r,l,o,c=0,u=0,h=0,p=0,d=!1;const f=A.vec3();let I=!0;const y=this._scene.canvas.canvas,m=[];function v(e=!0){y.style.cursor="move",c=n.pointerCanvasPos[0],u=n.pointerCanvasPos[1],h=n.pointerCanvasPos[0],p=n.pointerCanvasPos[1],e&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(d=!0,f.set(a.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const n=t.keyCode;m[n]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:m[e.input.KEY_SHIFT]||s.planView?(r=!0,v()):(r=!0,v(!1));break;case 2:l=!0,v();break;case 3:o=!0,s.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!r&&!l&&!o)return;const t=e.canvas.boundary,a=t[2],h=t[3],p=n.pointerCanvasPos[0],I=n.pointerCanvasPos[1];if(m[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&l||s.panRightClick&&o){const t=p-c,s=I-u,n=e.camera;if("perspective"===n.projection){const a=Math.abs(d?A.lenVec3(A.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=1.5*t*a/h,i.panDeltaY+=1.5*s*a/h}else i.panDeltaX+=.5*n.ortho.scale*(t/h),i.panDeltaY+=.5*n.ortho.scale*(s/h)}else!r||l||o||s.planView||(s.firstPerson?(i.rotateDeltaY-=(p-c)/a*s.dragRotationRate/2,i.rotateDeltaX+=(I-u)/h*(s.dragRotationRate/4)):(i.rotateDeltaY-=(p-c)/a*(1.5*s.dragRotationRate),i.rotateDeltaX+=(I-u)/h*(1.5*s.dragRotationRate)));c=p,u=I}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&n.mouseover&&(I=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:r=!1,l=!1,o=!1}}),y.addEventListener("mouseup",this._mouseUpHandler=e=>{if(s.active&&s.pointerEnabled){if(3===e.which){!function(e,t){if(e){let s=e.target,n=0,i=0,a=0,r=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,a+=s.scrollLeft,r+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+a-n,t[1]=e.pageY+r-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Rh);const s=Rh[0],n=Rh[1];Math.abs(s-h)<3&&Math.abs(n-p)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Rh,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const w=1/60;let g=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var a=null!==g?t-g:0;g=t,a>.05&&(a=.05),a{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const r=i._isKeyDownForAction(i.AXIS_VIEW_RIGHT),l=i._isKeyDownForAction(i.AXIS_VIEW_BACK),o=i._isKeyDownForAction(i.AXIS_VIEW_LEFT),c=i._isKeyDownForAction(i.AXIS_VIEW_FRONT),u=i._isKeyDownForAction(i.AXIS_VIEW_TOP),h=i._isKeyDownForAction(i.AXIS_VIEW_BOTTOM);if(!(r||l||o||c||u||h))return;const p=e.aabb,d=A.getAABB3Diag(p);A.getAABB3Center(p,_h);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*A.DEGTORAD)),I=1.1*d;xh.orthoScale=I,r?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldRight,f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):l?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldForward,f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):o?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldRight,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):c?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldForward,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(a.worldUp)):u?(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldUp,f,Bh),Nh)),xh.look.set(_h),xh.up.set(A.normalizeVec3(A.mulVec3Scalar(a.worldForward,1,Oh),Sh))):h&&(xh.eye.set(A.addVec3(_h,A.mulVec3Scalar(a.worldUp,-f,Bh),Nh)),xh.look.set(_h),xh.up.set(A.normalizeVec3(A.mulVec3Scalar(a.worldForward,-1,Oh)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(_h),t.cameraFlight.duration>0?t.cameraFlight.flyTo(xh,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(xh),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Mh{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let o=!1,c=!1;const u=this._scene.canvas.canvas,h=s=>{let n;s&&s.worldPos&&(n=s.worldPos);const i=s&&s.entity?s.entity.aabb:e.aabb;if(n){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})},p=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(o||c)return;const i=l.hasSubs("hover"),r=l.hasSubs("hoverEnter"),u=l.hasSubs("hoverOut"),h=l.hasSubs("hoverOff"),p=l.hasSubs("hoverSurface"),A=l.hasSubs("hoverSnapOrSurface");if(i||r||u||h||p||A)if(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=p,a.scheduleSnapOrPick=A,a.update(),a.pickResult){if(a.pickResult.entity){const t=a.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),l.fire("hoverEnter",a.pickResult,!0),this._lastPickedEntityId=t)}l.fire("hover",a.pickResult,!0),(a.pickResult.worldPos||a.pickResult.snappedWorldPos)&&l.fire("hoverSurface",a.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(l.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),l.fire("hoverOff",{canvasPos:a.pickCursorPos},!0)});u.addEventListener("mousemove",p),u.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(o=!0),3===t.which&&(c=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(n.mouseDownClientX=t.clientX,n.mouseDownClientY=t.clientY,n.mouseDownCursorX=n.pointerCanvasPos[0],n.mouseDownCursorY=n.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickSurface=!0,a.update(),1===t.which))){const t=a.pickResult;t&&t.worldPos?(r.setPivotPos(t.worldPos),r.startPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),r.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(o=!1),3===e.which&&(c=!1),r.getPivoting()&&r.endPivot()}),u.addEventListener("mouseup",this._canvasMouseUpHandler=i=>{if(!s.active||!s.pointerEnabled)return;if(!(1===i.which))return;if(r.hidePivot(),Math.abs(i.clientX-n.mouseDownClientX)>3||Math.abs(i.clientY-n.mouseDownClientY)>3)return;const o=l.hasSubs("picked"),c=l.hasSubs("pickedNothing"),u=l.hasSubs("pickedSurface"),p=l.hasSubs("doublePicked"),d=l.hasSubs("doublePickedSurface"),f=l.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||p||d||f))return(o||c||u)&&(a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=!0,a.schedulePickSurface=u,a.update(),a.pickResult?(l.fire("picked",a.pickResult,!0),a.pickedSurface&&l.fire("pickedSurface",a.pickResult,!0)):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo,a.schedulePickSurface=u,a.update();const e=a.pickResult,i=a.pickedSurface;this._timeout=setTimeout((()=>{e?(l.fire("picked",e,!0),i&&(l.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):l.fire("pickedNothing",{canvasPos:n.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),a.pickCursorPos=n.pointerCanvasPos,a.schedulePickEntity=s.doublePickFlyTo||p||d,a.schedulePickSurface=a.schedulePickEntity&&d,a.update(),a.pickResult){if(l.fire("doublePicked",a.pickResult,!0),a.pickedSurface&&l.fire("doublePickedSurface",a.pickResult,!0),s.doublePickFlyTo&&(h(a.pickResult),!s.firstPerson&&s.followPointer)){const e=a.pickResult.entity.aabb,s=A.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(l.fire("doublePickedNothing",{canvasPos:n.pointerCanvasPos},!0),s.doublePickFlyTo&&(h(),!s.firstPerson&&s.followPointer)){const s=e.aabb,n=A.getAABB3Center(s);t.pivotController.setPivotPos(n),t.pivotController.startPivot()&&t.pivotController.showPivot()}this._clicks=0}},!1)}reset(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}destroy(){const e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}class Fh{constructor(e,t,s,n,i){this._scene=e;const a=e.input,r=[],l=e.canvas.canvas;let o=!0;this._onSceneMouseMove=a.on("mousemove",(()=>{o=!0})),this._onSceneKeyDown=a.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&n.mouseover&&(r[t]=!0,t===a.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=a.on("keyup",(n=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(r[n]=!1,n===a.KEY_SHIFT&&(l.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(l=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!n.mouseover)return;const c=t.cameraControl,u=l.deltaTime/1e3;if(!s.planView){const e=c._isKeyDownForAction(c.ROTATE_Y_POS,r),n=c._isKeyDownForAction(c.ROTATE_Y_NEG,r),a=c._isKeyDownForAction(c.ROTATE_X_POS,r),l=c._isKeyDownForAction(c.ROTATE_X_NEG,r),o=u*s.keyboardRotationRate;(e||n||a||l)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?i.rotateDeltaY+=o:n&&(i.rotateDeltaY-=o),a?i.rotateDeltaX+=o:l&&(i.rotateDeltaX-=o),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!r[a.KEY_CTRL]&&!r[a.KEY_ALT]){const e=c._isKeyDownForAction(c.DOLLY_BACKWARDS,r),a=c._isKeyDownForAction(c.DOLLY_FORWARDS,r);if(e||a){const r=u*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),a?i.dollyDelta-=r:e&&(i.dollyDelta+=r),o&&(n.followPointerDirty=!0,o=!1)}}const h=c._isKeyDownForAction(c.PAN_FORWARDS,r),p=c._isKeyDownForAction(c.PAN_BACKWARDS,r),A=c._isKeyDownForAction(c.PAN_LEFT,r),d=c._isKeyDownForAction(c.PAN_RIGHT,r),f=c._isKeyDownForAction(c.PAN_UP,r),I=c._isKeyDownForAction(c.PAN_DOWN,r),y=(r[a.KEY_ALT]?.3:1)*u*s.keyboardPanRate;(h||p||A||d||f||I)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),I?i.panDeltaY+=y:f&&(i.panDeltaY+=-y),d?i.panDeltaX+=-y:A&&(i.panDeltaX+=y),p?i.panDeltaZ+=y:h&&(i.panDeltaZ+=-y))}))}reset(){}destroy(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}const Hh=A.vec3();class Uh{constructor(e,t,s,n,i){this._scene=e;const a=e.camera,r=t.pickController,l=t.pivotController,o=t.panController;let c=1,u=1,h=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(i.dollyDelta)<.001&&(i.dollyDelta=0),Math.abs(i.rotateDeltaX)<.001&&(i.rotateDeltaX=0),Math.abs(i.rotateDeltaY)<.001&&(i.rotateDeltaY=0),0===i.rotateDeltaX&&0===i.rotateDeltaY||(i.dollyDelta=0),s.followPointer&&--c<=0&&(c=1,0!==i.dollyDelta)){if(0===i.rotateDeltaY&&0===i.rotateDeltaX&&s.followPointer&&n.followPointerDirty&&(r.pickCursorPos=n.pointerCanvasPos,r.schedulePickSurface=!0,r.update(),r.pickResult&&r.pickResult.worldPos?h=r.pickResult.worldPos:(u=1,h=null),n.followPointerDirty=!1),h){const t=Math.abs(A.lenVec3(A.subVec3(h,e.camera.eye,Hh)));u=t/s.dollyProximityThreshold}u{n.mouseover=!0}),a.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{n.mouseover=!1,a.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{jh(e,a,n.pointerCanvasPos)}),a.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(jh(e,a,n.pointerCanvasPos),n.mouseover=!0)}),a.addEventListener("mouseup",this._mouseUpHandler=e=>{s.active&&s.pointerEnabled})}reset(){}destroy(){const e=this._scene.canvas.canvas;document.removeEventListener("mousemove",this._mouseMoveHandler),e.removeEventListener("mouseenter",this._mouseEnterHandler),e.removeEventListener("mouseleave",this._mouseLeaveHandler),e.removeEventListener("mousedown",this._mouseDownHandler),e.removeEventListener("mouseup",this._mouseUpHandler)}}function jh(e,t,s){if(e){const{x:n,y:i}=t.getBoundingClientRect();s[0]=e.clientX-n,s[1]=e.clientY-i}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const Vh=function(e,t){if(e){let s=e.target,n=0,i=0;for(;s.offsetParent;)n+=s.offsetLeft,i+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-n,t[1]=e.pageY-i}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class kh{constructor(e,t,s,n,i){this._scene=e;const a=t.pickController,r=t.pivotController,l=A.vec2(),o=A.vec2(),c=A.vec2(),u=A.vec2(),h=[],p=this._scene.canvas.canvas;let d=0,f=!1;this._onTick=e.on("tick",(()=>{f=!1})),p.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!s.active||!s.pointerEnabled)return;t.preventDefault();const i=t.touches,o=t.changedTouches;for(n.touchStartTime=Date.now(),1===i.length&&1===o.length&&(Vh(i[0],l),s.followPointer&&(a.pickCursorPos=l,a.schedulePickSurface=!0,a.update(),s.planView||(a.picked&&a.pickedSurface&&a.pickResult&&a.pickResult.worldPos?(r.setPivotPos(a.pickResult.worldPos),!s.firstPerson&&r.startPivot()&&r.showPivot()):(s.smartPivot?r.setCanvasPivotPos(n.pointerCanvasPos):r.setPivotPos(e.camera.look),!s.firstPerson&&r.startPivot()&&r.showPivot()))));h.length{r.getPivoting()&&r.endPivot()}),p.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const r=e.canvas.boundary,l=r[2],p=r[3],I=t.touches;if(t.touches.length===d){if(1===d){Vh(I[0],o),A.subVec2(o,h[0],u);const t=u[0],a=u[1];if(null!==n.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(a)>s.longTapRadius)&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),s.planView){const n=e.camera;if("perspective"===n.projection){const r=Math.abs(e.camera.eyeLookDist)*Math.tan(n.perspective.fov/2*Math.PI/180);i.panDeltaX+=t*r/p*s.touchPanRate,i.panDeltaY+=a*r/p*s.touchPanRate}else i.panDeltaX+=.5*n.ortho.scale*(t/p)*s.touchPanRate,i.panDeltaY+=.5*n.ortho.scale*(a/p)*s.touchPanRate}else i.rotateDeltaY-=t/l*(1*s.dragRotationRate),i.rotateDeltaX+=a/p*(1.5*s.dragRotationRate)}else if(2===d){const t=I[0],r=I[1];Vh(t,o),Vh(r,c);const l=A.geometricMeanVec2(h[0],h[1]),u=A.geometricMeanVec2(o,c),d=A.vec2();A.subVec2(l,u,d);const f=d[0],y=d[1],m=e.camera,v=A.distVec2([t.pageX,t.pageY],[r.pageX,r.pageY]),w=(A.distVec2(h[0],h[1])-v)*s.touchDollyRate;if(i.dollyDelta=w,Math.abs(w)<1)if("perspective"===m.projection){const t=a.pickResult?a.pickResult.worldPos:e.center,n=Math.abs(A.lenVec3(A.subVec3(t,e.camera.eye,[])))*Math.tan(m.perspective.fov/2*Math.PI/180);i.panDeltaX-=f*n/p*s.touchPanRate,i.panDeltaY-=y*n/p*s.touchPanRate}else i.panDeltaX-=.5*m.ortho.scale*(f/p)*s.touchPanRate,i.panDeltaY-=.5*m.ortho.scale*(y/p)*s.touchPanRate;n.pointerCanvasPos=u}for(let e=0;e{let n;s&&s.worldPos&&(n=s.worldPos);const i=s?s.entity.aabb:e.aabb;if(n){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:i})}else t.cameraFlight.flyTo({aabb:i})};p.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null);const i=e.touches,a=e.changedTouches;if(l=Date.now(),1===i.length&&1===a.length){u=l,Qh(i[0],c);const a=c[0],r=c[1],o=i[0].pageX,h=i[0].pageY;n.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(o),Math.round(h)],canvasPos:[Math.round(a),Math.round(r)],event:e},!0),n.longTouchTimeout=null}),s.longTapTimeout)}else u=-1;for(;o.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),i=e.touches,l=e.changedTouches,p=r.hasSubs("pickedSurface");null!==n.longTouchTimeout&&(clearTimeout(n.longTouchTimeout),n.longTouchTimeout=null),0===i.length&&1===l.length&&u>-1&&t-u<150&&(h>-1&&u-h<325?(Qh(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=p,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("doublePicked",a.pickResult),a.pickedSurface&&r.fire("doublePickedSurface",a.pickResult),s.doublePickFlyTo&&d(a.pickResult)):(r.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),h=-1):A.distVec2(o[0],c)<4&&(Qh(l[0],a.pickCursorPos),a.schedulePickEntity=!0,a.schedulePickSurface=p,a.update(),a.pickResult?(a.pickResult.touchInput=!0,r.fire("picked",a.pickResult),a.pickedSurface&&r.fire("pickedSurface",a.pickResult)):r.fire("pickedNothing"),h=t),u=-1),o.length=i.length;for(let e=0,t=i.length;e{e.preventDefault()},this._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},this._states={pointerCanvasPos:A.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:A.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const s=this.scene;this._controllers={cameraControl:this,pickController:new Ph(this,this._configs),pivotController:new Dh(s,this._configs),panController:new mh(s),cameraFlight:new Uu(this,{duration:.5})},this._handlers=[new Gh(this.scene,this._controllers,this._configs,this._states,this._updates),new kh(this.scene,this._controllers,this._configs,this._states,this._updates),new Ch(this.scene,this._controllers,this._configs,this._states,this._updates),new Lh(this.scene,this._controllers,this._configs,this._states,this._updates),new Mh(this.scene,this._controllers,this._configs,this._states,this._updates),new Wh(this.scene,this._controllers,this._configs,this._states,this._updates),new Fh(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Uh(this.scene,this._controllers,this._configs,this._states,this._updates),this.navMode=t.navMode,t.planView&&(this.planView=t.planView),this.constrainVertical=t.constrainVertical,t.keyboardLayout?this.keyboardLayout=t.keyboardLayout:this.keyMap=t.keyMap,this.doublePickFlyTo=t.doublePickFlyTo,this.panRightClick=t.panRightClick,this.active=t.active,this.followPointer=t.followPointer,this.rotationInertia=t.rotationInertia,this.keyboardPanRate=t.keyboardPanRate,this.touchPanRate=t.touchPanRate,this.keyboardRotationRate=t.keyboardRotationRate,this.dragRotationRate=t.dragRotationRate,this.touchDollyRate=t.touchDollyRate,this.dollyInertia=t.dollyInertia,this.dollyProximityThreshold=t.dollyProximityThreshold,this.dollyMinSpeed=t.dollyMinSpeed,this.panInertia=t.panInertia,this.pointerEnabled=!0,this.keyboardDollyRate=t.keyboardDollyRate,this.mouseWheelDollyRate=t.mouseWheelDollyRate}set keyMap(e){if(e=e||"qwerty",g.isString(e)){const t=this.scene.input,s={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":s[this.PAN_LEFT]=[t.KEY_A],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_Z],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":s[this.PAN_LEFT]=[t.KEY_Q],s[this.PAN_RIGHT]=[t.KEY_D],s[this.PAN_UP]=[t.KEY_W],s[this.PAN_DOWN]=[t.KEY_X],s[this.PAN_BACKWARDS]=[],s[this.PAN_FORWARDS]=[],s[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],s[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],s[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],s[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],s[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],s[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],s[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],s[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],s[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],s[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],s[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],s[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=s}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const s=this._keyMap[e];if(!s)return!1;t||(t=this.scene.input.keyDown);for(let e=0,n=s.length;e0?Zh(t):null,r=s&&s.length>0?Zh(s):null,l=e=>{if(!e)return;var t=!0;(r&&r[e.type]||a&&!a[e.type])&&(t=!1),t&&n.push(e.id);const s=e.children;if(s)for(var i=0,o=s.length;i * Copyright (c) 2022 Niklas von Hertzen diff --git a/dist/xeokit-sdk.min.es5.js b/dist/xeokit-sdk.min.es5.js index 6032126cda..e99925f34b 100644 --- a/dist/xeokit-sdk.min.es5.js +++ b/dist/xeokit-sdk.min.es5.js @@ -1,4 +1,4 @@ -var e,t=o().mark(OE),n=o().mark(SE),r=o().mark(VD);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var o=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(o&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;b(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:P(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function l(e,t,n,r,i,a,s){try{var o=e[a](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,i)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function s(e){l(a,r,i,s,o,"next",e)}function o(e){l(a,r,i,s,o,"throw",e)}s(void 0)}))}}function c(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=A(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,a=[],s=!0,o=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){o=!0,i=e}finally{try{s||null==n.return||n.return()}finally{if(o)throw i}}return a}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};b(this,e),this._id=k.addItem(),this._context=null,this._enabled=!1,this._itemsCfg=[],this._rootMenu=null,this._menuList=[],this._menuMap={},this._itemList=[],this._itemMap={},this._shown=!1,this._nextId=0,this._eventSubs={},!1!==n.hideOnMouseDown&&(document.addEventListener("mousedown",(function(e){e.target.classList.contains("xeokit-context-menu-item")||t.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=function(e){e.target.classList.contains("xeokit-context-menu-item")||t.hide()})),n.items&&(this.items=n.items),this._hideOnAction=!1!==n.hideOnAction,this.context=n.context,this.enabled=!1!==n.enabled,this.hide()}return P(e,[{key:"on",value:function(e,t){var n=this._eventSubs[e];n||(n=[],this._eventSubs[e]=n),n.push(t)}},{key:"fire",value:function(e,t){var n=this._eventSubs[e];if(n)for(var r=0,i=n.length;r0,c=t._getNextId(),f=a.getTitle||function(){return a.title||""},p=a.doAction||a.callback||function(){},A=a.getEnabled||function(){return!0},d=a.getShown||function(){return!0},v=new Q(c,f,p,A,d);if(v.parentMenu=i,l.items.push(v),u){var h=e(s);v.subMenu=h,h.parentItem=v}t._itemList.push(v),t._itemMap[v.id]=v},c=0,f=o.length;c'),r.push("
    "),n)for(var i=0,a=n.length;i'+A+" [MORE]"):r.push('
  • '+A+"
  • ")}}r.push("
"),r.push("");var d=r.join("");document.body.insertAdjacentHTML("beforeend",d);var v=document.querySelector("."+e.id);e.menuElement=v,v.style["border-radius"]="4px",v.style.display="none",v.style["z-index"]=3e5,v.style.background="white",v.style.border="1px solid black",v.style["box-shadow"]="0 4px 5px 0 gray",v.oncontextmenu=function(e){e.preventDefault()};var h=this,I=null;if(n)for(var y=0,m=n.length;ywindow.innerWidth?h._showMenu(t.id,a.left-200,a.top-1):h._showMenu(t.id,a.right-5,a.top-1),I=t}}else I&&(h._hideMenu(I.id),I=null)})),i||(r.itemElement.addEventListener("click",(function(e){e.preventDefault(),h._context&&!1!==r.enabled&&(r.doAction&&r.doAction(h._context),t._hideOnAction?h.hide():(h._updateItemsTitles(),h._updateItemsEnabledStatus()))})),r.itemElement.addEventListener("mouseenter",(function(e){e.preventDefault(),!1!==r.enabled&&r.doHover&&r.doHover(h._context)})))},E=0,T=w.length;Ewindow.innerHeight&&(n=window.innerHeight-r),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=n+"px"}},{key:"_hideMenuElement",value:function(e){e.style.display="none"}}]),e}(),z=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this.viewer=t,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=r.zoomLevel||2,this._active=!1!==r.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(function(){n._active&&n._visible&&n.update()}))}return P(e,[{key:"update",value:function(){if(this._active&&this._visible&&this._canvasPos){var e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),n=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",n&&(this._lensPosToggle?this._lensContainer.style.marginTop="".concat(t.bottom-t.top-this._lensCanvas.height-85,"px"):this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);var r=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-r/2,this._canvasPos[1]-r/2,r,r,0,0,this._lensCanvas.width,this._lensCanvas.height);var i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){var a=this._snappedCanvasPos[0]-this._canvasPos[0],s=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft="".concat(i[0]+a*this._zoomLevel-10,"px"),this._lensCursorDiv.style.marginTop="".concat(i[1]+s*this._zoomLevel-10,"px")}else this._lensCursorDiv.style.marginLeft="".concat(i[0]-10,"px"),this._lensCursorDiv.style.marginTop="".concat(i[1]-10,"px")}}},{key:"zoomFactor",get:function(){return this._zoomFactor},set:function(e){this._zoomFactor=e,this.update()}},{key:"canvasPos",get:function(){return this._canvasPos},set:function(e){this._canvasPos=e,this.update()}},{key:"snappedCanvasPos",get:function(){return this._snappedCanvasPos},set:function(e){this._snappedCanvasPos=e,this.update()}},{key:"snapped",get:function(){return this._snapped},set:function(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}},{key:"active",get:function(){return this._active},set:function(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}},{key:"destroy",value:function(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}}]),e}(),K=!0,Y=K?Float64Array:Float32Array,X=new Y(3),q=new Y(16),J=new Y(16),Z=new Y(4),$={setDoublePrecisionEnabled:function(e){Y=(K=e)?Float64Array:Float32Array},getDoublePrecisionEnabled:function(){return K},MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId:function(e,t){var n=t.indexOf("#");return n===e.length&&t.startsWith(e)?t.substring(n+1):t},globalizeObjectId:function(e,t){return e+"#"+t},safeInv:function(e){var t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:function(e){return new Y(e||2)},vec3:function(e){return new Y(e||3)},vec4:function(e){return new Y(e||4)},mat3:function(e){return new Y(e||9)},mat3ToMat4:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Y(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},mat4:function(e){return new Y(e||16)},mat4ToMat3:function(e,t){},doublesToFloats:function(e,t,n){for(var r=new Y(2),i=0,a=e.length;i>8&255]+e[t>>16&255]+e[t>>24&255],"-").concat(e[255&n]).concat(e[n>>8&255],"-").concat(e[n>>16&15|64]).concat(e[n>>24&255],"-").concat(e[63&r|128]).concat(e[r>>8&255],"-").concat(e[r>>16&255]).concat(e[r>>24&255]).concat(e[255&i]).concat(e[i>>8&255]).concat(e[i>>16&255]).concat(e[i>>24&255])}}(),clamp:function(e,t,n){return Math.max(t,Math.min(n,e))},fmod:function(e,t){if(e1?1:n,Math.acos(n)},vec3FromMat4Scale:function(){var e=new Y(3);return function(t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],n[0]=$.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],n[1]=$.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],n[2]=$.lenVec3(e),n}}(),vecToArray:function(){function e(e){return Math.round(1e5*e)/1e5}return function(t){for(var n=0,r=(t=Array.prototype.slice.call(t)).length;n0&&void 0!==arguments[0]?arguments[0]:new Y(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},identityMat3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Y(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},isIdentityMat4:function(e){return 1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]},negateMat4:function(e,t){return t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},addMat4:function(e,t,n){return n||(n=e),n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},addMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]+t,n[1]=e[1]+t,n[2]=e[2]+t,n[3]=e[3]+t,n[4]=e[4]+t,n[5]=e[5]+t,n[6]=e[6]+t,n[7]=e[7]+t,n[8]=e[8]+t,n[9]=e[9]+t,n[10]=e[10]+t,n[11]=e[11]+t,n[12]=e[12]+t,n[13]=e[13]+t,n[14]=e[14]+t,n[15]=e[15]+t,n},addScalarMat4:function(e,t,n){return $.addMat4Scalar(t,e,n)},subMat4:function(e,t,n){return n||(n=e),n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},subMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]-t,n[3]=e[3]-t,n[4]=e[4]-t,n[5]=e[5]-t,n[6]=e[6]-t,n[7]=e[7]-t,n[8]=e[8]-t,n[9]=e[9]-t,n[10]=e[10]-t,n[11]=e[11]-t,n[12]=e[12]-t,n[13]=e[13]-t,n[14]=e[14]-t,n[15]=e[15]-t,n},subScalarMat4:function(e,t,n){return n||(n=t),n[0]=e-t[0],n[1]=e-t[1],n[2]=e-t[2],n[3]=e-t[3],n[4]=e-t[4],n[5]=e-t[5],n[6]=e-t[6],n[7]=e-t[7],n[8]=e-t[8],n[9]=e-t[9],n[10]=e-t[10],n[11]=e-t[11],n[12]=e-t[12],n[13]=e-t[13],n[14]=e-t[14],n[15]=e-t[15],n},mulMat4:function(e,t,n){n||(n=e);var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],f=e[8],p=e[9],A=e[10],d=e[11],v=e[12],h=e[13],I=e[14],y=e[15],m=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],L=t[15];return n[0]=m*r+w*o+g*f+E*v,n[1]=m*i+w*l+g*p+E*h,n[2]=m*a+w*u+g*A+E*I,n[3]=m*s+w*c+g*d+E*y,n[4]=T*r+b*o+D*f+P*v,n[5]=T*i+b*l+D*p+P*h,n[6]=T*a+b*u+D*A+P*I,n[7]=T*s+b*c+D*d+P*y,n[8]=R*r+C*o+_*f+B*v,n[9]=R*i+C*l+_*p+B*h,n[10]=R*a+C*u+_*A+B*I,n[11]=R*s+C*c+_*d+B*y,n[12]=O*r+S*o+N*f+L*v,n[13]=O*i+S*l+N*p+L*h,n[14]=O*a+S*u+N*A+L*I,n[15]=O*s+S*c+N*d+L*y,n},mulMat3:function(e,t,n){n||(n=new Y(9));var r=e[0],i=e[3],a=e[6],s=e[1],o=e[4],l=e[7],u=e[2],c=e[5],f=e[8],p=t[0],A=t[3],d=t[6],v=t[1],h=t[4],I=t[7],y=t[2],m=t[5],w=t[8];return n[0]=r*p+i*v+a*y,n[3]=r*A+i*h+a*m,n[6]=r*d+i*I+a*w,n[1]=s*p+o*v+l*y,n[4]=s*A+o*h+l*m,n[7]=s*d+o*I+l*w,n[2]=u*p+c*v+f*y,n[5]=u*A+c*h+f*m,n[8]=u*d+c*I+f*w,n},mulMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},mulMat4v4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=t[0],i=t[1],a=t[2],s=t[3];return n[0]=e[0]*r+e[4]*i+e[8]*a+e[12]*s,n[1]=e[1]*r+e[5]*i+e[9]*a+e[13]*s,n[2]=e[2]*r+e[6]*i+e[10]*a+e[14]*s,n[3]=e[3]*r+e[7]*i+e[11]*a+e[15]*s,n},transposeMat4:function(e,t){var n=e[4],r=e[14],i=e[8],a=e[13],s=e[12],o=e[9];if(!t||e===t){var l=e[1],u=e[2],c=e[3],f=e[6],p=e[7],A=e[11];return e[1]=n,e[2]=i,e[3]=s,e[4]=l,e[6]=o,e[7]=a,e[8]=u,e[9]=f,e[11]=r,e[12]=c,e[13]=p,e[14]=A,e}return t[0]=e[0],t[1]=n,t[2]=i,t[3]=s,t[4]=e[1],t[5]=e[5],t[6]=o,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=r,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3:function(e,t){if(t===e){var n=e[1],r=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4:function(e){var t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],f=e[10],p=e[11],A=e[12],d=e[13],v=e[14],h=e[15];return A*c*o*i-u*d*o*i-A*s*f*i+a*d*f*i+u*s*v*i-a*c*v*i-A*c*r*l+u*d*r*l+A*n*f*l-t*d*f*l-u*n*v*l+t*c*v*l+A*s*r*p-a*d*r*p-A*n*o*p+t*d*o*p+a*n*v*p-t*s*v*p-u*s*r*h+a*c*r*h+u*n*o*h-t*c*o*h-a*n*f*h+t*s*f*h},inverseMat4:function(e,t){t||(t=e);var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],f=e[9],p=e[10],A=e[11],d=e[12],v=e[13],h=e[14],I=e[15],y=n*o-r*s,m=n*l-i*s,w=n*u-a*s,g=r*l-i*o,E=r*u-a*o,T=i*u-a*l,b=c*v-f*d,D=c*h-p*d,P=c*I-A*d,R=f*h-p*v,C=f*I-A*v,_=p*I-A*h,B=1/(y*_-m*C+w*R+g*P-E*D+T*b);return t[0]=(o*_-l*C+u*R)*B,t[1]=(-r*_+i*C-a*R)*B,t[2]=(v*T-h*E+I*g)*B,t[3]=(-f*T+p*E-A*g)*B,t[4]=(-s*_+l*P-u*D)*B,t[5]=(n*_-i*P+a*D)*B,t[6]=(-d*T+h*w-I*m)*B,t[7]=(c*T-p*w+A*m)*B,t[8]=(s*C-o*P+u*b)*B,t[9]=(-n*C+r*P-a*b)*B,t[10]=(d*E-v*w+I*y)*B,t[11]=(-c*E+f*w-A*y)*B,t[12]=(-s*R+o*D-l*b)*B,t[13]=(n*R-r*D+i*b)*B,t[14]=(-d*g+v*m-h*y)*B,t[15]=(c*g-f*m+p*y)*B,t},traceMat4:function(e){return e[0]+e[5]+e[10]+e[15]},translationMat4v:function(e,t){var n=t||$.identityMat4();return n[12]=e[0],n[13]=e[1],n[14]=e[2],n},translationMat3v:function(e,t){var n=t||$.identityMat3();return n[6]=e[0],n[7]=e[1],n},translationMat4c:(H=new Y(3),function(e,t,n,r){return H[0]=e,H[1]=t,H[2]=n,$.translationMat4v(H,r)}),translationMat4s:function(e,t){return $.translationMat4c(e,e,e,t)},translateMat4v:function(e,t){return $.translateMat4c(e[0],e[1],e[2],t)},translateMat4c:function(e,t,n,r){var i=r[3];r[0]+=i*e,r[1]+=i*t,r[2]+=i*n;var a=r[7];r[4]+=a*e,r[5]+=a*t,r[6]+=a*n;var s=r[11];r[8]+=s*e,r[9]+=s*t,r[10]+=s*n;var o=r[15];return r[12]+=o*e,r[13]+=o*t,r[14]+=o*n,r},setMat4Translation:function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=e[15],n},rotationMat4v:function(e,t,n){var r,i,a,s,o,l,u=$.normalizeVec4([t[0],t[1],t[2],0],[]),c=Math.sin(e),f=Math.cos(e),p=1-f,A=u[0],d=u[1],v=u[2];return r=A*d,i=d*v,a=v*A,s=A*c,o=d*c,l=v*c,(n=n||$.mat4())[0]=p*A*A+f,n[1]=p*r+l,n[2]=p*a-o,n[3]=0,n[4]=p*r-l,n[5]=p*d*d+f,n[6]=p*i+s,n[7]=0,n[8]=p*a+o,n[9]=p*i-s,n[10]=p*v*v+f,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},rotationMat4c:function(e,t,n,r,i){return $.rotationMat4v(e,[t,n,r],i)},scalingMat4v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.identityMat4();return t[0]=e[0],t[5]=e[1],t[10]=e[2],t},scalingMat3v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.identityMat3();return t[0]=e[0],t[4]=e[1],t},scalingMat4c:function(){var e=new Y(3);return function(t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,$.scalingMat4v(e,i)}}(),scaleMat4c:function(e,t,n,r){return r[0]*=e,r[4]*=t,r[8]*=n,r[1]*=e,r[5]*=t,r[9]*=n,r[2]*=e,r[6]*=t,r[10]*=n,r[3]*=e,r[7]*=t,r[11]*=n,r},scaleMat4v:function(e,t){var n=e[0],r=e[1],i=e[2];return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,t},scalingMat4s:function(e){return $.scalingMat4c(e,e,e)},rotationTranslationMat4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.mat4(),r=e[0],i=e[1],a=e[2],s=e[3],o=r+r,l=i+i,u=a+a,c=r*o,f=r*l,p=r*u,A=i*l,d=i*u,v=a*u,h=s*o,I=s*l,y=s*u;return n[0]=1-(A+v),n[1]=f+y,n[2]=p-I,n[3]=0,n[4]=f-y,n[5]=1-(c+v),n[6]=d+h,n[7]=0,n[8]=p+I,n[9]=d-h,n[10]=1-(c+A),n[11]=0,n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n},mat4ToEuler:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=$.clamp,i=e[0],a=e[4],s=e[8],o=e[1],l=e[5],u=e[9],c=e[2],f=e[6],p=e[10];return"XYZ"===t?(n[1]=Math.asin(r(s,-1,1)),Math.abs(s)<.99999?(n[0]=Math.atan2(-u,p),n[2]=Math.atan2(-a,i)):(n[0]=Math.atan2(f,l),n[2]=0)):"YXZ"===t?(n[0]=Math.asin(-r(u,-1,1)),Math.abs(u)<.99999?(n[1]=Math.atan2(s,p),n[2]=Math.atan2(o,l)):(n[1]=Math.atan2(-c,i),n[2]=0)):"ZXY"===t?(n[0]=Math.asin(r(f,-1,1)),Math.abs(f)<.99999?(n[1]=Math.atan2(-c,p),n[2]=Math.atan2(-a,l)):(n[1]=0,n[2]=Math.atan2(o,i))):"ZYX"===t?(n[1]=Math.asin(-r(c,-1,1)),Math.abs(c)<.99999?(n[0]=Math.atan2(f,p),n[2]=Math.atan2(o,i)):(n[0]=0,n[2]=Math.atan2(-a,l))):"YZX"===t?(n[2]=Math.asin(r(o,-1,1)),Math.abs(o)<.99999?(n[0]=Math.atan2(-u,l),n[1]=Math.atan2(-c,i)):(n[0]=0,n[1]=Math.atan2(s,p))):"XZY"===t&&(n[2]=Math.asin(-r(a,-1,1)),Math.abs(a)<.99999?(n[0]=Math.atan2(f,l),n[1]=Math.atan2(s,i)):(n[0]=Math.atan2(-u,p),n[1]=0)),n},composeMat4:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:$.mat4();return $.quaternionToRotationMat4(t,r),$.scaleMat4v(n,r),$.translateMat4v(e,r),r},decomposeMat4:function(){var e=new Y(3),t=new Y(16);return function(n,r,i,a){e[0]=n[0],e[1]=n[1],e[2]=n[2];var s=$.lenVec3(e);e[0]=n[4],e[1]=n[5],e[2]=n[6];var o=$.lenVec3(e);e[8]=n[8],e[9]=n[9],e[10]=n[10];var l=$.lenVec3(e);$.determinantMat4(n)<0&&(s=-s),r[0]=n[12],r[1]=n[13],r[2]=n[14],t.set(n);var u=1/s,c=1/o,f=1/l;return t[0]*=u,t[1]*=u,t[2]*=u,t[4]*=c,t[5]*=c,t[6]*=c,t[8]*=f,t[9]*=f,t[10]*=f,$.mat4ToQuaternion(t,i),a[0]=s,a[1]=o,a[2]=l,this}}(),getColMat4:function(e,t){var n=4*t;return[e[n],e[n+1],e[n+2],e[n+3]]},setRowMat4:function(e,t,n){e[t]=n[0],e[t+4]=n[1],e[t+8]=n[2],e[t+12]=n[3]},lookAtMat4v:function(e,t,n,r){r||(r=$.mat4());var i,a,s,o,l,u,c,f,p,A,d=e[0],v=e[1],h=e[2],I=n[0],y=n[1],m=n[2],w=t[0],g=t[1],E=t[2];return d===w&&v===g&&h===E?$.identityMat4():(i=d-w,a=v-g,s=h-E,o=y*(s*=A=1/Math.sqrt(i*i+a*a+s*s))-m*(a*=A),l=m*(i*=A)-I*s,u=I*a-y*i,(A=Math.sqrt(o*o+l*l+u*u))?(o*=A=1/A,l*=A,u*=A):(o=0,l=0,u=0),c=a*u-s*l,f=s*o-i*u,p=i*l-a*o,(A=Math.sqrt(c*c+f*f+p*p))?(c*=A=1/A,f*=A,p*=A):(c=0,f=0,p=0),r[0]=o,r[1]=c,r[2]=i,r[3]=0,r[4]=l,r[5]=f,r[6]=a,r[7]=0,r[8]=u,r[9]=p,r[10]=s,r[11]=0,r[12]=-(o*d+l*v+u*h),r[13]=-(c*d+f*v+p*h),r[14]=-(i*d+a*v+s*h),r[15]=1,r)},lookAtMat4c:function(e,t,n,r,i,a,s,o,l){return $.lookAtMat4v([e,t,n],[r,i,a],[s,o,l],[])},orthoMat4c:function(e,t,n,r,i,a,s){s||(s=$.mat4());var o=t-e,l=r-n,u=a-i;return s[0]=2/o,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=2/l,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=-2/u,s[11]=0,s[12]=-(e+t)/o,s[13]=-(r+n)/l,s[14]=-(a+i)/u,s[15]=1,s},frustumMat4v:function(e,t,n){n||(n=$.mat4());var r=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];$.addVec4(i,r,q),$.subVec4(i,r,J);var a=2*r[2],s=J[0],o=J[1],l=J[2];return n[0]=a/s,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a/o,n[6]=0,n[7]=0,n[8]=q[0]/s,n[9]=q[1]/o,n[10]=-q[2]/l,n[11]=-1,n[12]=0,n[13]=0,n[14]=-a*i[2]/l,n[15]=0,n},frustumMat4:function(e,t,n,r,i,a,s){s||(s=$.mat4());var o=t-e,l=r-n,u=a-i;return s[0]=2*i/o,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=2*i/l,s[6]=0,s[7]=0,s[8]=(t+e)/o,s[9]=(r+n)/l,s[10]=-(a+i)/u,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i*2/u,s[15]=0,s},perspectiveMat4:function(e,t,n,r,i){var a=[],s=[];return a[2]=n,s[2]=r,s[1]=a[2]*Math.tan(e/2),a[1]=-s[1],s[0]=s[1]*t,a[0]=-s[0],$.frustumMat4v(a,s,i)},compareMat4:function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]},transformPoint3:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec3(),r=t[0],i=t[1],a=t[2];return n[0]=e[0]*r+e[4]*i+e[8]*a+e[12],n[1]=e[1]*r+e[5]*i+e[9]*a+e[13],n[2]=e[2]*r+e[6]*i+e[10]*a+e[14],n},transformPoint4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4();return n[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],n[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],n[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],n[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],n},transformPoints3:function(e,t,n){for(var r,i,a,s,o,l=n||[],u=t.length,c=e[0],f=e[1],p=e[2],A=e[3],d=e[4],v=e[5],h=e[6],I=e[7],y=e[8],m=e[9],w=e[10],g=e[11],E=e[12],T=e[13],b=e[14],D=e[15],P=0;P2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2];e[3];var f=e[4],p=e[5],A=e[6];e[7];var d=e[8],v=e[9],h=e[10];e[11];var I=e[12],y=e[13],m=e[14];for(e[15],n=0;n2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2],f=e[3],p=e[4],A=e[5],d=e[6],v=e[7],h=e[8],I=e[9],y=e[10],m=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n3&&void 0!==arguments[3]?arguments[3]:e,i=Math.cos(n),a=Math.sin(n),s=e[0]-t[0],o=e[1]-t[1];return r[0]=s*i-o*a+t[0],r[1]=s*a+o*i+t[1],e},rotateVec3X:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},rotateVec3Y:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},rotateVec3Z:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},projectVec4:function(e,t){var n=1/e[3];return(t=t||$.vec2())[0]=e[0]*n,t[1]=e[1]*n,t},unprojectVec3:(M=new Y(16),x=new Y(16),F=new Y(16),function(e,t,n,r){return this.transformVec3(this.mulMat4(this.inverseMat4(t,M),this.inverseMat4(n,x),F),e,r)}),lerpVec3:function(e,t,n,r,i,a){var s=a||$.vec3(),o=(e-t)/(n-t);return s[0]=r[0]+o*(i[0]-r[0]),s[1]=r[1]+o*(i[1]-r[1]),s[2]=r[2]+o*(i[2]-r[2]),s},lerpMat4:function(e,t,n,r,i,a){var s=a||$.mat4(),o=(e-t)/(n-t);return s[0]=r[0]+o*(i[0]-r[0]),s[1]=r[1]+o*(i[1]-r[1]),s[2]=r[2]+o*(i[2]-r[2]),s[3]=r[3]+o*(i[3]-r[3]),s[4]=r[4]+o*(i[4]-r[4]),s[5]=r[5]+o*(i[5]-r[5]),s[6]=r[6]+o*(i[6]-r[6]),s[7]=r[7]+o*(i[7]-r[7]),s[8]=r[8]+o*(i[8]-r[8]),s[9]=r[9]+o*(i[9]-r[9]),s[10]=r[10]+o*(i[10]-r[10]),s[11]=r[11]+o*(i[11]-r[11]),s[12]=r[12]+o*(i[12]-r[12]),s[13]=r[13]+o*(i[13]-r[13]),s[14]=r[14]+o*(i[14]-r[14]),s[15]=r[15]+o*(i[15]-r[15]),s},flatten:function(e){var t,n,r,i,a,s=[];for(t=0,n=e.length;t0&&void 0!==arguments[0]?arguments[0]:$.vec4();return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},eulerToQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=e[0]*$.DEGTORAD/2,i=e[1]*$.DEGTORAD/2,a=e[2]*$.DEGTORAD/2,s=Math.cos(r),o=Math.cos(i),l=Math.cos(a),u=Math.sin(r),c=Math.sin(i),f=Math.sin(a);return"XYZ"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l-u*c*f):"YXZ"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l+u*c*f):"ZXY"===t?(n[0]=u*o*l-s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l-u*c*f):"ZYX"===t?(n[0]=u*o*l-s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l+u*c*f):"YZX"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l-u*c*f):"XZY"===t&&(n[0]=u*o*l-s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l+u*c*f),n},mat4ToQuaternion:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),r=e[0],i=e[4],a=e[8],s=e[1],o=e[5],l=e[9],u=e[2],c=e[6],f=e[10],p=r+o+f;return p>0?(t=.5/Math.sqrt(p+1),n[3]=.25/t,n[0]=(c-l)*t,n[1]=(a-u)*t,n[2]=(s-i)*t):r>o&&r>f?(t=2*Math.sqrt(1+r-o-f),n[3]=(c-l)/t,n[0]=.25*t,n[1]=(i+s)/t,n[2]=(a+u)/t):o>f?(t=2*Math.sqrt(1+o-r-f),n[3]=(a-u)/t,n[0]=(i+s)/t,n[1]=.25*t,n[2]=(l+c)/t):(t=2*Math.sqrt(1+f-r-o),n[3]=(s-i)/t,n[0]=(a+u)/t,n[1]=(l+c)/t,n[2]=.25*t),n},vec3PairToQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=Math.sqrt($.dotVec3(e,e)*$.dotVec3(t,t)),i=r+$.dotVec3(e,t);return i<1e-8*r?(i=0,Math.abs(e[0])>Math.abs(e[2])?(n[0]=-e[1],n[1]=e[0],n[2]=0):(n[0]=0,n[1]=-e[2],n[2]=e[1])):$.cross3Vec3(e,t,n),n[3]=i,$.normalizeQuaternion(n)},angleAxisToQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),n=e[3]/2,r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t},quaternionToEuler:function(){var e=new Y(16);return function(t,n,r){return r=r||$.vec3(),$.quaternionToRotationMat4(t,e),$.mat4ToEuler(e,n,r),r}}(),mulQuaternions:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=e[0],i=e[1],a=e[2],s=e[3],o=t[0],l=t[1],u=t[2],c=t[3];return n[0]=s*o+r*c+i*u-a*l,n[1]=s*l+i*c+a*o-r*u,n[2]=s*u+a*c+r*l-i*o,n[3]=s*c-r*o-i*l-a*u,n},vec3ApplyQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec3(),r=t[0],i=t[1],a=t[2],s=e[0],o=e[1],l=e[2],u=e[3],c=u*r+o*a-l*i,f=u*i+l*r-s*a,p=u*a+s*i-o*r,A=-s*r-o*i-l*a;return n[0]=c*u+A*-s+f*-l-p*-o,n[1]=f*u+A*-o+p*-s-c*-l,n[2]=p*u+A*-l+c*-o-f*-s,n},quaternionToMat4:function(e,t){t=$.identityMat4(t);var n=e[0],r=e[1],i=e[2],a=e[3],s=2*n,o=2*r,l=2*i,u=s*a,c=o*a,f=l*a,p=s*n,A=o*n,d=l*n,v=o*r,h=l*r,I=l*i;return t[0]=1-(v+I),t[1]=A+f,t[2]=d-c,t[4]=A-f,t[5]=1-(p+I),t[6]=h+u,t[8]=d+c,t[9]=h-u,t[10]=1-(p+v),t},quaternionToRotationMat4:function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,l=i+i,u=n*s,c=n*o,f=n*l,p=r*o,A=r*l,d=i*l,v=a*s,h=a*o,I=a*l;return t[0]=1-(p+d),t[4]=c-I,t[8]=f+h,t[1]=c+I,t[5]=1-(u+d),t[9]=A-v,t[2]=f-h,t[6]=A+v,t[10]=1-(u+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=$.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n,t[3]=e[3]/n,t},conjugateQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},inverseQuaternion:function(e,t){return $.normalizeQuaternion($.conjugateQuaternion(e,t))},quaternionToAngleAxis:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),n=(e=$.normalizeQuaternion(e,Z))[3],r=2*Math.acos(n),i=Math.sqrt(1-n*n);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=r,t},AABB3:function(e){return new Y(e||6)},AABB2:function(e){return new Y(e||4)},OBB3:function(e){return new Y(e||32)},OBB2:function(e){return new Y(e||16)},Sphere3:function(e,t,n,r){return new Y([e,t,n,r])},transformOBB3:function(e,t){var n,r,i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2],f=e[3],p=e[4],A=e[5],d=e[6],v=e[7],h=e[8],I=e[9],y=e[10],m=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;no?s:o,a[1]+=l>u?l:u,a[2]+=c>f?c:f,Math.abs($.lenVec3(a))}}(),getAABB3Area:function(e){return(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2])},getAABB3Center:function(e,t){var n=t||$.vec3();return n[0]=(e[0]+e[3])/2,n[1]=(e[1]+e[4])/2,n[2]=(e[2]+e[5])/2,n},getAABB2Center:function(e,t){var n=t||$.vec2();return n[0]=(e[2]+e[0])/2,n[1]=(e[3]+e[1])/2,n},collapseAABB3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$.AABB3();return e[0]=$.MAX_DOUBLE,e[1]=$.MAX_DOUBLE,e[2]=$.MAX_DOUBLE,e[3]=$.MIN_DOUBLE,e[4]=$.MIN_DOUBLE,e[5]=$.MIN_DOUBLE,e},AABB3ToOBB3:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.OBB3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t},positions3ToAABB3:function(){var e=new Y(3);return function(t,n,r){n=n||$.AABB3();for(var i,a,s,o=$.MAX_DOUBLE,l=$.MAX_DOUBLE,u=$.MAX_DOUBLE,c=$.MIN_DOUBLE,f=$.MIN_DOUBLE,p=$.MIN_DOUBLE,A=0,d=t.length;Ac&&(c=i),a>f&&(f=a),s>p&&(p=s);return n[0]=o,n[1]=l,n[2]=u,n[3]=c,n[4]=f,n[5]=p,n}}(),OBB3ToAABB3:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB3(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MAX_DOUBLE,l=$.MIN_DOUBLE,u=$.MIN_DOUBLE,c=$.MIN_DOUBLE,f=0,p=e.length;fl&&(l=t),n>u&&(u=n),r>c&&(c=r);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i[4]=u,i[5]=c,i},points3ToAABB3:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB3(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MAX_DOUBLE,l=$.MIN_DOUBLE,u=$.MIN_DOUBLE,c=$.MIN_DOUBLE,f=0,p=e.length;fl&&(l=t),n>u&&(u=n),r>c&&(c=r);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i[4]=u,i[5]=c,i},points3ToSphere3:function(){var e=new Y(3);return function(t,n){n=n||$.vec4();var r,i=0,a=0,s=0,o=t.length;for(r=0;ru&&(u=l);return n[3]=u,n}}(),positions3ToSphere3:function(){var e=new Y(3),t=new Y(3);return function(n,r){r=r||$.vec4();var i,a=0,s=0,o=0,l=n.length,u=0;for(i=0;iu&&(u=c);return r[3]=u,r}}(),OBB3ToSphere3:function(){var e=new Y(3),t=new Y(3);return function(n,r){r=r||$.vec4();var i,a=0,s=0,o=0,l=n.length,u=l/4;for(i=0;if&&(f=c);return r[3]=f,r}}(),getSphere3Center:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},getPositionsCenter:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(),n=0,r=0,i=0,a=0,s=e.length;at[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]n&&(e[0]=n),e[1]>r&&(e[1]=r),e[2]>i&&(e[2]=i),e[3]0&&void 0!==arguments[0]?arguments[0]:$.AABB2();return e[0]=$.MAX_DOUBLE,e[1]=$.MAX_DOUBLE,e[2]=$.MIN_DOUBLE,e[3]=$.MIN_DOUBLE,e},point3AABB3Intersect:function(e,t){return e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(r=e[0]*n[0],i=e[0]*n[3]):(r=e[0]*n[3],i=e[0]*n[0]),e[1]>0?(r+=e[1]*n[1],i+=e[1]*n[4]):(r+=e[1]*n[4],i+=e[1]*n[1]),e[2]>0?(r+=e[2]*n[2],i+=e[2]*n[5]):(r+=e[2]*n[5],i+=e[2]*n[2]),r<=-t&&i<=-t?-1:r>=-t&&i>=-t?1:0},OBB3ToAABB2:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB2(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MIN_DOUBLE,l=$.MIN_DOUBLE,u=0,c=e.length;uo&&(o=t),n>l&&(l=n);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i},expandAABB2:function(e,t){return e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]3&&void 0!==arguments[3]?arguments[3]:e,i=.5*(e[0]+1),a=.5*(e[1]+1),s=.5*(e[2]+1),o=.5*(e[3]+1);return r[0]=Math.floor(i*t),r[1]=n-Math.floor(o*n),r[2]=Math.floor(s*t),r[3]=n-Math.floor(a*n),r},tangentQuadraticBezier:function(e,t,n,r){return 2*(1-e)*(n-t)+2*e*(r-n)},tangentQuadraticBezier3:function(e,t,n,r,i){return-3*t*(1-e)*(1-e)+3*n*(1-e)*(1-e)-6*e*n*(1-e)+6*e*r*(1-e)-3*e*e*r+3*e*e*i},tangentSpline:function(e){return 6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e)},catmullRomInterpolate:function(e,t,n,r,i){var a=.5*(n-e),s=.5*(r-t),o=i*i;return(2*t-2*n+a+s)*(i*o)+(-3*t+3*n-2*a-s)*o+a*i+t},b2p0:function(e,t){var n=1-e;return n*n*t},b2p1:function(e,t){return 2*(1-e)*e*t},b2p2:function(e,t){return e*e*t},b2:function(e,t,n,r){return this.b2p0(e,t)+this.b2p1(e,n)+this.b2p2(e,r)},b3p0:function(e,t){var n=1-e;return n*n*n*t},b3p1:function(e,t){var n=1-e;return 3*n*n*e*t},b3p2:function(e,t){return 3*(1-e)*e*e*t},b3p3:function(e,t){return e*e*e*t},b3:function(e,t,n,r,i){return this.b3p0(e,t)+this.b3p1(e,n)+this.b3p2(e,r)+this.b3p3(e,i)},triangleNormal:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:$.vec3(),i=t[0]-e[0],a=t[1]-e[1],s=t[2]-e[2],o=n[0]-e[0],l=n[1]-e[1],u=n[2]-e[2],c=a*u-s*l,f=s*o-i*u,p=i*l-a*o,A=Math.sqrt(c*c+f*f+p*p);return 0===A?(r[0]=0,r[1]=0,r[2]=0):(r[0]=c/A,r[1]=f/A,r[2]=p/A),r},rayTriangleIntersect:function(){var e=new Y(3),t=new Y(3),n=new Y(3),r=new Y(3),i=new Y(3);return function(a,s,o,l,u,c){c=c||$.vec3();var f=$.subVec3(l,o,e),p=$.subVec3(u,o,t),A=$.cross3Vec3(s,p,n),d=$.dotVec3(f,A);if(d<1e-6)return null;var v=$.subVec3(a,o,r),h=$.dotVec3(v,A);if(h<0||h>d)return null;var I=$.cross3Vec3(v,f,i),y=$.dotVec3(s,I);if(y<0||h+y>d)return null;var m=$.dotVec3(p,I)/d;return c[0]=a[0]+m*s[0],c[1]=a[1]+m*s[1],c[2]=a[2]+m*s[2],c}}(),rayPlaneIntersect:function(){var e=new Y(3),t=new Y(3),n=new Y(3),r=new Y(3);return function(i,a,s,o,l,u){u=u||$.vec3(),a=$.normalizeVec3(a,e);var c=$.subVec3(o,s,t),f=$.subVec3(l,s,n),p=$.cross3Vec3(c,f,r);$.normalizeVec3(p,p);var A=-$.dotVec3(s,p),d=-($.dotVec3(i,p)+A)/$.dotVec3(a,p);return u[0]=i[0]+d*a[0],u[1]=i[1]+d*a[1],u[2]=i[2]+d*a[2],u}}(),cartesianToBarycentric:function(){var e=new Y(3),t=new Y(3),n=new Y(3);return function(r,i,a,s,o){var l=$.subVec3(s,i,e),u=$.subVec3(a,i,t),c=$.subVec3(r,i,n),f=$.dotVec3(l,l),p=$.dotVec3(l,u),A=$.dotVec3(l,c),d=$.dotVec3(u,u),v=$.dotVec3(u,c),h=f*d-p*p;if(0===h)return null;var I=1/h,y=(d*A-p*v)*I,m=(f*v-p*A)*I;return o[0]=1-y-m,o[1]=m,o[2]=y,o}}(),barycentricInsideTriangle:function(e){var t=e[1],n=e[2];return n>=0&&t>=0&&n+t<1},barycentricToCartesian:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:$.vec3(),a=e[0],s=e[1],o=e[2];return i[0]=t[0]*a+n[0]*s+r[0]*o,i[1]=t[1]*a+n[1]*s+r[1]*o,i[2]=t[2]*a+n[2]*s+r[2]*o,i},mergeVertices:function(e,t,n,r){var i,a,s,o,l,u,c={},f=[],p=[],A=t?[]:null,d=n?[]:null,v=[],h=Math.pow(10,4),I=0;for(l=0,u=e.length;l>24&255,s=f>>16&255,a=f>>8&255,i=255&f,r=3*t[d],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,r=3*t[d+1],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,r=3*t[d+2],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,f++;return{positions:u,colors:c}},faceToVertexNormals:function(e,t){var n,r,i,a,s,o,l,u,c,f,p,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=A.smoothNormalsAngleThreshold||20,v={},h=[],I={},y=4,m=Math.pow(10,y);for(l=0,c=e.length;ll[3]&&(l[3]=i[p]),i[p+1]l[4]&&(l[4]=i[p+1]),i[p+2]l[5]&&(l[5]=i[p+2])}if(n.length<20||a>10)return u.triangles=n,u.leaf=!0,u;e[0]=l[3]-l[0],e[1]=l[4]-l[1],e[2]=l[5]-l[2];var A=0;e[1]>e[A]&&(A=1),e[2]>e[A]&&(A=2),u.splitDim=A;var d=(l[A]+l[A+3])/2,v=new Array(n.length),h=0,I=new Array(n.length),y=0;for(s=0,o=n.length;s2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r=0?1:-1),r=(1-Math.abs(n))*(r>=0?1:-1));var a=Math.sqrt(n*n+r*r+i*i);return t[0]=n/a,t[1]=r/a,t[2]=i/a,t},octDecodeVec2s:function(e,t){for(var n=0,r=0,i=e.length;n=0?1:-1),s=(1-Math.abs(a))*(s>=0?1:-1));var l=Math.sqrt(a*a+s*s+o*o);t[r+0]=a/l,t[r+1]=s/l,t[r+2]=o/l,r+=3}return t}};$.buildEdgeIndices=function(){var e=[],t=[],n=[],r=[],i=[],a=0,s=new Uint16Array(3),o=new Uint16Array(3),l=new Uint16Array(3),u=$.vec3(),c=$.vec3(),f=$.vec3(),p=$.vec3(),A=$.vec3(),d=$.vec3(),v=$.vec3();return function(h,I,y,m){!function(i,a){var s,o,l,u,c,f,p={},A=Math.pow(10,4),d=0;for(c=0,f=i.length;cO)||(C=n[D.index1],_=n[D.index2],(!N&&C>65535||_>65535)&&(N=!0),B.push(C),B.push(_));return N?new Uint32Array(B):new Uint16Array(B)}}(),$.planeClipsPositions3=function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,i=0,a=n.length;i=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&$.containsAABB3(e.left.aabb,r))this._insertEntity(e.left,t,n+1);else if(e.right&&$.containsAABB3(e.right.aabb,r))this._insertEntity(e.right,t,n+1);else{var i=e.aabb;ee[0]=i[3]-i[0],ee[1]=i[4]-i[1],ee[2]=i[5]-i[2];var a=0;if(ee[1]>ee[a]&&(a=1),ee[2]>ee[a]&&(a=2),!e.left){var s=i.slice();if(s[a+3]=(i[a]+i[a+3])/2,e.left={aabb:s},$.containsAABB3(s,r))return void this._insertEntity(e.left,t,n+1)}if(!e.right){var o=i.slice();if(o[a]=(i[a]+i[a+3])/2,e.right={aabb:o},$.containsAABB3(o,r))return void this._insertEntity(e.right,t,n+1)}e.entities=e.entities||[],e.entities.push(t)}}},{key:"destroy",value:function(){var e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}]),e}(),ne=function(){function e(){b(this,e),this._head=[],this._headLength=0,this._tail=[],this._index=0,this._length=0}return P(e,[{key:"length",get:function(){return this._length}},{key:"shift",value:function(){if(this._index>=this._headLength){var e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}var t=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,t}},{key:"push",value:function(e){return this._length++,this._tail.push(e),this}},{key:"unshift",value:function(e){return this._head[--this._index]=e,this._length++,this}}]),e}(),re={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var ie=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],n=e[0].charCodeAt(0),r=n+e[1],i=n;i0&&void 0!==arguments[0]?arguments[0]:-1,r=(new Date).getTime(),i=0;fe.length>0&&(n<0||r0&&oe>0){var n=1e3/oe;ve+=n,Ae.push(n),Ae.length>=30&&(ve-=Ae.shift()),re.frame.fps=Math.round(ve/Ae.length)}!function(e){var t=he.runTasks(e+10),n=he.getNumTasks();re.frame.tasksRun=t,re.frame.tasksScheduled=n,re.frame.tasksBudget=10}(t),function(e){for(var t in pe.time=e,he.scenes)if(he.scenes.hasOwnProperty(t)){var n=he.scenes[t];pe.sceneId=t,pe.startTime=n.startTime,pe.deltaTime=null!=pe.prevTime?pe.time-pe.prevTime:0,n.fire("tick",pe,!0)}pe.prevTime=e}(t),function(){var e,t,n,r,i,a=he.scenes,s=!1;for(i in a)a.hasOwnProperty(i)&&(e=a[i],(t=ue[i])||(t=ue[i]={}),n=e.ticksPerOcclusionTest,t.ticksPerOcclusionTest!==n&&(t.ticksPerOcclusionTest=n,t.renderCountdown=n),--e.occlusionTestCountdown<=0&&(e.doOcclusionTest(),e.occlusionTestCountdown=n),r=e.ticksPerRender,t.ticksPerRender!==r&&(t.ticksPerRender=r,t.renderCountdown=r),0==--t.renderCountdown&&(e.render(s),t.renderCountdown=r))}(),de=t,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(e):requestAnimationFrame(e)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(Ie):requestAnimationFrame(Ie);var ye=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,e),this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=n.viewer;else{if("Scene"===t.type)this.scene=t;else{if(!(t instanceof e))throw"Invalid param: owner must be a Component";this.scene=t.scene}this._owner=t}this._dontClear=!!n.dontClear,this._renderer=this.scene._renderer,this.meta=n.meta||{},this.id=n.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,t&&t._own(this)}return P(e,[{key:"type",get:function(){return"Component"}},{key:"isComponent",get:function(){return!0}},{key:"glRedraw",value:function(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}},{key:"glResort",value:function(){this._renderer&&this._renderer.needStateSort()}},{key:"owner",get:function(){return this._owner}},{key:"isType",value:function(e){return this.type===e}},{key:"fire",value:function(e,t,n){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==n&&(this._events[e]=t||!0);var r,i=this._eventSubs[e];if(i)for(var a in i)i.hasOwnProperty(a)&&(r=i[a],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}},{key:"on",value:function(e,t,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new G),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});var r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);var i=this._subIdMap.addItem();r[i]={callback:t,scope:n||this},this._subIdEvents[i]=e;var a=this._events[e];return void 0!==a&&t.call(n||this,a),i}},{key:"off",value:function(e){if(null!=e&&this._subIdEvents){var t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];var n=this._eventSubs[t];n&&(delete n[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}}},{key:"once",value:function(e,t,n){var r=this,i=this.on(e,(function(e){r.off(i),t.call(n||this,e)}),n)}},{key:"hasSubs",value:function(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}},{key:"log",value:function(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}},{key:"_message",value:function(e){return" ["+this.type+" "+le.inQuotes(this.id)+"]: "+e}},{key:"warn",value:function(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}},{key:"error",value:function(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}},{key:"_attach",value:function(e){var t=e.name;if(t){var n=e.component,r=e.sceneDefault,i=e.sceneSingleton,a=e.type,s=e.on,o=!1!==e.recompiles;if(n&&(le.isNumeric(n)||le.isString(n))){var l=n;if(!(n=this.scene.components[l]))return void this.error("Component not found: "+le.inQuotes(l))}if(!n)if(!0===i){var u=this.scene.types[a];for(var c in u)if(u.hasOwnProperty){n=u[c];break}if(!n)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===r&&!(n=this.scene[t]))return this.error("Scene has no default component for '"+t+"'"),null;if(n){if(n.scene.id!==this.scene.id)return void this.error("Not in same scene: "+n.type+" "+le.inQuotes(n.id));if(a&&!n.isType(a))return void this.error("Expected a "+a+" type or subtype: "+n.type+" "+le.inQuotes(n.id))}this._attachments||(this._attachments={});var f,p,A,d=this._attached[t];if(d){if(n&&d.id===n.id)return;var v=this._attachments[d.id];for(p=0,A=(f=v.subs).length;p=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}]),e}(),Te=P((function e(){b(this,e),this.planes=[new Ee,new Ee,new Ee,new Ee,new Ee,new Ee]}));function be(e,t,n){var r=$.mulMat4(n,t,ge),i=r[0],a=r[1],s=r[2],o=r[3],l=r[4],u=r[5],c=r[6],f=r[7],p=r[8],A=r[9],d=r[10],v=r[11],h=r[12],I=r[13],y=r[14],m=r[15];e.planes[0].set(o-i,f-l,v-p,m-h),e.planes[1].set(o+i,f+l,v+p,m+h),e.planes[2].set(o-a,f-u,v-A,m-I),e.planes[3].set(o+a,f+u,v+A,m+I),e.planes[4].set(o-s,f-c,v-d,m-y),e.planes[5].set(o+s,f+c,v+d,m+y)}function De(e,t){var n=Te.INSIDE,r=me,i=we;r[0]=t[0],r[1]=t[1],r[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];for(var a=[r,i],s=0;s<6;++s){var o=e.planes[s];if(o.normal[0]*a[o.testVertex[0]][0]+o.normal[1]*a[o.testVertex[1]][1]+o.normal[2]*a[o.testVertex[2]][2]+o.offset<0)return Te.OUTSIDE;o.normal[0]*a[1-o.testVertex[0]][0]+o.normal[1]*a[1-o.testVertex[1]][1]+o.normal[2]*a[1-o.testVertex[2]][2]+o.offset<0&&(n=Te.INTERSECT)}return n}Te.INSIDE=0,Te.INTERSECT=1,Te.OUTSIDE=2;var Pe=function(e){I(n,ye);var t=m(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(b(this,n),!r.viewer)throw"[MarqueePicker] Missing config: viewer";if(!r.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";return(e=t.call(this,r.viewer.scene,r)).viewer=r.viewer,e._objectsKdTree3=r.objectsKdTree3,e._canvasMarqueeCorner1=$.vec2(),e._canvasMarqueeCorner2=$.vec2(),e._canvasMarquee=$.AABB2(),e._marqueeFrustum=new Te,e._marqueeFrustumProjMat=$.mat4(),e._pickMode=!1,e._marqueeElement=document.createElement("div"),document.body.appendChild(e._marqueeElement),e._marqueeElement.style.position="absolute",e._marqueeElement.style["z-index"]="40000005",e._marqueeElement.style.width="8px",e._marqueeElement.style.height="8px",e._marqueeElement.style.visibility="hidden",e._marqueeElement.style.top="0px",e._marqueeElement.style.left="0px",e._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",e._marqueeElement.style.opacity=1,e._marqueeElement.style["pointer-events"]="none",e}return P(n,[{key:"setMarqueeCorner1",value:function(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}},{key:"setMarqueeCorner2",value:function(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}},{key:"setMarquee",value:function(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}},{key:"setMarqueeVisible",value:function(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}},{key:"getMarqueeVisible",value:function(){return this._marqueVisible}},{key:"setPickMode",value:function(e){if(e!==n.PICK_MODE_INSIDE&&e!==n.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===n.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}},{key:"getPickMode",value:function(){return this._pickMode}},{key:"clear",value:function(){this.fire("clear",{})}},{key:"pick",value:function(){var e=this;this._updateMarquee(),this._buildMarqueeFrustum();var t=[];return(this._canvasMarquee[2]-this._canvasMarquee[0]>3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&function r(i){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Te.INTERSECT;if(a===Te.INTERSECT&&(a=De(e._marqueeFrustum,i.aabb)),a!==Te.OUTSIDE){if(i.entities)for(var s=i.entities,o=0,l=s.length;o3||n>3)&&f.pick()}})),document.addEventListener("mouseup",(function(e){r.getActive()&&0===e.button&&(clearTimeout(c),A&&(f.setMarqueeVisible(!1),A=!1,d=!1,v=!0,f.viewer.cameraControl.pointerEnabled=!0))}),!0),p.addEventListener("mousemove",(function(e){r.getActive()&&0===e.button&&d&&(clearTimeout(c),A&&(s=e.pageX,o=e.pageY,u=e.offsetX,f.setMarqueeVisible(!0),f.setMarqueeCorner2([s,o]),f.setPickMode(l0}},{key:"log",value:function(e){console.log("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"warn",value:function(e){console.warn("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"error",value:function(e){console.error("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"send",value:function(e,t){}},{key:"destroy",value:function(){this.viewer.removePlugin(this)}}]),e}(),_e=$.vec3(),Be=function(){var e=new Float64Array(16),t=new Float64Array(4),n=new Float64Array(4);return function(r,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,$.transformVec4(r,t,n),$.setMat4Translation(r,n,a),a.slice()}}();function Oe(e,t,n){var r=Float32Array.from([e[0]])[0],i=e[0]-r,a=Float32Array.from([e[1]])[0],s=e[1]-a,o=Float32Array.from([e[2]])[0],l=e[2]-o;t[0]=r,t[1]=a,t[2]=o,n[0]=i,n[1]=s,n[2]=l}function Se(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e3,i=$.getPositionsCenter(e,_e),a=Math.round(i[0]/r)*r,s=Math.round(i[1]/r)*r,o=Math.round(i[2]/r)*r;n[0]=a,n[1]=s,n[2]=o;var l=0!==n[0]||0!==n[1]||0!==n[2];if(l)for(var u=0,c=e.length;u0?this.meshes[0]._colorize[3]/255:1},set:function(e){if(0!==this.meshes.length){var t=null!=e,n=this.meshes[0]._colorize[3],r=255;if(t){if(e<0?e=0:e>1&&(e=1),n===(r=Math.floor(255*e)))return}else if(n===(r=255))return;for(var i=0,a=this.meshes.length;i1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._color=r.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=r.thickness||1,this._thicknessClickable=r.thicknessClickable||6,this._visible=!0,this._culled=!1;var i=this._wire,a=i.style;a.border="solid "+this._thickness+"px "+this._color,a.position="absolute",a["z-index"]=void 0===r.zIndex?"2000001":r.zIndex,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=1,a["pointer-events"]="none",r.onContextMenu,t.appendChild(i);var s=this._wireClickable,o=s.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===r.zIndex?"2000002":r.zIndex+1,o.width="0px",o.height="0px",o.visibility="visible",o.top="0px",o.left="0px",o["-webkit-transform-origin"]="0 0",o["-moz-transform-origin"]="0 0",o["-ms-transform-origin"]="0 0",o["-o-transform-origin"]="0 0",o["transform-origin"]="0 0",o["-webkit-transform"]="rotate(0deg)",o["-moz-transform"]="rotate(0deg)",o["-ms-transform"]="rotate(0deg)",o["-o-transform"]="rotate(0deg)",o.transform="rotate(0deg)",o.opacity=0,o["pointer-events"]="none",r.onContextMenu,t.appendChild(s),r.onMouseOver&&s.addEventListener("mouseover",(function(e){r.onMouseOver(e,n)})),r.onMouseLeave&&s.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n)})),r.onMouseWheel&&s.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onContextMenu&&s.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}return P(e,[{key:"visible",get:function(){return"visible"===this._wire.style.visibility}},{key:"_update",value:function(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,n=this._wire.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)";var r=this._wireClickable.style;r.width=Math.round(e)+"px",r.left=Math.round(this._x1)+"px",r.top=Math.round(this._y1)+"px",r["-webkit-transform"]="rotate("+t+"deg)",r["-moz-transform"]="rotate("+t+"deg)",r["-ms-transform"]="rotate("+t+"deg)",r["-o-transform"]="rotate("+t+"deg)",r.transform="rotate("+t+"deg)"}},{key:"setStartAndEnd",value:function(e,t,n,r){this._x1=e,this._y1=t,this._x2=n,this._y2=r,this._update()}},{key:"setColor",value:function(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}},{key:"setOpacity",value:function(e){this._wire.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setClickable",value:function(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}},{key:"destroy",value:function(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}]),e}(),Je=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var i=this._dot,a=i.style;a["border-radius"]="25px",a.border="solid 2px white",a.background="lightgreen",a.position="absolute",a["z-index"]=void 0===r.zIndex?"40000005":r.zIndex,a.width="8px",a.height="8px",a.visibility=!1!==r.visible?"visible":"hidden",a.top="0px",a.left="0px",a["box-shadow"]="0 2px 5px 0 #182A3D;",a.opacity=1,a["pointer-events"]="none",r.onContextMenu,t.appendChild(i);var s=this._dotClickable,o=s.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===r.zIndex?"40000007":r.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",r.onContextMenu,t.appendChild(s),r.onMouseOver&&s.addEventListener("mouseover",(function(e){r.onMouseOver(e,n)})),r.onMouseLeave&&s.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n)})),r.onMouseWheel&&s.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onContextMenu&&s.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()})),this.setPos(r.x||0,r.y||0),this.setFillColor(r.fillColor),this.setBorderColor(r.borderColor)}return P(e,[{key:"setPos",value:function(e,t){this._x=e,this._y=t;var n=this._dot.style;n.left=Math.round(e)-4+"px",n.top=Math.round(t)-4+"px";var r=this._dotClickable.style;r.left=Math.round(e)-9+"px",r.top=Math.round(t)-9+"px"}},{key:"setFillColor",value:function(e){this._dot.style.background=e||"lightgreen"}},{key:"setBorderColor",value:function(e){this._dot.style.border="solid 2px"+(e||"black")}},{key:"setOpacity",value:function(e){this._dot.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setClickable",value:function(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}},{key:"destroy",value:function(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}]),e}(),Ze=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._highlightClass="viewer-ruler-label-highlighted",this._prefix=r.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var i=this._label,a=i.style;a["border-radius"]="5px",a.color="white",a.padding="4px",a.border="solid 1px",a.background="lightgreen",a.position="absolute",a["z-index"]=void 0===r.zIndex?"5000005":r.zIndex,a.width="auto",a.height="auto",a.visibility="visible",a.top="0px",a.left="0px",a["pointer-events"]="all",a.opacity=1,r.onContextMenu,i.innerText="",t.appendChild(i),this.setPos(r.x||0,r.y||0),this.setFillColor(r.fillColor),this.setBorderColor(r.fillColor),this.setText(r.text),r.onMouseOver&&i.addEventListener("mouseover",(function(e){r.onMouseOver(e,n),e.preventDefault()})),r.onMouseLeave&&i.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n),e.preventDefault()})),r.onMouseWheel&&i.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onContextMenu&&i.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()}))}return P(e,[{key:"setPos",value:function(e,t){this._x=e,this._y=t;var n=this._label.style;n.left=Math.round(e)-20+"px",n.top=Math.round(t)-12+"px"}},{key:"setPosOnWire",value:function(e,t,n,r){var i=e+.5*(n-e),a=t+.5*(r-t),s=this._label.style;s.left=Math.round(i)-20+"px",s.top=Math.round(a)-12+"px"}},{key:"setPosBetweenWires",value:function(e,t,n,r,i,a){var s=(e+n+i)/3,o=(t+r+a)/3,l=this._label.style;l.left=Math.round(s)-20+"px",l.top=Math.round(o)-12+"px"}},{key:"setText",value:function(e){this._label.innerHTML=this._prefix+(e||"")}},{key:"setFillColor",value:function(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}},{key:"setBorderColor",value:function(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}},{key:"setOpacity",value:function(e){this._label.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}},{key:"setClickable",value:function(e){this._label.style["pointer-events"]=e?"all":"none"}},{key:"destroy",value:function(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}]),e}(),$e=$.vec3(),et=$.vec3(),tt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e.viewer.scene,i)).plugin=e,r._container=i.container,!r._container)throw"config missing: container";r._color=i.color||e.defaultColor;var a=r.plugin.viewer.scene;r._originMarker=new Xe(a,i.origin),r._cornerMarker=new Xe(a,i.corner),r._targetMarker=new Xe(a,i.target),r._originWorld=$.vec3(),r._cornerWorld=$.vec3(),r._targetWorld=$.vec3(),r._wp=new Float64Array(12),r._vp=new Float64Array(12),r._pp=new Float64Array(12),r._cp=new Int16Array(6);var s=i.onMouseOver?function(e){i.onMouseOver(e,g(r))}:null,o=i.onMouseLeave?function(e){i.onMouseLeave(e,g(r))}:null,l=i.onContextMenu?function(e){i.onContextMenu(e,g(r))}:null,u=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};return r._originDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._cornerDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._targetDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._originWire=new qe(r._container,{color:r._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._targetWire=new qe(r._container,{color:r._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._angleLabel=new Ze(r._container,{fillColor:r._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._wpDirty=!1,r._vpDirty=!1,r._cpDirty=!1,r._visible=!1,r._originVisible=!1,r._cornerVisible=!1,r._targetVisible=!1,r._originWireVisible=!1,r._targetWireVisible=!1,r._angleVisible=!1,r._labelsVisible=!1,r._clickable=!1,r._originMarker.on("worldPos",(function(e){r._originWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._cornerMarker.on("worldPos",(function(e){r._cornerWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._targetMarker.on("worldPos",(function(e){r._targetWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._onViewMatrix=a.camera.on("viewMatrix",(function(){r._vpDirty=!0,r._needUpdate(0)})),r._onProjMatrix=a.camera.on("projMatrix",(function(){r._cpDirty=!0,r._needUpdate()})),r._onCanvasBoundary=a.canvas.on("boundary",(function(){r._cpDirty=!0,r._needUpdate(0)})),r._onSectionPlaneUpdated=a.on("sectionPlaneUpdated",(function(){r._sectionPlanesDirty=!0,r._needUpdate()})),r.approximate=i.approximate,r.visible=i.visible,r.originVisible=i.originVisible,r.cornerVisible=i.cornerVisible,r.targetVisible=i.targetVisible,r.originWireVisible=i.originWireVisible,r.targetWireVisible=i.targetWireVisible,r.angleVisible=i.angleVisible,r.labelsVisible=i.labelsVisible,r}return P(n,[{key:"_update",value:function(){if(this._visible){var e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&($.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){var t=-.3,n=this._originMarker.viewPos[2],r=this._cornerMarker.viewPos[2],i=this._targetMarker.viewPos[2];if(n>t||r>t||i>t)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);$.transformPositions4(e.camera.project.matrix,this._vp,this._pp);for(var a=this._pp,s=this._cp,o=e.canvas.canvas.getBoundingClientRect(),l=this._container.getBoundingClientRect(),u=o.top-l.top,c=o.left-l.left,f=e.canvas.boundary,p=f[2],A=f[3],d=0,v=0,h=a.length;v1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e.viewer.scene)).pointerLens=i.pointerLens,r._active=!1,r._mouseState=0,r._currentAngleMeasurement=null,r._initMarkerDiv(),r._onMouseHoverSurface=null,r._onHoverNothing=null,r._onPickedNothing=null,r._onPickedSurface=null,r._onInputMouseDown=null,r._onInputMouseUp=null,r._snapping=!1!==i.snapping,r._attachPlugin(e,i),r}return P(n,[{key:"_initMarkerDiv",value:function(){var e=document.createElement("div");e.setAttribute("id","myMarkerDiv");var t=this.scene.canvas.canvas;t.parentNode.insertBefore(e,t),e.style.background="black",e.style.border="2px solid blue",e.style.borderRadius="10px",e.style.width="5px",e.style.height="5px",e.style.margin="-200px -200px",e.style.zIndex="100",e.style.position="absolute",e.style.pointerEvents="none",this.markerDiv=e}},{key:"_destroyMarkerDiv",value:function(){if(this._markerDiv){var e=document.getElementById("myMarkerDiv");e.parentNode.removeChild(e),this._markerDiv=null}}},{key:"_attachPlugin",value:function(e){this.angleMeasurementsPlugin=e,this.plugin=e}},{key:"active",get:function(){return this._active}},{key:"snapping",get:function(){return this._snapping},set:function(e){e!==this._snapping?(this._snapping=e,this.deactivate(),this.activate()):this._snapping=e}},{key:"activate",value:function(){var e=this;if(!this._active){this.markerDiv||this._initMarkerDiv(),this.angleMeasurementsPlugin;var t=this.scene;t.input;var n=t.canvas.canvas,r=this.angleMeasurementsPlugin.viewer.cameraControl,i=this.pointerLens,a=!1,s=null,o=0,l=0,u=$.vec3(),c=$.vec2();this._currentAngleMeasurement=null,this._onMouseHoverSurface=r.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",(function(t){t.snappedToVertex||t.snappedToEdge?(i&&(i.visible=!0,i.canvasPos=t.canvasPos,i.snappedCanvasPos=t.snappedCanvasPos||t.canvasPos,i.snapped=!0),e.markerDiv.style.background="greenyellow",e.markerDiv.style.border="2px solid green"):(i&&(i.visible=!0,i.canvasPos=t.canvasPos,i.snappedCanvasPos=t.canvasPos,i.snapped=!1),e.markerDiv.style.background="pink",e.markerDiv.style.border="2px solid red");var r=t.snappedCanvasPos||t.canvasPos;switch(a=!0,s=t.entity,u.set(t.worldPos),c.set(r),e._mouseState){case 0:e.markerDiv.style.marginLeft="".concat(r[0]-5,"px"),e.markerDiv.style.marginTop="".concat(r[1]-5,"px");break;case 1:e._currentAngleMeasurement&&(e._currentAngleMeasurement.originWireVisible=!0,e._currentAngleMeasurement.targetWireVisible=!1,e._currentAngleMeasurement.cornerVisible=!0,e._currentAngleMeasurement.angleVisible=!1,e._currentAngleMeasurement.corner.worldPos=t.worldPos,e._currentAngleMeasurement.corner.entity=t.entity),e.markerDiv.style.marginLeft="-10000px",e.markerDiv.style.marginTop="-10000px",n.style.cursor="pointer";break;case 2:e._currentAngleMeasurement&&(e._currentAngleMeasurement.targetWireVisible=!0,e._currentAngleMeasurement.targetVisible=!0,e._currentAngleMeasurement.angleVisible=!0,e._currentAngleMeasurement.target.worldPos=t.worldPos,e._currentAngleMeasurement.target.entity=t.entity),e.markerDiv.style.marginLeft="-10000px",e.markerDiv.style.marginTop="-10000px",n.style.cursor="pointer"}})),n.addEventListener("mousedown",this._onMouseDown=function(e){1===e.which&&(o=e.clientX,l=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=function(t){if(1===t.which&&!(t.clientX>o+20||t.clientXl+20||t.clientY1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"AngleMeasurements",e))._container=i.container||document.body,r._defaultControl=null,r._measurements={},r.defaultColor=void 0!==i.defaultColor?i.defaultColor:"#00BBFF",r.defaultLabelsVisible=!1!==i.defaultLabelsVisible,r.zIndex=i.zIndex||1e4,r._onMouseOver=function(e,t){r.fire("mouseOver",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r._onMouseLeave=function(e,t){r.fire("mouseLeave",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r._onContextMenu=function(e,t){r.fire("contextMenu",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){}},{key:"control",get:function(){return this._defaultControl||(this._defaultControl=new rt(this,{})),this._defaultControl}},{key:"measurements",get:function(){return this._measurements}},{key:"createMeasurement",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.viewer.scene.components[t.id]&&(this.error("Viewer scene component with this ID already exists: "+t.id),delete t.id);var n=t.origin,r=t.corner,i=t.target,a=new tt(this,{id:t.id,plugin:this,container:this._container,origin:{entity:n.entity,worldPos:n.worldPos},corner:{entity:r.entity,worldPos:r.worldPos},target:{entity:i.entity,worldPos:i.worldPos},visible:t.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[a.id]=a,a.on("destroyed",(function(){delete e._measurements[a.id]})),this.fire("measurementCreated",a),a}},{key:"destroyMeasurement",value:function(e){var t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}},{key:"setLabelsShown",value:function(e){for(var t=0,n=Object.entries(this.measurements);t

";le.isArray(t)&&(t=t.join("")),t=this._renderTemplate(t);var n=document.createRange().createContextualFragment(t);this._marker=n.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(function(){e.plugin.fire("markerClicked",e)})),this._marker.addEventListener("mouseenter",(function(){e.plugin.fire("markerMouseEnter",e)})),this._marker.addEventListener("mouseleave",(function(){e.plugin.fire("markerMouseLeave",e)})),this._marker.addEventListener("wheel",(function(t){e.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",t))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);var r=this._labelHTML||"

";le.isArray(r)&&(r=r.join("")),r=this._renderTemplate(r);var i=document.createRange().createContextualFragment(r);this._label=i.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(function(t){e.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",t))}))}}},{key:"_updatePosition",value:function(){var e=this.scene.canvas.boundary,t=e[0],n=e[1],r=this.canvasPos;this._marker.style.left=Math.floor(t+r[0])-12+"px",this._marker.style.top=Math.floor(n+r[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+r[0]+20)+"px",this._label.style.top=Math.floor(n+r[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}},{key:"_renderTemplate",value:function(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){var n=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),n)}return e}},{key:"setMarkerShown",value:function(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}},{key:"getMarkerShown",value:function(){return this._markerShown}},{key:"setLabelShown",value:function(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}},{key:"getLabelShown",value:function(){return this._labelShown}},{key:"setField",value:function(e,t){this._values[e]=t||"",this._htmlDirty=!0}},{key:"getField",value:function(e){return this._values[e]}},{key:"setValues",value:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];this.setField(t,n)}}},{key:"getValues",value:function(){return this._values}},{key:"destroy",value:function(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),st=$.vec3(),ot=$.vec3(),lt=$.vec3(),ut=function(e){I(n,Ce);var t=m(n);function n(e,r){var i;return b(this,n),(i=t.call(this,"Annotations",e))._labelHTML=r.labelHTML||"
",i._markerHTML=r.markerHTML||"
",i._container=r.container||document.body,i._values=r.values||{},i.annotations={},i.surfaceOffset=r.surfaceOffset,i}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){if("clearAnnotations"===e)this.clear()}},{key:"surfaceOffset",get:function(){return this._surfaceOffset},set:function(e){null==e&&(e=.3),this._surfaceOffset=e}},{key:"createAnnotation",value:function(e){var t,n,r=this;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){var i=e.pickResult;if(i.worldPos&&i.worldNormal){var a=$.normalizeVec3(i.worldNormal,st),s=$.mulVec3Scalar(a,this._surfaceOffset,ot);t=$.addVec3(i.worldPos,s,lt),n=i.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,n=e.entity;var o=null;e.markerElementId&&((o=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var l=null;e.labelElementId&&((l=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));var u=new at(this.viewer.scene,{id:e.id,plugin:this,entity:n,worldPos:t,container:this._container,markerElement:o,labelElement:l,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:le.apply(e.values,le.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[u.id]=u,u.on("destroyed",(function(){delete r.annotations[u.id],r.fire("annotationDestroyed",u.id)})),this.fire("annotationCreated",u.id),u}},{key:"destroyAnnotation",value:function(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}},{key:"clear",value:function(){for(var e=Object.keys(this.annotations),t=0,n=e.length;t1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._canvas=i.canvas,r._element=null,r._isCustom=!1,i.elementId&&(r._element=document.getElementById(i.elementId),r._element?r._adjustPosition():r.error("Can't find given Spinner HTML element: '"+i.elementId+"' - will automatically create default element")),r._element||r._createDefaultSpinner(),r.processes=0,r}return P(n,[{key:"type",get:function(){return"Spinner"}},{key:"_createDefaultSpinner",value:function(){this._injectDefaultCSS();var e=document.createElement("div"),t=e.style;t["z-index"]="9000",t.position="absolute",e.innerHTML='
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}},{key:"_injectDefaultCSS",value:function(){var e="xeokit-spinner-css";if(!document.getElementById(e)){var t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}}},{key:"_adjustPosition",value:function(){if(!this._isCustom){var e=this._canvas,t=this._element,n=t.style;n.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",n.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}}},{key:"processes",get:function(){return this._processes},set:function(e){if(e=e||0,this._processes!==e&&!(e<0)){var t=this._processes;this._processes=e;var n=this._element;n&&(n.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}}},{key:"_destroy",value:function(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);var e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}]),n}(),ft=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"],pt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._backgroundColor=$.vec3([i.backgroundColor?i.backgroundColor[0]:1,i.backgroundColor?i.backgroundColor[1]:1,i.backgroundColor?i.backgroundColor[2]:1]),r._backgroundColorFromAmbientLight=!!i.backgroundColorFromAmbientLight,r.canvas=i.canvas,r.gl=null,r.webgl2=!1,r.transparent=!!i.transparent,r.contextAttr=i.contextAttr||{},r.contextAttr.alpha=r.transparent,r.contextAttr.preserveDrawingBuffer=!!r.contextAttr.preserveDrawingBuffer,r.contextAttr.stencil=!1,r.contextAttr.premultipliedAlpha=!!r.contextAttr.premultipliedAlpha,r.contextAttr.antialias=!1!==r.contextAttr.antialias,r.resolutionScale=i.resolutionScale,r.canvas.width=Math.round(r.canvas.clientWidth*r._resolutionScale),r.canvas.height=Math.round(r.canvas.clientHeight*r._resolutionScale),r.boundary=[r.canvas.offsetLeft,r.canvas.offsetTop,r.canvas.clientWidth,r.canvas.clientHeight],r._initWebGL(i);var a=g(r);r.canvas.addEventListener("webglcontextlost",r._webglcontextlostListener=function(e){console.time("webglcontextrestored"),a.scene._webglContextLost(),a.fire("webglcontextlost"),e.preventDefault()},!1),r.canvas.addEventListener("webglcontextrestored",r._webglcontextrestoredListener=function(e){a._initWebGL(),a.gl&&(a.scene._webglContextRestored(a.gl),a.fire("webglcontextrestored",a.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);var s=!0,o=new ResizeObserver((function(e){var t,n=f(e);try{for(n.s();!(t=n.n()).done;){t.value.contentBoxSize&&(s=!0)}}catch(e){n.e(e)}finally{n.f()}}));return o.observe(r.canvas),r._tick=r.scene.on("tick",(function(){s&&(s=!1,a.canvas.width=Math.round(a.canvas.clientWidth*a._resolutionScale),a.canvas.height=Math.round(a.canvas.clientHeight*a._resolutionScale),a.boundary[0]=a.canvas.offsetLeft,a.boundary[1]=a.canvas.offsetTop,a.boundary[2]=a.canvas.clientWidth,a.boundary[3]=a.canvas.clientHeight,a.fire("boundary",a.boundary))})),r._spinner=new ct(r.scene,{canvas:r.canvas,elementId:i.spinnerElementId}),r}return P(n,[{key:"type",get:function(){return"Canvas"}},{key:"backgroundColorFromAmbientLight",get:function(){return this._backgroundColorFromAmbientLight},set:function(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}},{key:"backgroundColor",get:function(){return this._backgroundColor},set:function(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}},{key:"resolutionScale",get:function(){return this._resolutionScale},set:function(e){if((e=e||1)!==this._resolutionScale){this._resolutionScale=e;var t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}}},{key:"spinner",get:function(){return this._spinner}},{key:"_createCanvas",value:function(){var e="xeokit-canvas-"+$.createUUID(),t=document.getElementsByTagName("body")[0],n=document.createElement("div"),r=n.style;r.height="100%",r.width="100%",r.padding="0",r.margin="0",r.background="rgba(0,0,0,0);",r.float="left",r.left="0",r.top="0",r.position="absolute",r.opacity="1.0",r["z-index"]="-10000",n.innerHTML+='',t.appendChild(n),this.canvas=document.getElementById(e)}},{key:"_getElementXY",value:function(e){for(var t=0,n=0;e;)t+=e.offsetLeft-e.scrollLeft,n+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:n}}},{key:"_initWebGL",value:function(){if(!this.gl)for(var e=0;!this.gl&&e0?dt.FS_MAX_FLOAT_PRECISION="highp":ht.getShaderPrecisionFormat(ht.FRAGMENT_SHADER,ht.MEDIUM_FLOAT).precision>0?dt.FS_MAX_FLOAT_PRECISION="mediump":dt.FS_MAX_FLOAT_PRECISION="lowp":dt.FS_MAX_FLOAT_PRECISION="mediump",dt.DEPTH_BUFFER_BITS=ht.getParameter(ht.DEPTH_BITS),dt.MAX_TEXTURE_SIZE=ht.getParameter(ht.MAX_TEXTURE_SIZE),dt.MAX_CUBE_MAP_SIZE=ht.getParameter(ht.MAX_CUBE_MAP_TEXTURE_SIZE),dt.MAX_RENDERBUFFER_SIZE=ht.getParameter(ht.MAX_RENDERBUFFER_SIZE),dt.MAX_TEXTURE_UNITS=ht.getParameter(ht.MAX_COMBINED_TEXTURE_IMAGE_UNITS),dt.MAX_TEXTURE_IMAGE_UNITS=ht.getParameter(ht.MAX_TEXTURE_IMAGE_UNITS),dt.MAX_VERTEX_ATTRIBS=ht.getParameter(ht.MAX_VERTEX_ATTRIBS),dt.MAX_VERTEX_UNIFORM_VECTORS=ht.getParameter(ht.MAX_VERTEX_UNIFORM_VECTORS),dt.MAX_FRAGMENT_UNIFORM_VECTORS=ht.getParameter(ht.MAX_FRAGMENT_UNIFORM_VECTORS),dt.MAX_VARYING_VECTORS=ht.getParameter(ht.MAX_VARYING_VECTORS),ht.getSupportedExtensions().forEach((function(e){dt.SUPPORTED_EXTENSIONS[e]=!0})))}var It=function(){function e(){b(this,e),this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}return P(e,[{key:"canvasPos",get:function(){return this._gotCanvasPos?this._canvasPos:null},set:function(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}},{key:"origin",get:function(){return this._gotOrigin?this._origin:null},set:function(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}},{key:"direction",get:function(){return this._gotDirection?this._direction:null},set:function(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}},{key:"indices",get:function(){return this.entity&&this._gotIndices?this._indices:null},set:function(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}},{key:"localPos",get:function(){return this.entity&&this._gotLocalPos?this._localPos:null},set:function(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}},{key:"snappedCanvasPos",get:function(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null},set:function(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}},{key:"worldPos",get:function(){return this._gotWorldPos?this._worldPos:null},set:function(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}},{key:"viewPos",get:function(){return this.entity&&this._gotViewPos?this._viewPos:null},set:function(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}},{key:"bary",get:function(){return this.entity&&this._gotBary?this._bary:null},set:function(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}},{key:"worldNormal",get:function(){return this.entity&&this._gotWorldNormal?this._worldNormal:null},set:function(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}},{key:"uv",get:function(){return this.entity&&this._gotUV?this._uv:null},set:function(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}},{key:"reset",value:function(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}]),e}(),yt=function(){function e(t,n,r){if(b(this,e),this.allocated=!1,this.compiled=!1,this.handle=t.createShader(n),this.handle){if(this.allocated=!0,t.shaderSource(this.handle,r),t.compileShader(this.handle),this.compiled=t.getShaderParameter(this.handle,t.COMPILE_STATUS),!this.compiled&&!t.isContextLost()){for(var i=r.split("\n"),a=[],s=0;s0&&"/"===t.charAt(n+1)&&(t=t.substring(0,n)),r.push(t);return r.join("\n")}function Tt(e){console.error(e.join("\n"))}var bt=function(){function e(t,n){b(this,e),this.id=gt.addItem({}),this.source=n,this.init(t)}return P(e,[{key:"init",value:function(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new yt(e,e.VERTEX_SHADER,Et(this.source.vertex)),this._fragmentShader=new yt(e,e.FRAGMENT_SHADER,Et(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Tt(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Tt(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Tt(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Tt(this.errors);var t,n,r,i,a;if(this.compiled=!0,this.handle=e.createProgram(),this.handle){if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void Tt(this.errors);var s=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(n=0;nthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}},{key:"setData",value:function(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}},{key:"bind",value:function(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}},{key:"unbind",value:function(){this.allocated&&this._gl.bindBuffer(this.type,null)}},{key:"destroy",value:function(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}]),e}(),Pt=function(){function e(t,n){b(this,e),this.scene=t,this.aabb=$.AABB3(),this.origin=$.vec3(n),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}return P(e,[{key:"addMarker",value:function(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}},{key:"markerWorldPosUpdated",value:function(e){if(this.markers[e.id]){var t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}}},{key:"removeMarker",value:function(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}},{key:"update",value:function(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}},{key:"_buildMarkerList",value:function(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}},{key:"_buildPositions",value:function(){for(var e=0,t=0;t-t)o._setVisible(!1);else{var l=o.canvasPos,u=l[0],c=l[1];u+10<0||c+10<0||u-10>r||c-10>i?o._setVisible(!1):!o.entity||o.entity.visible?o.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=o,this.pixels[a++]=u,this.pixels[a++]=c):o._setVisible(!0):o._setVisible(!1)}}}},{key:"_updateActiveSectionPlanes",value:function(){var e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(var n=0;n0,n=[];return n.push("#version 300 es"),n.push("// OcclusionTester vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&n.push("out vec4 vWorldPosition;"),n.push("void main(void) {"),n.push("vec4 worldPosition = vec4(position, 1.0); "),n.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&n.push(" vWorldPosition = worldPosition;"),n.push(" vec4 clipPos = projMatrix * viewPosition;"),n.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?n.push("vFragDepth = 1.0 + clipPos.w;"):n.push("clipPos.z += -0.001;"),n.push(" gl_Position = clipPos;"),n.push("}"),n}},{key:"_buildFragmentShaderSource",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.sectionPlanes.length>0,r=[];if(r.push("#version 300 es"),r.push("// OcclusionTester fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;");for(var i=0;i 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),r.push("}"),r}},{key:"_buildProgram",value:function(){this._program&&this._program.destroy();var e=this._scene,t=e.canvas.gl,n=e._sectionPlanesState;if(this._program=new bt(t,this._shaderSource),this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uViewMatrix=r.getLocation("viewMatrix"),this._uProjMatrix=r.getLocation("projMatrix"),this._uSectionPlanes=[];for(var i=0,a=n.sectionPlanes.length;i0)for(var p=r.sectionPlanes,A=0;A= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }")]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);var r=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Dt(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),this._uvBuf=new Dt(n,n.ARRAY_BUFFER,r,r.length,2,n.STATIC_DRAW),this._indicesBuf=new Dt(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}}},{key:"destroy",value:function(){this._program&&(this._program.destroy(),this._program=null)}}]),e}(),St=new Float32Array(Ht(17,[0,1])),Nt=new Float32Array(Ht(17,[1,0])),Lt=new Float32Array(function(e,t){for(var n=[],r=0;r<=e;r++)n.push(Ft(r,t));return n}(17,4)),Mt=new Float32Array(2),xt=function(){function e(t){b(this,e),this._scene=t,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}return P(e,[{key:"init",value:function(){var e=this._scene.canvas.gl;if(this._program=new bt(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS ".concat(16,"\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }")]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);var t=new Float32Array([1,1,0,1,0,0,1,0]),n=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),r=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Dt(e,e.ARRAY_BUFFER,n,n.length,3,e.STATIC_DRAW),this._uvBuf=new Dt(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Dt(e,e.ELEMENT_ARRAY_BUFFER,r,r.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}},{key:"render",value:function(e,t,n){var r=this;if(!this._programError){this._getInverseProjectMat||(this._getInverseProjectMat=function(){var e=!0;r._scene.camera.on("projMatrix",(function(){e=!0}));var t=$.mat4();return function(){return e&&$.inverseMat4(s.camera.projMatrix,t),t}}());var i=this._scene.canvas.gl,a=this._program,s=this._scene,o=i.drawingBufferWidth,l=i.drawingBufferHeight,u=s.camera.project._state,c=u.near,f=u.far;i.viewport(0,0,o,l),i.clearColor(0,0,0,1),i.enable(i.DEPTH_TEST),i.disable(i.BLEND),i.frontFace(i.CCW),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT),a.bind(),Mt[0]=o,Mt[1]=l,i.uniform2fv(this._uViewport,Mt),i.uniform1f(this._uCameraNear,c),i.uniform1f(this._uCameraFar,f),i.uniform1f(this._uDepthCutoff,.01),0===n?i.uniform2fv(this._uSampleOffsets,Nt):i.uniform2fv(this._uSampleOffsets,St),i.uniform1fv(this._uSampleWeights,Lt);var p=e.getDepthTexture(),A=t.getTexture();a.bindTexture(this._uDepthTexture,p,0),a.bindTexture(this._uOcclusionTexture,A,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),i.drawElements(i.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}}},{key:"destroy",value:function(){this._program.destroy()}}]),e}();function Ft(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Ht(e,t){for(var n=[],r=0;r<=e;r++)n.push(t[0]*r),n.push(t[1]*r);return n}var Ut=function(){function e(t,n,r){b(this,e),r=r||{},this.gl=n,this.allocated=!1,this.canvas=t,this.buffer=null,this.bound=!1,this.size=r.size,this._hasDepthTexture=!!r.depthTexture}return P(e,[{key:"setSize",value:function(e){this.size=e}},{key:"webglContextRestored",value:function(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}},{key:"bind",value:function(){if(this._touch.apply(this,arguments),!this.bound){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}}},{key:"createTexture",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.gl,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),n?r.texStorage2D(r.TEXTURE_2D,1,n,e,t):r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e,t,0,r.RGBA,r.UNSIGNED_BYTE,null),i}},{key:"_touch",value:function(){var e,t,n=this,r=this.gl;if(this.size?(e=this.size[0],t=this.size[1]):(e=r.drawingBufferWidth,t=r.drawingBufferHeight),this.buffer){if(this.buffer.width===e&&this.buffer.height===t)return;this.buffer.textures.forEach((function(e){return r.deleteTexture(e)})),r.deleteFramebuffer(this.buffer.framebuf),r.deleteRenderbuffer(this.buffer.renderbuf)}for(var i,a=[],s=arguments.length,o=new Array(s),l=0;l0?a.push.apply(a,c(o.map((function(r){return n.createTexture(e,t,r)})))):a.push(this.createTexture(e,t)),this._hasDepthTexture&&(i=r.createTexture(),r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texImage2D(r.TEXTURE_2D,0,r.DEPTH_COMPONENT32F,e,t,0,r.DEPTH_COMPONENT,r.FLOAT,null));var u=r.createRenderbuffer();r.bindRenderbuffer(r.RENDERBUFFER,u),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_COMPONENT32F,e,t);var f=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,f);for(var p=0;p0&&r.drawBuffers(a.map((function(e,t){return r.COLOR_ATTACHMENT0+t}))),this._hasDepthTexture?r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,i,0):r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,u),r.bindTexture(r.TEXTURE_2D,null),r.bindRenderbuffer(r.RENDERBUFFER,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.bindFramebuffer(r.FRAMEBUFFER,f),!r.isFramebuffer(f))throw"Invalid framebuffer";r.bindFramebuffer(r.FRAMEBUFFER,null);var A=r.checkFramebufferStatus(r.FRAMEBUFFER);switch(A){case r.FRAMEBUFFER_COMPLETE:break;case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+A}this.buffer={framebuf:f,renderbuf:u,texture:a[0],textures:a,depthTexture:i,width:e,height:t},this.bound=!1}},{key:"clear",value:function(){if(!this.bound)throw"Render buffer not bound";var e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}},{key:"read",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Uint8Array,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:4,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,o=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,u=new i(a),c=this.gl;return c.readBuffer(c.COLOR_ATTACHMENT0+s),c.readPixels(o,l,1,1,n||c.RGBA,r||c.UNSIGNED_BYTE,u,0),u}},{key:"readArray",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Uint8Array,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=new n(this.buffer.width*this.buffer.height*r),s=this.gl;return s.readBuffer(s.COLOR_ATTACHMENT0+i),s.readPixels(0,0,this.buffer.width,this.buffer.height,e||s.RGBA,t||s.UNSIGNED_BYTE,a,0),a}},{key:"readImageAsCanvas",value:function(){var e=this.gl,t=this._getImageDataCache(),n=t.pixelData,r=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,n);for(var s=this.buffer.width,o=this.buffer.height,l=o/2|0,u=4*s,c=new Uint8Array(4*s),f=0;f0&&void 0!==arguments[0]?arguments[0]:Uint8Array,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=this.buffer.width,r=this.buffer.height,i=this._imageDataCache;if(i&&(i.width===n&&i.height===r||(this._imageDataCache=null,i=null)),!i){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=n,a.height=r,i={pixelData:new e(n*r*t),canvas:a,context:s,imageData:s.createImageData(n,r),width:n,height:r},this._imageDataCache=i}return i.context.resetTransform(),i}},{key:"unbind",value:function(){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,null),this.bound=!1}},{key:"getTexture",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this;return this._texture||(this._texture={renderBuffer:this,bind:function(n){return!(!t.buffer||!t.buffer.textures[e])&&(t.gl.activeTexture(t.gl["TEXTURE"+n]),t.gl.bindTexture(t.gl.TEXTURE_2D,t.buffer.textures[e]),!0)},unbind:function(n){t.buffer&&t.buffer.textures[e]&&(t.gl.activeTexture(t.gl["TEXTURE"+n]),t.gl.bindTexture(t.gl.TEXTURE_2D,null))}})}},{key:"hasDepthTexture",value:function(){return this._hasDepthTexture}},{key:"getDepthTexture",value:function(){if(!this._hasDepthTexture)return null;var e=this;return this._depthTexture||(this._dethTexture={renderBuffer:this,bind:function(t){return!(!e.buffer||!e.buffer.depthTexture)&&(e.gl.activeTexture(e.gl["TEXTURE"+t]),e.gl.bindTexture(e.gl.TEXTURE_2D,e.buffer.depthTexture),!0)},unbind:function(t){e.buffer&&e.buffer.depthTexture&&(e.gl.activeTexture(e.gl["TEXTURE"+t]),e.gl.bindTexture(e.gl.TEXTURE_2D,null))}})}},{key:"destroy",value:function(){if(this.allocated){var e=this.gl;this.buffer.textures.forEach((function(t){return e.deleteTexture(t)})),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}]),e}(),Gt=function(){function e(t){b(this,e),this.scene=t,this._renderBuffersBasic={},this._renderBuffersScaled={}}return P(e,[{key:"getRenderBuffer",value:function(e,t){var n=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled,r=n[e];return r||(r=new Ut(this.scene.canvas.canvas,this.scene.canvas.gl,t),n[e]=r),r}},{key:"destroy",value:function(){for(var e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(var t in this._renderBuffersScaled)this._renderBuffersScaled[t].destroy()}}]),e}();function kt(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];var n;switch(t){case"WEBGL_depth_texture":n=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:n=e.getExtension(t)}return e._cachedExtensions[t]=n,n}var jt=function(e,t){t=t||{};var n=new At(e),r=e.canvas.canvas,i=e.canvas.gl,a=!!t.transparent,s=t.alphaDepthMask,o=new G({}),l={},u={},c=!0,f=!0,p=!0,A=!0,d=!0,v=!0,h=!0,I=!0,y=new Gt(e),m=!1,w=new Ot(e),g=new xt(e);function E(){c&&(!function(){for(var e in l)if(l.hasOwnProperty(e)){var t=l[e],n=t.drawableMap,r=t.drawableListPreCull,i=0;for(var a in n)n.hasOwnProperty(a)&&(r[i++]=n[a]);r.length=i}}(),c=!1,f=!0),f&&(!function(){for(var e in l)if(l.hasOwnProperty(e)){var t=l[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),f=!1,p=!0),p&&function(){for(var e in l)if(l.hasOwnProperty(e)){for(var t=l[e],n=t.drawableListPreCull,r=t.drawableList,i=0,a=0,s=n.length;a0)for(n.withSAO=!0,O=0;O0)for(O=0;O0)for(O=0;O0)for(O=0;O0||Q>0||U>0||G>0){if(i.enable(i.CULL_FACE),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):(i.blendEquation(i.FUNC_ADD),i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,s||i.depthMask(!1),(U>0||G>0)&&i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),G>0)for(O=0;O0)for(O=0;O0)for(O=0;O0)for(O=0;O0||z>0){if(n.lastProgramId=null,e.highlightMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),z>0)for(O=0;O0)for(O=0;O0||Y>0||W>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),i.enable(i.CULL_FACE),Y>0)for(O=0;O0)for(O=0;O0||q>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),q>0)for(O=0;O0)for(O=0;O0||Z>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),i.enable(i.CULL_FACE),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),Z>0)for(O=0;O0)for(O=0;O1&&void 0!==arguments[1]?arguments[1]:s;d.reset(),E();var v=null,h=null;for(var I in d.pickSurface=p.pickSurface,p.canvasPos?(u[0]=p.canvasPos[0],u[1]=p.canvasPos[1],v=e.camera.viewMatrix,h=e.camera.projMatrix,d.canvasPos=p.canvasPos):(p.matrix?(v=p.matrix,h=e.camera.projMatrix):(c.set(p.origin||[0,0,0]),f.set(p.direction||[0,0,1]),A=$.addVec3(c,f,t),i[0]=Math.random(),i[1]=Math.random(),i[2]=Math.random(),$.normalizeVec3(i),$.cross3Vec3(f,i,a),v=$.lookAtMat4v(c,A,a,n),h=e.camera.ortho.matrix,d.origin=c,d.direction=f),u[0]=.5*r.clientWidth,u[1]=.5*r.clientHeight),l)if(l.hasOwnProperty(I))for(var m=l[I].drawableList,w=0,g=m.length;w4&&void 0!==arguments[4]?arguments[4]:P;if(!a&&!s)return this.pick({canvasPos:t,pickSurface:!0});var c=e.canvas.resolutionScale;n.reset(),n.backfaces=!0,n.frontface=!0,n.pickZNear=e.camera.project.near,n.pickZFar=e.camera.project.far,r=r||30;var f=y.getRenderBuffer("uniquePickColors-aabs",{depthTexture:!0,size:[2*r+1,2*r+1]});n.snapVectorA=[B(t[0]*c,i.drawingBufferWidth),O(t[1]*c,i.drawingBufferHeight)],n.snapInvVectorAB=[i.drawingBufferWidth/(2*r),i.drawingBufferHeight/(2*r)],f.bind(i.RGBA32I,i.RGBA32I,i.RGBA8UI),i.viewport(0,0,f.size[0],f.size[1]),i.enable(i.DEPTH_TEST),i.frontFace(i.CCW),i.disable(i.CULL_FACE),i.depthMask(!0),i.disable(i.BLEND),i.depthFunc(i.LEQUAL),i.clear(i.DEPTH_BUFFER_BIT),i.clearBufferiv(i.COLOR,0,new Int32Array([0,0,0,0])),i.clearBufferiv(i.COLOR,1,new Int32Array([0,0,0,0])),i.clearBufferuiv(i.COLOR,2,new Uint32Array([0,0,0,0]));var p=e.camera.viewMatrix,A=e.camera.projMatrix;for(var d in l)if(l.hasOwnProperty(d))for(var v=l[d].drawableList,h=0,I=v.length;h0){var V=Math.floor(j/4),Q=f.size[0],W=V%Q-Math.floor(Q/2),z=Math.floor(V/Q)-Math.floor(Q/2),K=Math.sqrt(Math.pow(W,2)+Math.pow(z,2));k.push({x:W,y:z,dist:K,isVertex:a&&s?E[j+3]>g.length/2:a,result:[E[j+0],E[j+1],E[j+2],E[j+3]],normal:[T[j+0],T[j+1],T[j+2],T[j+3]],id:[b[j+0],b[j+1],b[j+2],b[j+3]]})}var Y=null,X=null,q=null,J=null;if(k.length>0){k.sort((function(e,t){return e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist})),J=k[0].isVertex?"vertex":"edge";var Z=k[0].result,ee=k[0].normal,te=k[0].id,ne=g[Z[3]],re=ne.origin,ie=ne.coordinateScale;X=$.normalizeVec3([ee[0]/$.MAX_INT,ee[1]/$.MAX_INT,ee[2]/$.MAX_INT]),Y=[Z[0]*ie[0]+re[0],Z[1]*ie[1]+re[1],Z[2]*ie[2]+re[2]],q=o.items[te[0]+(te[1]<<8)+(te[2]<<16)+(te[3]<<24)]}if(null===D&&null==Y)return null;var ae=null;null!==Y&&(ae=e.camera.projectWorldPos(Y));var se=q&&q.delegatePickedEntity?q.delegatePickedEntity():q;return u.reset(),u.snappedToEdge="edge"===J,u.snappedToVertex="vertex"===J,u.worldPos=Y,u.worldNormal=X,u.entity=se,u.canvasPos=t,u.snappedCanvasPos=ae||t,u}),this.addMarker=function(t){this._occlusionTester=this._occlusionTester||new _t(e,y),this._occlusionTester.addMarker(t),e.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){for(var e in E(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,i.viewport(0,0,i.drawingBufferWidth,i.drawingBufferHeight),i.clearColor(0,0,0,0),i.enable(i.DEPTH_TEST),i.disable(i.CULL_FACE),i.disable(i.BLEND),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT),l)if(l.hasOwnProperty(e))for(var t=l[e].drawableList,r=0,a=t.length;r0&&void 0!==arguments[0]?arguments[0]:{},t=y.getRenderBuffer("snapshot");e.width&&e.height&&t.setSize([e.width,e.height]),t.bind(),t.clear(),m=!0},this.renderSnapshot=function(){m&&(y.getRenderBuffer("snapshot").clear(),this.render({force:!0,opaqueOnly:!1}),p=!0)},this.readSnapshot=function(e){return y.getRenderBuffer("snapshot").readImage(e)},this.readSnapshotAsCanvas=function(){return y.getRenderBuffer("snapshot").readImageAsCanvas()},this.endSnapshot=function(){m&&(y.getRenderBuffer("snapshot").unbind(),m=!1)},this.destroy=function(){l={},u={},y.destroy(),w.destroy(),g.destroy(),this._occlusionTester&&this._occlusionTester.destroy()}},Vt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).KEY_BACKSPACE=8,r.KEY_TAB=9,r.KEY_ENTER=13,r.KEY_SHIFT=16,r.KEY_CTRL=17,r.KEY_ALT=18,r.KEY_PAUSE_BREAK=19,r.KEY_CAPS_LOCK=20,r.KEY_ESCAPE=27,r.KEY_PAGE_UP=33,r.KEY_PAGE_DOWN=34,r.KEY_END=35,r.KEY_HOME=36,r.KEY_LEFT_ARROW=37,r.KEY_UP_ARROW=38,r.KEY_RIGHT_ARROW=39,r.KEY_DOWN_ARROW=40,r.KEY_INSERT=45,r.KEY_DELETE=46,r.KEY_NUM_0=48,r.KEY_NUM_1=49,r.KEY_NUM_2=50,r.KEY_NUM_3=51,r.KEY_NUM_4=52,r.KEY_NUM_5=53,r.KEY_NUM_6=54,r.KEY_NUM_7=55,r.KEY_NUM_8=56,r.KEY_NUM_9=57,r.KEY_A=65,r.KEY_B=66,r.KEY_C=67,r.KEY_D=68,r.KEY_E=69,r.KEY_F=70,r.KEY_G=71,r.KEY_H=72,r.KEY_I=73,r.KEY_J=74,r.KEY_K=75,r.KEY_L=76,r.KEY_M=77,r.KEY_N=78,r.KEY_O=79,r.KEY_P=80,r.KEY_Q=81,r.KEY_R=82,r.KEY_S=83,r.KEY_T=84,r.KEY_U=85,r.KEY_V=86,r.KEY_W=87,r.KEY_X=88,r.KEY_Y=89,r.KEY_Z=90,r.KEY_LEFT_WINDOW=91,r.KEY_RIGHT_WINDOW=92,r.KEY_SELECT_KEY=93,r.KEY_NUMPAD_0=96,r.KEY_NUMPAD_1=97,r.KEY_NUMPAD_2=98,r.KEY_NUMPAD_3=99,r.KEY_NUMPAD_4=100,r.KEY_NUMPAD_5=101,r.KEY_NUMPAD_6=102,r.KEY_NUMPAD_7=103,r.KEY_NUMPAD_8=104,r.KEY_NUMPAD_9=105,r.KEY_MULTIPLY=106,r.KEY_ADD=107,r.KEY_SUBTRACT=109,r.KEY_DECIMAL_POINT=110,r.KEY_DIVIDE=111,r.KEY_F1=112,r.KEY_F2=113,r.KEY_F3=114,r.KEY_F4=115,r.KEY_F5=116,r.KEY_F6=117,r.KEY_F7=118,r.KEY_F8=119,r.KEY_F9=120,r.KEY_F10=121,r.KEY_F11=122,r.KEY_F12=123,r.KEY_NUM_LOCK=144,r.KEY_SCROLL_LOCK=145,r.KEY_SEMI_COLON=186,r.KEY_EQUAL_SIGN=187,r.KEY_COMMA=188,r.KEY_DASH=189,r.KEY_PERIOD=190,r.KEY_FORWARD_SLASH=191,r.KEY_GRAVE_ACCENT=192,r.KEY_OPEN_BRACKET=219,r.KEY_BACK_SLASH=220,r.KEY_CLOSE_BRACKET=221,r.KEY_SINGLE_QUOTE=222,r.KEY_SPACE=32,r.element=i.element,r.altDown=!1,r.ctrlDown=!1,r.mouseDownLeft=!1,r.mouseDownMiddle=!1,r.mouseDownRight=!1,r.keyDown=[],r.enabled=!0,r.keyboardEnabled=!0,r.mouseover=!1,r.mouseCanvasPos=$.vec2(),r._keyboardEventsElement=i.keyboardEventsElement||document,r._bindEvents(),r}return P(n,[{key:"_bindEvents",value:function(){var e=this;if(!this._eventsBound){this._keyboardEventsElement.addEventListener("keydown",this._keyDownListener=function(t){e.enabled&&e.keyboardEnabled&&"INPUT"!==t.target.tagName&&"TEXTAREA"!==t.target.tagName&&(t.keyCode===e.KEY_CTRL?e.ctrlDown=!0:t.keyCode===e.KEY_ALT?e.altDown=!0:t.keyCode===e.KEY_SHIFT&&(e.shiftDown=!0),e.keyDown[t.keyCode]=!0,e.fire("keydown",t.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=function(t){e.enabled&&e.keyboardEnabled&&"INPUT"!==t.target.tagName&&"TEXTAREA"!==t.target.tagName&&(t.keyCode===e.KEY_CTRL?e.ctrlDown=!1:t.keyCode===e.KEY_ALT?e.altDown=!1:t.keyCode===e.KEY_SHIFT&&(e.shiftDown=!1),e.keyDown[t.keyCode]=!1,e.fire("keyup",t.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=function(t){e.enabled&&(e.mouseover=!0,e._getMouseCanvasPos(t),e.fire("mouseenter",e.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=function(t){e.enabled&&(e.mouseover=!1,e._getMouseCanvasPos(t),e.fire("mouseleave",e.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=function(t){if(e.enabled){switch(t.which){case 1:e.mouseDownLeft=!0;break;case 2:e.mouseDownMiddle=!0;break;case 3:e.mouseDownRight=!0}e._getMouseCanvasPos(t),e.element.focus(),e.fire("mousedown",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=function(t){if(e.enabled){switch(t.which){case 1:e.mouseDownLeft=!1;break;case 2:e.mouseDownMiddle=!1;break;case 3:e.mouseDownRight=!1}e.fire("mouseup",e.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=function(t){if(e.enabled){switch(t.which){case 1:case 3:e.mouseDownLeft=!1,e.mouseDownRight=!1;break;case 2:e.mouseDownMiddle=!1}e._getMouseCanvasPos(t),e.fire("click",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=function(t){if(e.enabled){switch(t.which){case 1:case 3:e.mouseDownLeft=!1,e.mouseDownRight=!1;break;case 2:e.mouseDownMiddle=!1}e._getMouseCanvasPos(t),e.fire("dblclick",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}});var t=this.scene.tickify((function(){return e.fire("mousemove",e.mouseCanvasPos,!0)}));this.element.addEventListener("mousemove",this._mouseMoveListener=function(n){e.enabled&&(e._getMouseCanvasPos(n),t(),e.mouseover&&n.preventDefault())});var n=this.scene.tickify((function(t){e.fire("mousewheel",t,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=function(t,r){if(e.enabled){var i=Math.max(-1,Math.min(1,40*-t.deltaY));n(i)}},{passive:!0});var r,i;this.on("mousedown",(function(e){r=e[0],i=e[1]})),this.on("mouseup",(function(t){r>=t[0]-2&&r<=t[0]+2&&i>=t[1]-2&&i<=t[1]+2&&e.fire("mouseclicked",t,!0)})),this._eventsBound=!0}}},{key:"_unbindEvents",value:function(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}},{key:"_getMouseCanvasPos",value:function(e){if(e){for(var t=e.target,n=0,r=0;t.offsetParent;)n+=t.offsetLeft,r+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-n,this.mouseCanvasPos[1]=e.pageY-r}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}},{key:"setEnabled",value:function(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}},{key:"getEnabled",value:function(){return this.enabled}},{key:"setKeyboardEnabled",value:function(e){this.keyboardEnabled=e}},{key:"getKeyboardEnabled",value:function(){return this.keyboardEnabled}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._unbindEvents()}}]),n}(),Qt=new G({}),Wt=function(){function e(t){for(var n in b(this,e),this.id=Qt.addItem({}),t)t.hasOwnProperty(n)&&(this[n]=t[n])}return P(e,[{key:"destroy",value:function(){Qt.removeItem(this.id)}}]),e}(),zt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({boundary:[0,0,100,100]}),r.boundary=i.boundary,r.autoBoundary=i.autoBoundary,r}return P(n,[{key:"type",get:function(){return"Viewport"}},{key:"boundary",get:function(){return this._state.boundary},set:function(e){if(!this._autoBoundary){if(!e){var t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}},{key:"autoBoundary",get:function(){return this._autoBoundary},set:function(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){var t=e[2],n=e[3];this._state.boundary=[0,0,t,n],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Kt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:2e3}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r._fov=60,r._canvasResized=r.scene.canvas.on("boundary",r._needUpdate,g(r)),r.fov=i.fov,r.fovAxis=i.fovAxis,r.near=i.near,r.far=i.far,r}return P(n,[{key:"type",get:function(){return"Perspective"}},{key:"_update",value:function(){var e=this.scene.canvas.boundary,t=e[2]/e[3],n=this._fovAxis,r=this._fov;("x"===n||"min"===n&&t<1||"max"===n&&t>1)&&(r/=t),r=Math.min(r,120),$.perspectiveMat4(r*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}},{key:"fov",get:function(){return this._fov},set:function(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}},{key:"fovAxis",get:function(){return this._fovAxis},set:function(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}},{key:"near",get:function(){return this._state.near},set:function(e){var t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}},{key:"far",get:function(){return this._state.far},set:function(e){var t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}]),n}(),Yt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:2e3}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r.scale=i.scale,r.near=i.near,r.far=i.far,r._onCanvasBoundary=r.scene.canvas.on("boundary",r._needUpdate,g(r)),r}return P(n,[{key:"type",get:function(){return"Ortho"}},{key:"_update",value:function(){var e,t,n,r,i=this.scene,a=.5*this._scale,s=i.canvas.boundary,o=s[2],l=s[3],u=o/l;o>l?(e=-a,t=a,n=a/u,r=-a/u):(e=-a*u,t=a*u,n=a,r=-a),$.orthoMat4c(e,t,r,n,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"scale",get:function(){return this._scale},set:function(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}},{key:"near",get:function(){return this._state.near},set:function(e){var t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}},{key:"far",get:function(){return this._state.far},set:function(e){var t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}]),n}(),Xt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:1e4}),r._left=-1,r._right=1,r._bottom=-1,r._top=1,r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r.left=i.left,r.right=i.right,r.bottom=i.bottom,r.top=i.top,r.near=i.near,r.far=i.far,r}return P(n,[{key:"type",get:function(){return"Frustum"}},{key:"_update",value:function(){$.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"left",get:function(){return this._left},set:function(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}},{key:"right",get:function(){return this._right},set:function(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}},{key:"top",get:function(){return this._top},set:function(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}},{key:"bottom",get:function(){return this._bottom},set:function(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}},{key:"near",get:function(){return this._state.near},set:function(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}},{key:"far",get:function(){return this._state.far},set:function(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),qt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4()}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!1,r.matrix=i.matrix,r}return P(n,[{key:"type",get:function(){return"CustomProjection"}},{key:"matrix",get:function(){return this._state.matrix},set:function(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Jt=$.vec3(),Zt=$.vec3(),$t=$.vec3(),en=$.vec3(),tn=$.vec3(),nn=$.vec3(),rn=$.vec4(),an=$.vec4(),sn=$.vec4(),on=$.mat4(),ln=$.mat4(),un=$.vec3(),cn=$.vec3(),fn=$.vec3(),pn=$.vec3(),An=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({deviceMatrix:$.mat4(),hasDeviceMatrix:!1,matrix:$.mat4(),normalMatrix:$.mat4(),inverseMatrix:$.mat4()}),r._perspective=new Kt(g(r)),r._ortho=new Yt(g(r)),r._frustum=new Xt(g(r)),r._customProjection=new qt(g(r)),r._project=r._perspective,r._eye=$.vec3([0,0,10]),r._look=$.vec3([0,0,0]),r._up=$.vec3([0,1,0]),r._worldUp=$.vec3([0,1,0]),r._worldRight=$.vec3([1,0,0]),r._worldForward=$.vec3([0,0,-1]),r.deviceMatrix=i.deviceMatrix,r.eye=i.eye,r.look=i.look,r.up=i.up,r.worldAxis=i.worldAxis,r.gimbalLock=i.gimbalLock,r.constrainPitch=i.constrainPitch,r.projection=i.projection,r._perspective.on("matrix",(function(){"perspective"===r._projectionType&&r.fire("projMatrix",r._perspective.matrix)})),r._ortho.on("matrix",(function(){"ortho"===r._projectionType&&r.fire("projMatrix",r._ortho.matrix)})),r._frustum.on("matrix",(function(){"frustum"===r._projectionType&&r.fire("projMatrix",r._frustum.matrix)})),r._customProjection.on("matrix",(function(){"customProjection"===r._projectionType&&r.fire("projMatrix",r._customProjection.matrix)})),r}return P(n,[{key:"type",get:function(){return"Camera"}},{key:"_update",value:function(){var e,t=this._state;"ortho"===this.projection?($.subVec3(this._eye,this._look,un),$.normalizeVec3(un,cn),$.mulVec3Scalar(cn,1e3,fn),$.addVec3(this._look,fn,pn),e=pn):e=this._eye,t.hasDeviceMatrix?($.lookAtMat4v(e,this._look,this._up,ln),$.mulMat4(t.deviceMatrix,ln,t.matrix)):$.lookAtMat4v(e,this._look,this._up,t.matrix),$.inverseMat4(this._state.matrix,this._state.inverseMatrix),$.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}},{key:"orbitYaw",value:function(e){var t=$.subVec3(this._eye,this._look,Jt);$.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,on),t=$.transformPoint3(on,t,Zt),this.eye=$.addVec3(this._look,t,$t),this.up=$.transformPoint3(on,this._up,en)}},{key:"orbitPitch",value:function(e){if(!(this._constrainPitch&&(e=$.dotVec3(this._up,this._worldUp)/$.DEGTORAD)<1)){var t=$.subVec3(this._eye,this._look,Jt),n=$.cross3Vec3($.normalizeVec3(t,Zt),$.normalizeVec3(this._up,$t));$.rotationMat4v(.0174532925*e,n,on),t=$.transformPoint3(on,t,en),this.up=$.transformPoint3(on,this._up,tn),this.eye=$.addVec3(t,this._look,nn)}}},{key:"yaw",value:function(e){var t=$.subVec3(this._look,this._eye,Jt);$.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,on),t=$.transformPoint3(on,t,Zt),this.look=$.addVec3(t,this._eye,$t),this._gimbalLock&&(this.up=$.transformPoint3(on,this._up,en))}},{key:"pitch",value:function(e){if(!(this._constrainPitch&&(e=$.dotVec3(this._up,this._worldUp)/$.DEGTORAD)<1)){var t=$.subVec3(this._look,this._eye,Jt),n=$.cross3Vec3($.normalizeVec3(t,Zt),$.normalizeVec3(this._up,$t));$.rotationMat4v(.0174532925*e,n,on),this.up=$.transformPoint3(on,this._up,nn),t=$.transformPoint3(on,t,en),this.look=$.addVec3(t,this._eye,tn)}}},{key:"pan",value:function(e){var t,n=$.subVec3(this._eye,this._look,Jt),r=[0,0,0];if(0!==e[0]){var i=$.cross3Vec3($.normalizeVec3(n,[]),$.normalizeVec3(this._up,Zt));t=$.mulVec3Scalar(i,e[0]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]}0!==e[1]&&(t=$.mulVec3Scalar($.normalizeVec3(this._up,$t),e[1]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]),0!==e[2]&&(t=$.mulVec3Scalar($.normalizeVec3(n,en),e[2]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]),this.eye=$.addVec3(this._eye,r,tn),this.look=$.addVec3(this._look,r,nn)}},{key:"zoom",value:function(e){var t=$.subVec3(this._eye,this._look,Jt),n=Math.abs($.lenVec3(t,Zt)),r=Math.abs(n+e);if(!(r<.5)){var i=$.normalizeVec3(t,$t);this.eye=$.addVec3(this._look,$.mulVec3Scalar(i,r),en)}}},{key:"eye",get:function(){return this._eye},set:function(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}},{key:"look",get:function(){return this._look},set:function(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}},{key:"up",get:function(){return this._up},set:function(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}},{key:"deviceMatrix",get:function(){return this._state.deviceMatrix},set:function(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}},{key:"worldAxis",get:function(){return this._worldAxis},set:function(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=$.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}},{key:"worldUp",get:function(){return this._worldUp}},{key:"xUp",get:function(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}},{key:"yUp",get:function(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}},{key:"zUp",get:function(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}},{key:"worldRight",get:function(){return this._worldRight}},{key:"worldForward",get:function(){return this._worldForward}},{key:"gimbalLock",get:function(){return this._gimbalLock},set:function(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}},{key:"constrainPitch",set:function(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}},{key:"eyeLookDist",get:function(){return $.lenVec3($.subVec3(this._look,this._eye,Jt))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"viewMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"normalMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}},{key:"viewNormalMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}},{key:"inverseViewMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}},{key:"projMatrix",get:function(){return this[this.projection].matrix}},{key:"perspective",get:function(){return this._perspective}},{key:"ortho",get:function(){return this._ortho}},{key:"frustum",get:function(){return this._frustum}},{key:"customProjection",get:function(){return this._customProjection}},{key:"projection",get:function(){return this._projectionType},set:function(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}},{key:"project",get:function(){return this._project}},{key:"projectWorldPos",value:function(e){var t=rn,n=an,r=sn;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,$.mulMat4v4(this.viewMatrix,t,n),$.mulMat4v4(this.projMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1;var i=this.scene.canvas.canvas,a=i.offsetWidth/2,s=i.offsetHeight/2;return[r[0]*a+a,r[1]*s+s]}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),dn=function(e){I(n,ye);var t=m(n);function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),t.call(this,e,r)}return P(n,[{key:"type",get:function(){return"Light"}},{key:"isLight",get:function(){return!0}}]),n}(),vn=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._shadowRenderBuf=null,r._shadowViewMatrix=null,r._shadowProjMatrix=null,r._shadowViewMatrixDirty=!0,r._shadowProjMatrixDirty=!0;var a=r.scene.camera,s=r.scene.canvas;return r._onCameraViewMatrix=a.on("viewMatrix",(function(){r._shadowViewMatrixDirty=!0})),r._onCameraProjMatrix=a.on("projMatrix",(function(){r._shadowProjMatrixDirty=!0})),r._onCanvasBoundary=s.on("boundary",(function(){r._shadowProjMatrixDirty=!0})),r._state=new Wt({type:"dir",dir:$.vec3([1,1,1]),color:$.vec3([.7,.7,.8]),intensity:1,space:i.space||"view",castsShadow:!1,getShadowViewMatrix:function(){if(r._shadowViewMatrixDirty){r._shadowViewMatrix||(r._shadowViewMatrix=$.identityMat4());var e=r.scene.camera,t=r._state.dir,n=e.look,i=[n[0]-t[0],n[1]-t[1],n[2]-t[2]];$.lookAtMat4v(i,n,[0,1,0],r._shadowViewMatrix),r._shadowViewMatrixDirty=!1}return r._shadowViewMatrix},getShadowProjMatrix:function(){return r._shadowProjMatrixDirty&&(r._shadowProjMatrix||(r._shadowProjMatrix=$.identityMat4()),$.orthoMat4c(-40,40,-40,40,-40,80,r._shadowProjMatrix),r._shadowProjMatrixDirty=!1),r._shadowProjMatrix},getShadowRenderBuf:function(){return r._shadowRenderBuf||(r._shadowRenderBuf=new Ut(r.scene.canvas.canvas,r.scene.canvas.gl,{size:[1024,1024]})),r._shadowRenderBuf}}),r.dir=i.dir,r.color=i.color,r.intensity=i.intensity,r.castsShadow=i.castsShadow,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"DirLight"}},{key:"dir",get:function(){return this._state.dir},set:function(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}},{key:"destroy",value:function(){var e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}]),n}(),hn=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state={type:"ambient",color:$.vec3([.7,.7,.7]),intensity:1},r.color=i.color,r.intensity=i.intensity,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"AmbientLight"}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._lightDestroyed(this)}}]),n}(),In=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),r=t.call(this,e,i),re.memory.meshes++,r}return P(n,[{key:"type",get:function(){return"Geometry"}},{key:"isGeometry",get:function(){return!0}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),re.memory.meshes--}}]),n}(),yn=function(){var e=[],t=[],n=[],r=[],i=[],a=0,s=new Uint16Array(3),o=new Uint16Array(3),l=new Uint16Array(3),u=$.vec3(),c=$.vec3(),f=$.vec3(),p=$.vec3(),A=$.vec3(),d=$.vec3(),v=$.vec3();return function(h,I,y,m){!function(i,a){var s,o,l,u,c,f,p={},A=Math.pow(10,4),d=0;for(c=0,f=i.length;cO)||(C=n[D.index1],_=n[D.index2],(!N&&C>65535||_>65535)&&(N=!0),B.push(C),B.push(_));return N?new Uint32Array(B):new Uint16Array(B)}}();var mn=function(){var e=$.mat4(),t=$.mat4();return function(n,r){r=r||$.mat4();var i=n[0],a=n[1],s=n[2],o=n[3]-i,l=n[4]-a,u=n[5]-s,c=65535;return $.identityMat4(e),$.translationMat4v(n,e),$.identityMat4(t),$.scalingMat4v([o/c,l/c,u/c],t),$.mulMat4(e,t,r),r}}(),wn=function(){var e=$.mat4(),t=$.mat4();return function(n,r,i){var a,s=new Uint16Array(n.length),o=new Float32Array([i[0]!==r[0]?65535/(i[0]-r[0]):0,i[1]!==r[1]?65535/(i[1]-r[1]):0,i[2]!==r[2]?65535/(i[2]-r[2]):0]);for(a=0;a=0?1:-1),o=(1-Math.abs(i))*(a>=0?1:-1);i=s,a=o}return new Int8Array([Math[n](127.5*i+(i<0?-1:0)),Math[r](127.5*a+(a<0?-1:0))])}function Tn(e){var t=e[0],n=e[1];t/=t<0?127:128,n/=n<0?127:128;var r=1-Math.abs(t)-Math.abs(n);r<0&&(t=(1-Math.abs(n))*(t>=0?1:-1),n=(1-Math.abs(t))*(n>=0?1:-1));var i=Math.sqrt(t*t+n*n+r*r);return[t/i,n/i,r/i]}function bn(e,t,n){return e[t]*n[0]+e[t+1]*n[1]+e[t+2]*n[2]}var Dn={getPositionsBounds:function(e){var t,n,r=new Float32Array(3),i=new Float32Array(3);for(t=0;t<3;t++)r[t]=Number.MAX_VALUE,i[t]=-Number.MAX_VALUE;for(t=0;t2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r2&&void 0!==arguments[2]?arguments[2]:e;return n[0]=e[0]*t[0]+t[12],n[1]=e[1]*t[5]+t[13],n[2]=e[2]*t[10]+t[14],n[3]=e[3]*t[0]+t[12],n[4]=e[4]*t[5]+t[13],n[5]=e[5]*t[10]+t[14],n},getUVBounds:function(e){var t,n,r=new Float32Array(2),i=new Float32Array(2);for(t=0;t<2;t++)r[t]=Number.MAX_VALUE,i[t]=-Number.MAX_VALUE;for(t=0;t2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;ri&&(n=t,i=r),(r=bn(e,s,Tn(t=En(e,s,"floor","ceil"))))>i&&(n=t,i=r),(r=bn(e,s,Tn(t=En(e,s,"ceil","ceil"))))>i&&(n=t,i=r),a[s]=n[0],a[s+1]=n[1];return a},decompressNormals:function(e,t){for(var n=0,r=0,i=e.length;n=0?1:-1),s=(1-Math.abs(a))*(s>=0?1:-1));var l=Math.sqrt(a*a+s*s+o*o);t[r+0]=a/l,t[r+1]=s/l,t[r+2]=o/l,r+=3}return t},decompressNormal:function(e,t){var n=e[0],r=e[1];n=(2*n+1)/255,r=(2*r+1)/255;var i=1-Math.abs(n)-Math.abs(r);i<0&&(n=(1-Math.abs(r))*(n>=0?1:-1),r=(1-Math.abs(n))*(r>=0?1:-1));var a=Math.sqrt(n*n+r*r+i*i);return t[0]=n/a,t[1]=r/a,t[2]=i/a,t}},Pn=re.memory,Rn=$.AABB3(),Cn=function(e){I(n,In);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._state=new Wt({compressGeometry:!!i.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),r._numTriangles=0,r._edgeThreshold=i.edgeThreshold||10,r._edgeIndicesBuf=null,r._pickTrianglePositionsBuf=null,r._pickTriangleColorsBuf=null,r._aabbDirty=!0,r._boundingSphere=!0,r._aabb=null,r._aabbDirty=!0,r._obb=null,r._obbDirty=!0;var a=r._state,s=r.scene.canvas.gl;switch(i.primitive=i.primitive||"triangles",i.primitive){case"points":a.primitive=s.POINTS,a.primitiveName=i.primitive;break;case"lines":a.primitive=s.LINES,a.primitiveName=i.primitive;break;case"line-loop":a.primitive=s.LINE_LOOP,a.primitiveName=i.primitive;break;case"line-strip":a.primitive=s.LINE_STRIP,a.primitiveName=i.primitive;break;case"triangles":a.primitive=s.TRIANGLES,a.primitiveName=i.primitive;break;case"triangle-strip":a.primitive=s.TRIANGLE_STRIP,a.primitiveName=i.primitive;break;case"triangle-fan":a.primitive=s.TRIANGLE_FAN,a.primitiveName=i.primitive;break;default:r.error("Unsupported value for 'primitive': '"+i.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),a.primitive=s.TRIANGLES,a.primitiveName=i.primitive}if(i.positions)if(r._state.compressGeometry){var o=Dn.getPositionsBounds(i.positions),l=Dn.compressPositions(i.positions,o.min,o.max);a.positions=l.quantized,a.positionsDecodeMatrix=l.decodeMatrix}else a.positions=i.positions.constructor===Float32Array?i.positions:new Float32Array(i.positions);if(i.colors&&(a.colors=i.colors.constructor===Float32Array?i.colors:new Float32Array(i.colors)),i.uv)if(r._state.compressGeometry){var u=Dn.getUVBounds(i.uv),c=Dn.compressUVs(i.uv,u.min,u.max);a.uv=c.quantized,a.uvDecodeMatrix=c.decodeMatrix}else a.uv=i.uv.constructor===Float32Array?i.uv:new Float32Array(i.uv);return i.normals&&(r._state.compressGeometry?a.normals=Dn.compressNormals(i.normals):a.normals=i.normals.constructor===Float32Array?i.normals:new Float32Array(i.normals)),i.indices&&(a.indices=i.indices.constructor===Uint32Array||i.indices.constructor===Uint16Array?i.indices:new Uint32Array(i.indices),"triangles"===r._state.primitiveName&&(r._numTriangles=i.indices.length/3)),r._buildHash(),Pn.meshes++,r._buildVBOs(),r}return P(n,[{key:"type",get:function(){return"ReadableGeometry"}},{key:"isReadableGeometry",get:function(){return!0}},{key:"_buildVBOs",value:function(){var e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Pn.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Pn.positions+=e.positionsBuf.numItems),e.normals){var n=e.compressGeometry;e.normalsBuf=new Dt(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,n),Pn.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Pn.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Dt(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Pn.uvs+=e.uvBuf.numItems)}},{key:"_buildHash",value:function(){var e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}},{key:"_getEdgeIndices",value:function(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}},{key:"_getPickTrianglePositions",value:function(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}},{key:"_getPickTriangleColors",value:function(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}},{key:"_buildEdgeIndices",value:function(){var e=this._state;if(e.positions&&e.indices){var t=this.scene.canvas.gl,n=yn(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,n,n.length,1,t.STATIC_DRAW),Pn.indices+=this._edgeIndicesBuf.numItems}}},{key:"_buildPickTriangleVBOs",value:function(){var e=this._state;if(e.positions&&e.indices){var t=this.scene.canvas.gl,n=$.buildPickTriangles(e.positions,e.indices,e.compressGeometry),r=n.positions,i=n.colors;this._pickTrianglePositionsBuf=new Dt(t,t.ARRAY_BUFFER,r,r.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Dt(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Pn.positions+=this._pickTrianglePositionsBuf.numItems,Pn.colors+=this._pickTriangleColorsBuf.numItems}}},{key:"_buildPickVertexVBOs",value:function(){}},{key:"_webglContextLost",value:function(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}},{key:"_webglContextRestored",value:function(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}},{key:"primitive",get:function(){return this._state.primitiveName}},{key:"compressGeometry",get:function(){return this._state.compressGeometry}},{key:"positions",get:function(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Dn.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null},set:function(e){var t=this._state,n=t.positions;if(n)if(n.length===e.length){if(this._state.compressGeometry){var r=Dn.getPositionsBounds(e),i=Dn.compressPositions(e,r.min,r.max);e=i.quantized,t.positionsDecodeMatrix=i.decodeMatrix}n.set(e),t.positionsBuf&&t.positionsBuf.setData(n),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}},{key:"normals",get:function(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){var e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Dn.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry normals - quantized geometry is immutable");else{var t=this._state,n=t.normals;n?n.length===e.length?(n.set(e),t.normalsBuf&&t.normalsBuf.setData(n),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}}},{key:"uv",get:function(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Dn.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry UVs - quantized geometry is immutable");else{var t=this._state,n=t.uv;n?n.length===e.length?(n.set(e),t.uvBuf&&t.uvBuf.setData(n),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}}},{key:"colors",get:function(){return this._state.colors},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry colors - quantized geometry is immutable");else{var t=this._state,n=t.colors;n?n.length===e.length?(n.set(e),t.colorsBuf&&t.colorsBuf.setData(n),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}}},{key:"indices",get:function(){return this._state.indices}},{key:"aabb",get:function(){return this._aabbDirty&&(this._aabb||(this._aabb=$.AABB3()),$.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}},{key:"obb",get:function(){return this._obbDirty&&(this._obb||(this._obb=$.OBB3()),$.positions3ToAABB3(this._state.positions,Rn,this._state.positionsDecodeMatrix),$.AABB3ToOBB3(Rn,this._obb),this._obbDirty=!1),this._obb}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"_setAABBDirty",value:function(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this);var e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Pn.meshes--}}]),n}();function _n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.ySize||1;n<0&&(console.error("negative ySize not allowed - will invert"),n*=-1);var r=e.zSize||1;r<0&&(console.error("negative zSize not allowed - will invert"),r*=-1);var i=e.center,a=i?i[0]:0,s=i?i[1]:0,o=i?i[2]:0,l=-t+a,u=-n+s,c=-r+o,f=t+a,p=n+s,A=r+o;return le.apply(e,{positions:[f,p,A,l,p,A,l,u,A,f,u,A,f,p,A,f,u,A,f,u,c,f,p,c,f,p,A,f,p,c,l,p,c,l,p,A,l,p,A,l,p,c,l,u,c,l,u,A,l,u,c,f,u,c,f,u,A,l,u,A,f,u,c,l,u,c,l,p,c,f,p,c],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}var Bn=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),r=t.call(this,e,i),re.memory.materials++,r}return P(n,[{key:"type",get:function(){return"Material"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),re.memory.materials--}}]),n}(),On={opaque:0,mask:1,blend:2},Sn=["opaque","mask","blend"],Nn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"PhongMaterial",ambient:$.vec3([1,1,1]),diffuse:$.vec3([1,1,1]),specular:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.ambient=i.ambient,r.diffuse=i.diffuse,r.specular=i.specular,r.emissive=i.emissive,r.alpha=i.alpha,r.shininess=i.shininess,r.reflectivity=i.reflectivity,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,i.ambientMap&&(r._ambientMap=r._checkComponent("Texture",i.ambientMap)),i.diffuseMap&&(r._diffuseMap=r._checkComponent("Texture",i.diffuseMap)),i.specularMap&&(r._specularMap=r._checkComponent("Texture",i.specularMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.reflectivityMap&&(r._reflectivityMap=r._checkComponent("Texture",i.reflectivityMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.diffuseFresnel&&(r._diffuseFresnel=r._checkComponent("Fresnel",i.diffuseFresnel)),i.specularFresnel&&(r._specularFresnel=r._checkComponent("Fresnel",i.specularFresnel)),i.emissiveFresnel&&(r._emissiveFresnel=r._checkComponent("Fresnel",i.emissiveFresnel)),i.alphaFresnel&&(r._alphaFresnel=r._checkComponent("Fresnel",i.alphaFresnel)),i.reflectivityFresnel&&(r._reflectivityFresnel=r._checkComponent("Fresnel",i.reflectivityFresnel)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"PhongMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}},{key:"ambient",get:function(){return this._state.ambient},set:function(e){var t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"diffuse",get:function(){return this._state.diffuse},set:function(e){var t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"specular",get:function(){return this._state.specular},set:function(e){var t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"shininess",get:function(){return this._state.shininess},set:function(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"reflectivity",get:function(){return this._state.reflectivity},set:function(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}},{key:"normalMap",get:function(){return this._normalMap}},{key:"ambientMap",get:function(){return this._ambientMap}},{key:"diffuseMap",get:function(){return this._diffuseMap}},{key:"specularMap",get:function(){return this._specularMap}},{key:"emissiveMap",get:function(){return this._emissiveMap}},{key:"alphaMap",get:function(){return this._alphaMap}},{key:"reflectivityMap",get:function(){return this._reflectivityMap}},{key:"occlusionMap",get:function(){return this._occlusionMap}},{key:"diffuseFresnel",get:function(){return this._diffuseFresnel}},{key:"specularFresnel",get:function(){return this._specularFresnel}},{key:"emissiveFresnel",get:function(){return this._emissiveFresnel}},{key:"alphaFresnel",get:function(){return this._alphaFresnel}},{key:"reflectivityFresnel",get:function(){return this._reflectivityFresnel}},{key:"alphaMode",get:function(){return Sn[this._state.alphaMode]},set:function(e){var t=On[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Ln={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}},Mn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),r._preset="default",i.preset?(r.preset=i.preset,void 0!==i.fill&&(r.fill=i.fill),i.fillColor&&(r.fillColor=i.fillColor),void 0!==i.fillAlpha&&(r.fillAlpha=i.fillAlpha),void 0!==i.edges&&(r.edges=i.edges),i.edgeColor&&(r.edgeColor=i.edgeColor),void 0!==i.edgeAlpha&&(r.edgeAlpha=i.edgeAlpha),void 0!==i.edgeWidth&&(r.edgeWidth=i.edgeWidth),void 0!==i.backfaces&&(r.backfaces=i.backfaces),void 0!==i.glowThrough&&(r.glowThrough=i.glowThrough)):(r.fill=i.fill,r.fillColor=i.fillColor,r.fillAlpha=i.fillAlpha,r.edges=i.edges,r.edgeColor=i.edgeColor,r.edgeAlpha=i.edgeAlpha,r.edgeWidth=i.edgeWidth,r.backfaces=i.backfaces,r.glowThrough=i.glowThrough),r}return P(n,[{key:"type",get:function(){return"EmphasisMaterial"}},{key:"presets",get:function(){return Ln}},{key:"fill",get:function(){return this._state.fill},set:function(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}},{key:"fillColor",get:function(){return this._state.fillColor},set:function(e){var t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}},{key:"fillAlpha",get:function(){return this._state.fillAlpha},set:function(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}},{key:"edges",get:function(){return this._state.edges},set:function(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){var t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"edgeAlpha",get:function(){return this._state.edgeAlpha},set:function(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}},{key:"edgeWidth",get:function(){return this._state.edgeWidth},set:function(e){this._state.edgeWidth=e||1,this.glRedraw()}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"glowThrough",get:function(){return this._state.glowThrough},set:function(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=Ln[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Ln).join(", "))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),xn={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}},Fn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),r._preset="default",i.preset?(r.preset=i.preset,i.edgeColor&&(r.edgeColor=i.edgeColor),void 0!==i.edgeAlpha&&(r.edgeAlpha=i.edgeAlpha),void 0!==i.edgeWidth&&(r.edgeWidth=i.edgeWidth)):(r.edgeColor=i.edgeColor,r.edgeAlpha=i.edgeAlpha,r.edgeWidth=i.edgeWidth),r.edges=!1!==i.edges,r}return P(n,[{key:"type",get:function(){return"EdgeMaterial"}},{key:"presets",get:function(){return xn}},{key:"edges",get:function(){return this._state.edges},set:function(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){var t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"edgeAlpha",get:function(){return this._state.edgeAlpha},set:function(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}},{key:"edgeWidth",get:function(){return this._state.edgeWidth},set:function(e){this._state.edgeWidth=e||1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=xn[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(xn).join(", "))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Hn={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}},Un=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._units="meters",r._scale=1,r._origin=$.vec3([0,0,0]),r.units=i.units,r.scale=i.scale,r.origin=i.origin,r}return P(n,[{key:"unitsInfo",get:function(){return Hn}},{key:"units",get:function(){return this._units},set:function(e){e||(e="meters"),Hn[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}},{key:"scale",get:function(){return this._scale},set:function(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}},{key:"origin",get:function(){return this._origin},set:function(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}},{key:"worldToRealPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(3);t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}},{key:"realToWorldPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(3);return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}]),n}(),Gn=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._supported=dt.SUPPORTED_EXTENSIONS.OES_standard_derivatives,r.enabled=i.enabled,r.kernelRadius=i.kernelRadius,r.intensity=i.intensity,r.bias=i.bias,r.scale=i.scale,r.minResolution=i.minResolution,r.numSamples=i.numSamples,r.blur=i.blur,r.blendCutoff=i.blendCutoff,r.blendFactor=i.blendFactor,r}return P(n,[{key:"supported",get:function(){return this._supported}},{key:"enabled",get:function(){return this._enabled},set:function(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}},{key:"possible",get:function(){if(!this._supported)return!1;if(!this._enabled)return!1;var e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}},{key:"active",get:function(){return this._active}},{key:"kernelRadius",get:function(){return this._kernelRadius},set:function(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}},{key:"intensity",get:function(){return this._intensity},set:function(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}},{key:"bias",get:function(){return this._bias},set:function(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}},{key:"scale",get:function(){return this._scale},set:function(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}},{key:"minResolution",get:function(){return this._minResolution},set:function(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}},{key:"numSamples",get:function(){return this._numSamples},set:function(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}},{key:"blur",get:function(){return this._blur},set:function(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}},{key:"blendCutoff",get:function(){return this._blendCutoff},set:function(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}},{key:"blendFactor",get:function(){return this._blendFactor},set:function(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}}]),n}(),kn={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}},jn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),i.preset?(r.preset=i.preset,void 0!==i.pointSize&&(r.pointSize=i.pointSize),void 0!==i.roundPoints&&(r.roundPoints=i.roundPoints),void 0!==i.perspectivePoints&&(r.perspectivePoints=i.perspectivePoints),void 0!==i.minPerspectivePointSize&&(r.minPerspectivePointSize=i.minPerspectivePointSize),void 0!==i.maxPerspectivePointSize&&(r.maxPerspectivePointSize=i.minPerspectivePointSize)):(r._preset="default",r.pointSize=i.pointSize,r.roundPoints=i.roundPoints,r.perspectivePoints=i.perspectivePoints,r.minPerspectivePointSize=i.minPerspectivePointSize,r.maxPerspectivePointSize=i.maxPerspectivePointSize),r.filterIntensity=i.filterIntensity,r.minIntensity=i.minIntensity,r.maxIntensity=i.maxIntensity,r}return P(n,[{key:"type",get:function(){return"PointsMaterial"}},{key:"presets",get:function(){return kn}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||2,this.glRedraw()}},{key:"roundPoints",get:function(){return this._state.roundPoints},set:function(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"perspectivePoints",get:function(){return this._state.perspectivePoints},set:function(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"minPerspectivePointSize",get:function(){return this._state.minPerspectivePointSize},set:function(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}},{key:"maxPerspectivePointSize",get:function(){return this._state.maxPerspectivePointSize},set:function(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}},{key:"filterIntensity",get:function(){return this._state.filterIntensity},set:function(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"minIntensity",get:function(){return this._state.minIntensity},set:function(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}},{key:"maxIntensity",get:function(){return this._state.maxIntensity},set:function(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=kn[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(kn).join(", "))}}},{key:"hash",get:function(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Vn={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}},Qn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"LinesMaterial",lineWidth:null}),i.preset?(r.preset=i.preset,void 0!==i.lineWidth&&(r.lineWidth=i.lineWidth)):(r._preset="default",r.lineWidth=i.lineWidth),r}return P(n,[{key:"type",get:function(){return"LinesMaterial"}},{key:"presets",get:function(){return Vn}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=Vn[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Vn).join(", "))}}},{key:"hash",get:function(){return[""+this.lineWidth].join(";")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}();function Wn(e,t){for(var n,r,i={},a=0,s=t.length;a1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),r=t.call(this,null,i);var a=i.canvasElement||document.getElementById(i.canvasId);if(!(a instanceof HTMLCanvasElement))throw"Mandatory config expected: valid canvasId or canvasElement";r._tickifiedFunctions={};var s=!!i.transparent,o=!!i.alphaDepthMask;return r._aabbDirty=!0,r.viewer=e,r.occlusionTestCountdown=0,r.loading=0,r.startTime=(new Date).getTime(),r.models={},r.objects={},r._numObjects=0,r.visibleObjects={},r._numVisibleObjects=0,r.xrayedObjects={},r._numXRayedObjects=0,r.highlightedObjects={},r._numHighlightedObjects=0,r.selectedObjects={},r._numSelectedObjects=0,r.colorizedObjects={},r._numColorizedObjects=0,r.opacityObjects={},r._numOpacityObjects=0,r.offsetObjects={},r._numOffsetObjects=0,r._modelIds=null,r._objectIds=null,r._visibleObjectIds=null,r._xrayedObjectIds=null,r._highlightedObjectIds=null,r._selectedObjectIds=null,r._colorizedObjectIds=null,r._opacityObjectIds=null,r._offsetObjectIds=null,r._collidables={},r._compilables={},r._needRecompile=!1,r.types={},r.components={},r.sectionPlanes={},r.lights={},r.lightMaps={},r.reflectionMaps={},r.bitmaps={},r.lineSets={},r.realWorldOffset=i.realWorldOffset||new Float64Array([0,0,0]),r.canvas=new pt(g(r),{dontClear:!0,canvas:a,spinnerElementId:i.spinnerElementId,transparent:s,webgl2:!1!==i.webgl2,contextAttr:i.contextAttr||{},backgroundColor:i.backgroundColor,backgroundColorFromAmbientLight:i.backgroundColorFromAmbientLight,premultipliedAlpha:i.premultipliedAlpha}),r.canvas.on("boundary",(function(){r.glRedraw()})),r.canvas.on("webglContextFailed",(function(){alert("xeokit failed to find WebGL!")})),r._renderer=new jt(g(r),{transparent:s,alphaDepthMask:o}),r._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;var e=null;this.getHash=function(){if(e)return e;var t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";for(var n=[],r=0,i=t;rthis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},r._sectionPlanesState.setNumCachedSectionPlanes(i.numCachedSectionPlanes||0),r._lightsState=new function(){var e=$.vec4([0,0,0,0]),t=$.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];var n=null,r=null;this.getHash=function(){if(n)return n;for(var e,t=[],r=this.lights,i=0,a=r.length;i0&&t.push("/lm"),this.reflectionMaps.length>0&&t.push("/rm"),t.push(";"),n=t.join("")},this.addLight=function(e){this.lights.push(e),r=null,n=null},this.removeLight=function(e){for(var t=0,i=this.lights.length;t1&&void 0!==arguments[1])||arguments[1];e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}},{key:"_objectXRayedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}},{key:"_objectHighlightedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}},{key:"_objectSelectedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}},{key:"_objectColorizeUpdated",value:function(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}},{key:"_objectOpacityUpdated",value:function(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}},{key:"_objectOffsetUpdated",value:function(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}},{key:"_webglContextLost",value:function(){for(var e in this.canvas.spinner.processes++,this.components)if(this.components.hasOwnProperty(e)){var t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}},{key:"_webglContextRestored",value:function(){var e=this.canvas.gl;for(var t in this.components)if(this.components.hasOwnProperty(t)){var n=this.components[t];n._webglContextRestored&&n._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}},{key:"capabilities",get:function(){return this._renderer.capabilities}},{key:"entityOffsetsEnabled",get:function(){return this._entityOffsetsEnabled}},{key:"pickSurfacePrecisionEnabled",get:function(){return!1}},{key:"logarithmicDepthBufferEnabled",get:function(){return this._logarithmicDepthBufferEnabled}},{key:"numCachedSectionPlanes",get:function(){return this._sectionPlanesState.getNumCachedSectionPlanes()},set:function(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}},{key:"pbrEnabled",get:function(){return this._pbrEnabled},set:function(e){this._pbrEnabled=!!e,this.glRedraw()}},{key:"dtxEnabled",get:function(){return this._dtxEnabled},set:function(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}},{key:"colorTextureEnabled",get:function(){return this._colorTextureEnabled},set:function(e){this._colorTextureEnabled=!!e,this.glRedraw()}},{key:"doOcclusionTest",value:function(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}},{key:"render",value:function(e){e&&he.runTasks();var t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),e||this._renderer.needsRender()){t.sceneId=this.id;var n,r,i=this._passes,a=this._clearEachPass;for(n=0;na&&(a=e[3]),e[4]>s&&(s=e[4]),e[5]>o&&(o=e[5]),u=!0}u||(n=-100,r=-100,i=-100,a=100,s=100,o=100),this._aabb[0]=n,this._aabb[1]=r,this._aabb[2]=i,this._aabb[3]=a,this._aabb[4]=s,this._aabb[5]=o,this._aabbDirty=!1}return this._aabb}},{key:"_setAABBDirty",value:function(){this._aabbDirty=!0,this.fire("boundary")}},{key:"pick",value:function(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");var n=e.includeEntities||e.include;n&&(e.includeEntityIds=Wn(this,n));var r=e.excludeEntities||e.exclude;return r&&(e.excludeEntityIds=Wn(this,r)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}},{key:"snapPick",value:function(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}},{key:"clear",value:function(){var e;for(var t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}},{key:"clearLights",value:function(){for(var e=Object.keys(this.lights),t=0,n=e.length;ts&&(s=t[3]),t[4]>o&&(o=t[4]),t[5]>l&&(l=t[5]),n=!0}})),n){var u=$.AABB3();return u[0]=r,u[1]=i,u[2]=a,u[3]=s,u[4]=o,u[5]=l,u}return this.aabb}},{key:"setObjectsVisible",value:function(e,t){return this.withObjects(e,(function(e){var n=e.visible!==t;return e.visible=t,n}))}},{key:"setObjectsCollidable",value:function(e,t){return this.withObjects(e,(function(e){var n=e.collidable!==t;return e.collidable=t,n}))}},{key:"setObjectsCulled",value:function(e,t){return this.withObjects(e,(function(e){var n=e.culled!==t;return e.culled=t,n}))}},{key:"setObjectsSelected",value:function(e,t){return this.withObjects(e,(function(e){var n=e.selected!==t;return e.selected=t,n}))}},{key:"setObjectsHighlighted",value:function(e,t){return this.withObjects(e,(function(e){var n=e.highlighted!==t;return e.highlighted=t,n}))}},{key:"setObjectsXRayed",value:function(e,t){return this.withObjects(e,(function(e){var n=e.xrayed!==t;return e.xrayed=t,n}))}},{key:"setObjectsEdges",value:function(e,t){return this.withObjects(e,(function(e){var n=e.edges!==t;return e.edges=t,n}))}},{key:"setObjectsColorized",value:function(e,t){return this.withObjects(e,(function(e){e.colorize=t}))}},{key:"setObjectsOpacity",value:function(e,t){return this.withObjects(e,(function(e){var n=e.opacity!==t;return e.opacity=t,n}))}},{key:"setObjectsPickable",value:function(e,t){return this.withObjects(e,(function(e){var n=e.pickable!==t;return e.pickable=t,n}))}},{key:"setObjectsOffset",value:function(e,t){this.withObjects(e,(function(e){e.offset=t}))}},{key:"withObjects",value:function(e,t){le.isString(e)&&(e=[e]);for(var n=!1,r=0,i=e.length;rr&&(r=i,e.apply(void 0,c(n)))}));return this._tickifiedFunctions[t]={tickSubId:s,wrapperFunc:a},a}},{key:"destroy",value:function(){for(var e in v(E(n.prototype),"destroy",this).call(this),this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}]),n}(),Kn=1e3,Yn=1001,Xn=1002,qn=1003,Jn=1004,Zn=1004,$n=1005,er=1005,tr=1006,nr=1007,rr=1007,ir=1008,ar=1008,sr=1009,or=1010,lr=1011,ur=1012,cr=1013,fr=1014,pr=1015,Ar=1016,dr=1017,vr=1018,hr=1020,Ir=1021,yr=1022,mr=1023,wr=1024,gr=1025,Er=1026,Tr=1027,br=1028,Dr=1029,Pr=1030,Rr=1031,Cr=1033,_r=33776,Br=33777,Or=33778,Sr=33779,Nr=35840,Lr=35841,Mr=35842,xr=35843,Fr=36196,Hr=37492,Ur=37496,Gr=37808,kr=37809,jr=37810,Vr=37811,Qr=37812,Wr=37813,zr=37814,Kr=37815,Yr=37816,Xr=37817,qr=37818,Jr=37819,Zr=37820,$r=37821,ei=36492,ti=3e3,ni=3001,ri=1e4,ii=10001,ai=10002,si=10003,oi=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){var t=e.scene,n=e.scene._sectionPlanesState,r=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,s=e._state.stationary,o=n.getNumAllocatedSectionPlanes()>0,l=!!i.compressGeometry,u=[];u.push("#version 300 es"),u.push("// Lambertian drawing vertex shader"),u.push("in vec3 position;"),u.push("uniform mat4 modelMatrix;"),u.push("uniform mat4 viewMatrix;"),u.push("uniform mat4 projMatrix;"),u.push("uniform vec4 colorize;"),u.push("uniform vec3 offset;"),l&&u.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(u.push("uniform float logDepthBufFC;"),u.push("out float vFragDepth;"),u.push("bool isPerspectiveMatrix(mat4 m) {"),u.push(" return (m[2][3] == - 1.0);"),u.push("}"),u.push("out float isPerspective;"));o&&u.push("out vec4 vWorldPosition;");if(u.push("uniform vec4 lightAmbient;"),u.push("uniform vec4 materialColor;"),u.push("uniform vec3 materialEmissive;"),i.normalsBuf){u.push("in vec3 normal;"),u.push("uniform mat4 modelNormalMatrix;"),u.push("uniform mat4 viewNormalMatrix;");for(var c=0,f=r.lights.length;c= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),u.push(" }"),u.push(" return normalize(v);"),u.push("}"))}u.push("out vec4 vColor;"),"points"===i.primitiveName&&u.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(u.push("void billboard(inout mat4 mat) {"),u.push(" mat[0][0] = 1.0;"),u.push(" mat[0][1] = 0.0;"),u.push(" mat[0][2] = 0.0;"),"spherical"===a&&(u.push(" mat[1][0] = 0.0;"),u.push(" mat[1][1] = 1.0;"),u.push(" mat[1][2] = 0.0;")),u.push(" mat[2][0] = 0.0;"),u.push(" mat[2][1] = 0.0;"),u.push(" mat[2][2] =1.0;"),u.push("}"));u.push("void main(void) {"),u.push("vec4 localPosition = vec4(position, 1.0); "),u.push("vec4 worldPosition;"),l&&u.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(l?u.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):u.push("vec4 localNormal = vec4(normal, 0.0); "),u.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),u.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));u.push("mat4 viewMatrix2 = viewMatrix;"),u.push("mat4 modelMatrix2 = modelMatrix;"),s&&u.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(u.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),u.push("billboard(modelMatrix2);"),u.push("billboard(viewMatrix2);"),u.push("billboard(modelViewMatrix);"),i.normalsBuf&&(u.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),u.push("billboard(modelNormalMatrix2);"),u.push("billboard(viewNormalMatrix2);"),u.push("billboard(modelViewNormalMatrix);")),u.push("worldPosition = modelMatrix2 * localPosition;"),u.push("worldPosition.xyz = worldPosition.xyz + offset;"),u.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(u.push("worldPosition = modelMatrix2 * localPosition;"),u.push("worldPosition.xyz = worldPosition.xyz + offset;"),u.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&u.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(u.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),u.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),u.push("float lambertian = 1.0;"),i.normalsBuf)for(var A=0,d=r.lights.length;A0,a=t.gammaOutput,s=[];s.push("#version 300 es"),s.push("// Lambertian drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"));if(i){s.push("in vec4 vWorldPosition;"),s.push("uniform bool clippable;");for(var o=0,l=n.getNumAllocatedSectionPlanes();o 0.0) { discard; }"),s.push("}")}"points"===r.primitiveName&&(s.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),s.push("float r = dot(cxy, cxy);"),s.push("if (r > 1.0) {"),s.push(" discard;"),s.push("}"));t.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?s.push("outColor = linearToGamma(vColor, gammaFactor);"):s.push("outColor = vColor;");return s.push("}"),s}(e)):(this.vertex=function(e){var t=e.scene;e._material;var n,r=e._state,i=t._sectionPlanesState,a=e._geometry._state,s=t._lightsState,o=r.billboard,l=r.background,u=r.stationary,c=function(e){if(!e._geometry._state.uvBuf)return!1;var t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),f=ci(e),p=i.getNumAllocatedSectionPlanes()>0,A=ui(e),d=!!a.compressGeometry,v=[];v.push("#version 300 es"),v.push("// Drawing vertex shader"),v.push("in vec3 position;"),d&&v.push("uniform mat4 positionsDecodeMatrix;");v.push("uniform mat4 modelMatrix;"),v.push("uniform mat4 viewMatrix;"),v.push("uniform mat4 projMatrix;"),v.push("out vec3 vViewPosition;"),v.push("uniform vec3 offset;"),p&&v.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(v.push("uniform float logDepthBufFC;"),v.push("out float vFragDepth;"),v.push("bool isPerspectiveMatrix(mat4 m) {"),v.push(" return (m[2][3] == - 1.0);"),v.push("}"),v.push("out float isPerspective;"));s.lightMaps.length>0&&v.push("out vec3 vWorldNormal;");if(f){v.push("in vec3 normal;"),v.push("uniform mat4 modelNormalMatrix;"),v.push("uniform mat4 viewNormalMatrix;"),v.push("out vec3 vViewNormal;");for(var h=0,I=s.lights.length;h= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),v.push(" }"),v.push(" return normalize(v);"),v.push("}"))}c&&(v.push("in vec2 uv;"),v.push("out vec2 vUV;"),d&&v.push("uniform mat3 uvDecodeMatrix;"));a.colors&&(v.push("in vec4 color;"),v.push("out vec4 vColor;"));"points"===a.primitiveName&&v.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(v.push("void billboard(inout mat4 mat) {"),v.push(" mat[0][0] = 1.0;"),v.push(" mat[0][1] = 0.0;"),v.push(" mat[0][2] = 0.0;"),"spherical"===o&&(v.push(" mat[1][0] = 0.0;"),v.push(" mat[1][1] = 1.0;"),v.push(" mat[1][2] = 0.0;")),v.push(" mat[2][0] = 0.0;"),v.push(" mat[2][1] = 0.0;"),v.push(" mat[2][2] =1.0;"),v.push("}"));if(A){v.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(var y=0,m=s.lights.length;y0&&v.push("vWorldNormal = worldNormal;"),v.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),v.push("vec3 tmpVec3;"),v.push("float lightDist;");for(var w=0,g=s.lights.length;w0,l=ci(e),u=r.uvBuf,c="PhongMaterial"===s.type,f="MetallicMaterial"===s.type,p="SpecularMaterial"===s.type,A=ui(e);t.gammaInput;var d=t.gammaOutput,v=[];v.push("#version 300 es"),v.push("// Drawing fragment shader"),v.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),v.push("precision highp float;"),v.push("precision highp int;"),v.push("#else"),v.push("precision mediump float;"),v.push("precision mediump int;"),v.push("#endif"),t.logarithmicDepthBufferEnabled&&(v.push("in float isPerspective;"),v.push("uniform float logDepthBufFC;"),v.push("in float vFragDepth;"));A&&(v.push("float unpackDepth (vec4 color) {"),v.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),v.push(" return dot(color, bitShift);"),v.push("}"));v.push("uniform float gammaFactor;"),v.push("vec4 linearToLinear( in vec4 value ) {"),v.push(" return value;"),v.push("}"),v.push("vec4 sRGBToLinear( in vec4 value ) {"),v.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),v.push("}"),v.push("vec4 gammaToLinear( in vec4 value) {"),v.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),v.push("}"),d&&(v.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),v.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),v.push("}"));if(o){v.push("in vec4 vWorldPosition;"),v.push("uniform bool clippable;");for(var h=0;h0&&(v.push("uniform samplerCube lightMap;"),v.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&v.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("uniform mat4 viewMatrix;"),v.push("#define PI 3.14159265359"),v.push("#define RECIPROCAL_PI 0.31830988618"),v.push("#define RECIPROCAL_PI2 0.15915494"),v.push("#define EPSILON 1e-6"),v.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),v.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),v.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),v.push("}"),v.push("struct IncidentLight {"),v.push(" vec3 color;"),v.push(" vec3 direction;"),v.push("};"),v.push("struct ReflectedLight {"),v.push(" vec3 diffuse;"),v.push(" vec3 specular;"),v.push("};"),v.push("struct Geometry {"),v.push(" vec3 position;"),v.push(" vec3 viewNormal;"),v.push(" vec3 worldNormal;"),v.push(" vec3 viewEyeDir;"),v.push("};"),v.push("struct Material {"),v.push(" vec3 diffuseColor;"),v.push(" float specularRoughness;"),v.push(" vec3 specularColor;"),v.push(" float shine;"),v.push("};"),c&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(v.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(v.push(" vec3 irradiance = "+li[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),v.push(" irradiance *= PI;"),v.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(v.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),v.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),v.push(" radiance *= PI;"),v.push(" reflectedLight.specular += radiance;")),v.push("}")),v.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),v.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),v.push(" vec3 irradiance = dotNL * directLight.color * PI;"),v.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),v.push("}")),(f||p)&&(v.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),v.push(" float r = ggxRoughness + 0.0001;"),v.push(" return (2.0 / (r * r) - 2.0);"),v.push("}"),v.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),v.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),v.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),v.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),v.push("}"),a.reflectionMaps.length>0&&(v.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),v.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),v.push(" vec3 envMapColor = "+li[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),v.push(" return envMapColor;"),v.push("}")),v.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),v.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),v.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),v.push("}"),v.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),v.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),v.push(" return 1.0 / ( gl * gv );"),v.push("}"),v.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),v.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),v.push(" return 0.5 / max( gv + gl, EPSILON );"),v.push("}"),v.push("float D_GGX(const in float alpha, const in float dotNH) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),v.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),v.push("}"),v.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),v.push(" float alpha = ( roughness * roughness );"),v.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),v.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),v.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),v.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),v.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),v.push(" vec3 F = F_Schlick( specularColor, dotLH );"),v.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),v.push(" float D = D_GGX( alpha, dotNH );"),v.push(" return F * (G * D);"),v.push("}"),v.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),v.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),v.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),v.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),v.push(" vec4 r = roughness * c0 + c1;"),v.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),v.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),v.push(" return specularColor * AB.x + AB.y;"),v.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(v.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(v.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),v.push(" irradiance *= PI;"),v.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(v.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),v.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),v.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),v.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),v.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),v.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),v.push("}")),v.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),v.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),v.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),v.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),v.push("}")));v.push("in vec3 vViewPosition;"),r.colors&&v.push("in vec4 vColor;");u&&(l&&n._normalMap||n._ambientMap||n._baseColorMap||n._diffuseMap||n._emissiveMap||n._metallicMap||n._roughnessMap||n._metallicRoughnessMap||n._specularMap||n._glossinessMap||n._specularGlossinessMap||n._occlusionMap||n._alphaMap)&&v.push("in vec2 vUV;");l&&(a.lightMaps.length>0&&v.push("in vec3 vWorldNormal;"),v.push("in vec3 vViewNormal;"));s.ambient&&v.push("uniform vec3 materialAmbient;");s.baseColor&&v.push("uniform vec3 materialBaseColor;");void 0!==s.alpha&&null!==s.alpha&&v.push("uniform vec4 materialAlphaModeCutoff;");s.emissive&&v.push("uniform vec3 materialEmissive;");s.diffuse&&v.push("uniform vec3 materialDiffuse;");void 0!==s.glossiness&&null!==s.glossiness&&v.push("uniform float materialGlossiness;");void 0!==s.shininess&&null!==s.shininess&&v.push("uniform float materialShininess;");s.specular&&v.push("uniform vec3 materialSpecular;");void 0!==s.metallic&&null!==s.metallic&&v.push("uniform float materialMetallic;");void 0!==s.roughness&&null!==s.roughness&&v.push("uniform float materialRoughness;");void 0!==s.specularF0&&null!==s.specularF0&&v.push("uniform float materialSpecularF0;");u&&n._ambientMap&&(v.push("uniform sampler2D ambientMap;"),n._ambientMap._state.matrix&&v.push("uniform mat4 ambientMapMatrix;"));u&&n._baseColorMap&&(v.push("uniform sampler2D baseColorMap;"),n._baseColorMap._state.matrix&&v.push("uniform mat4 baseColorMapMatrix;"));u&&n._diffuseMap&&(v.push("uniform sampler2D diffuseMap;"),n._diffuseMap._state.matrix&&v.push("uniform mat4 diffuseMapMatrix;"));u&&n._emissiveMap&&(v.push("uniform sampler2D emissiveMap;"),n._emissiveMap._state.matrix&&v.push("uniform mat4 emissiveMapMatrix;"));l&&u&&n._metallicMap&&(v.push("uniform sampler2D metallicMap;"),n._metallicMap._state.matrix&&v.push("uniform mat4 metallicMapMatrix;"));l&&u&&n._roughnessMap&&(v.push("uniform sampler2D roughnessMap;"),n._roughnessMap._state.matrix&&v.push("uniform mat4 roughnessMapMatrix;"));l&&u&&n._metallicRoughnessMap&&(v.push("uniform sampler2D metallicRoughnessMap;"),n._metallicRoughnessMap._state.matrix&&v.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&n._normalMap&&(v.push("uniform sampler2D normalMap;"),n._normalMap._state.matrix&&v.push("uniform mat4 normalMapMatrix;"),v.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),v.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),v.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),v.push(" vec2 st0 = dFdx( uv.st );"),v.push(" vec2 st1 = dFdy( uv.st );"),v.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),v.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),v.push(" vec3 N = normalize( surf_norm );"),v.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),v.push(" mat3 tsn = mat3( S, T, N );"),v.push(" return normalize( tsn * mapN );"),v.push("}"));u&&n._occlusionMap&&(v.push("uniform sampler2D occlusionMap;"),n._occlusionMap._state.matrix&&v.push("uniform mat4 occlusionMapMatrix;"));u&&n._alphaMap&&(v.push("uniform sampler2D alphaMap;"),n._alphaMap._state.matrix&&v.push("uniform mat4 alphaMapMatrix;"));l&&u&&n._specularMap&&(v.push("uniform sampler2D specularMap;"),n._specularMap._state.matrix&&v.push("uniform mat4 specularMapMatrix;"));l&&u&&n._glossinessMap&&(v.push("uniform sampler2D glossinessMap;"),n._glossinessMap._state.matrix&&v.push("uniform mat4 glossinessMapMatrix;"));l&&u&&n._specularGlossinessMap&&(v.push("uniform sampler2D materialSpecularGlossinessMap;"),n._specularGlossinessMap._state.matrix&&v.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(n._diffuseFresnel||n._specularFresnel||n._alphaFresnel||n._emissiveFresnel||n._reflectivityFresnel)&&(v.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),v.push(" float fr = abs(dot(eyeDir, normal));"),v.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),v.push(" return pow(finalFr, power);"),v.push("}"),n._diffuseFresnel&&(v.push("uniform float diffuseFresnelCenterBias;"),v.push("uniform float diffuseFresnelEdgeBias;"),v.push("uniform float diffuseFresnelPower;"),v.push("uniform vec3 diffuseFresnelCenterColor;"),v.push("uniform vec3 diffuseFresnelEdgeColor;")),n._specularFresnel&&(v.push("uniform float specularFresnelCenterBias;"),v.push("uniform float specularFresnelEdgeBias;"),v.push("uniform float specularFresnelPower;"),v.push("uniform vec3 specularFresnelCenterColor;"),v.push("uniform vec3 specularFresnelEdgeColor;")),n._alphaFresnel&&(v.push("uniform float alphaFresnelCenterBias;"),v.push("uniform float alphaFresnelEdgeBias;"),v.push("uniform float alphaFresnelPower;"),v.push("uniform vec3 alphaFresnelCenterColor;"),v.push("uniform vec3 alphaFresnelEdgeColor;")),n._reflectivityFresnel&&(v.push("uniform float materialSpecularF0FresnelCenterBias;"),v.push("uniform float materialSpecularF0FresnelEdgeBias;"),v.push("uniform float materialSpecularF0FresnelPower;"),v.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),v.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),n._emissiveFresnel&&(v.push("uniform float emissiveFresnelCenterBias;"),v.push("uniform float emissiveFresnelEdgeBias;"),v.push("uniform float emissiveFresnelPower;"),v.push("uniform vec3 emissiveFresnelCenterColor;"),v.push("uniform vec3 emissiveFresnelEdgeColor;")));if(v.push("uniform vec4 lightAmbient;"),l)for(var I=0,y=a.lights.length;I 0.0) { discard; }"),v.push("}")}"points"===r.primitiveName&&(v.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),v.push("float r = dot(cxy, cxy);"),v.push("if (r > 1.0) {"),v.push(" discard;"),v.push("}"));v.push("float occlusion = 1.0;"),s.ambient?v.push("vec3 ambientColor = materialAmbient;"):v.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");s.diffuse?v.push("vec3 diffuseColor = materialDiffuse;"):s.baseColor?v.push("vec3 diffuseColor = materialBaseColor;"):v.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");r.colors&&v.push("diffuseColor *= vColor.rgb;");s.emissive?v.push("vec3 emissiveColor = materialEmissive;"):v.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");s.specular?v.push("vec3 specular = materialSpecular;"):v.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==s.alpha?v.push("float alpha = materialAlphaModeCutoff[0];"):v.push("float alpha = 1.0;");r.colors&&v.push("alpha *= vColor.a;");void 0!==s.glossiness?v.push("float glossiness = materialGlossiness;"):v.push("float glossiness = 1.0;");void 0!==s.metallic?v.push("float metallic = materialMetallic;"):v.push("float metallic = 1.0;");void 0!==s.roughness?v.push("float roughness = materialRoughness;"):v.push("float roughness = 1.0;");void 0!==s.specularF0?v.push("float specularF0 = materialSpecularF0;"):v.push("float specularF0 = 1.0;");u&&(l&&n._normalMap||n._ambientMap||n._baseColorMap||n._diffuseMap||n._occlusionMap||n._emissiveMap||n._metallicMap||n._roughnessMap||n._metallicRoughnessMap||n._specularMap||n._glossinessMap||n._specularGlossinessMap||n._alphaMap)&&(v.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),v.push("vec2 textureCoord;"));u&&n._ambientMap&&(n._ambientMap._state.matrix?v.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),v.push("ambientTexel = "+li[n._ambientMap._state.encoding]+"(ambientTexel);"),v.push("ambientColor *= ambientTexel.rgb;"));u&&n._diffuseMap&&(n._diffuseMap._state.matrix?v.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),v.push("diffuseTexel = "+li[n._diffuseMap._state.encoding]+"(diffuseTexel);"),v.push("diffuseColor *= diffuseTexel.rgb;"),v.push("alpha *= diffuseTexel.a;"));u&&n._baseColorMap&&(n._baseColorMap._state.matrix?v.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),v.push("baseColorTexel = "+li[n._baseColorMap._state.encoding]+"(baseColorTexel);"),v.push("diffuseColor *= baseColorTexel.rgb;"),v.push("alpha *= baseColorTexel.a;"));u&&n._emissiveMap&&(n._emissiveMap._state.matrix?v.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),v.push("emissiveTexel = "+li[n._emissiveMap._state.encoding]+"(emissiveTexel);"),v.push("emissiveColor = emissiveTexel.rgb;"));u&&n._alphaMap&&(n._alphaMap._state.matrix?v.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("alpha *= texture(alphaMap, textureCoord).r;"));u&&n._occlusionMap&&(n._occlusionMap._state.matrix?v.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(l&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){u&&n._normalMap?(n._normalMap._state.matrix?v.push("textureCoord = (normalMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):v.push("vec3 viewNormal = normalize(vViewNormal);"),u&&n._specularMap&&(n._specularMap._state.matrix?v.push("textureCoord = (specularMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("specular *= texture(specularMap, textureCoord).rgb;")),u&&n._glossinessMap&&(n._glossinessMap._state.matrix?v.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("glossiness *= texture(glossinessMap, textureCoord).r;")),u&&n._specularGlossinessMap&&(n._specularGlossinessMap._state.matrix?v.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),v.push("specular *= specGlossRGB.rgb;"),v.push("glossiness *= specGlossRGB.a;")),u&&n._metallicMap&&(n._metallicMap._state.matrix?v.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("metallic *= texture(metallicMap, textureCoord).r;")),u&&n._roughnessMap&&(n._roughnessMap._state.matrix?v.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("roughness *= texture(roughnessMap, textureCoord).r;")),u&&n._metallicRoughnessMap&&(n._metallicRoughnessMap._state.matrix?v.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),v.push("metallic *= metalRoughRGB.b;"),v.push("roughness *= metalRoughRGB.g;")),v.push("vec3 viewEyeDir = normalize(-vViewPosition);"),n._diffuseFresnel&&(v.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),v.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),n._specularFresnel&&(v.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),v.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),n._alphaFresnel&&(v.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),v.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),n._emissiveFresnel&&(v.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),v.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),v.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),v.push(" discard;"),v.push("}"),v.push("IncidentLight light;"),v.push("Material material;"),v.push("Geometry geometry;"),v.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),v.push("vec3 viewLightDir;"),c&&(v.push("material.diffuseColor = diffuseColor;"),v.push("material.specularColor = specular;"),v.push("material.shine = materialShininess;")),p&&(v.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),v.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),v.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),v.push("material.specularColor = specular;")),f&&(v.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),v.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),v.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),v.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),v.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&v.push("geometry.worldNormal = normalize(vWorldNormal);"),v.push("geometry.viewNormal = viewNormal;"),v.push("geometry.viewEyeDir = viewEyeDir;"),c&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||f)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("computePBRLightMapping(geometry, material, reflectedLight);"),v.push("float shadow = 1.0;"),v.push("float shadowAcneRemover = 0.007;"),v.push("vec3 fragmentDepth;"),v.push("float texelSize = 1.0 / 1024.0;"),v.push("float amountInLight = 0.0;"),v.push("vec3 shadowCoord;"),v.push("vec4 rgbaDepth;"),v.push("float depth;");for(var E=0,T=a.lights.length;E0)for(var v=r._sectionPlanesState.sectionPlanes,h=t.renderFlags,I=0;I0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(c=0,f=a.sectionPlanes.length;c0&&a.lightMaps[0].texture&&this._uLightMap&&(o.bindTexture(this._uLightMap,a.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%n,e.bindTexture++),a.reflectionMaps.length>0&&a.reflectionMaps[0].texture&&this._uReflectionMap&&(o.bindTexture(this._uReflectionMap,a.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%n,e.bindTexture++),this._uGammaFactor&&i.uniform1f(this._uGammaFactor,r.gammaFactor),this._baseTextureUnit=e.textureUnit};var vi=P((function e(t){b(this,e),this.vertex=function(e){var t=e.scene,n=t._lightsState,r=function(e){var t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,s=e._state.billboard,o=e._state.stationary,l=[];l.push("#version 300 es"),l.push("// EmphasisFillShaderSource vertex shader"),l.push("in vec3 position;"),l.push("uniform mat4 modelMatrix;"),l.push("uniform mat4 viewMatrix;"),l.push("uniform mat4 projMatrix;"),l.push("uniform vec4 colorize;"),l.push("uniform vec3 offset;"),a&&l.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;"));i&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),r){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.push("uniform mat4 viewNormalMatrix;");for(var u=0,c=n.lights.length;u= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"))}l.push("out vec4 vColor;"),("spherical"===s||"cylindrical"===s)&&(l.push("void billboard(inout mat4 mat) {"),l.push(" mat[0][0] = 1.0;"),l.push(" mat[0][1] = 0.0;"),l.push(" mat[0][2] = 0.0;"),"spherical"===s&&(l.push(" mat[1][0] = 0.0;"),l.push(" mat[1][1] = 1.0;"),l.push(" mat[1][2] = 0.0;")),l.push(" mat[2][0] = 0.0;"),l.push(" mat[2][1] = 0.0;"),l.push(" mat[2][2] =1.0;"),l.push("}"));l.push("void main(void) {"),l.push("vec4 localPosition = vec4(position, 1.0); "),l.push("vec4 worldPosition;"),a&&l.push("localPosition = positionsDecodeMatrix * localPosition;");r&&(a?l.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):l.push("vec4 localNormal = vec4(normal, 0.0); "),l.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),l.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));l.push("mat4 viewMatrix2 = viewMatrix;"),l.push("mat4 modelMatrix2 = modelMatrix;"),o&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===s||"cylindrical"===s?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),r&&(l.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),l.push("billboard(modelNormalMatrix2);"),l.push("billboard(viewNormalMatrix2);"),l.push("billboard(modelViewNormalMatrix);")),l.push("worldPosition = modelMatrix2 * localPosition;"),l.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(l.push("worldPosition = modelMatrix2 * localPosition;"),l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r&&l.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),r)for(var p=0,A=n.lights.length;p0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));r&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(var s=0,o=n.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");r?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(t)}));var hi=new G({}),Ii=$.vec3(),yi=function(e,t){this.id=hi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new vi(t),this._allocate(t)},mi={};yi.get=function(e){var t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=mi[t];return n||(n=new yi(t,e),mi[t]=n,re.memory.programs++),n._useCount++,n},yi.prototype.put=function(){0==--this._useCount&&(hi.removeItem(this.id),this._program&&this._program.destroy(),delete mi[this._hash],re.memory.programs--)},yi.prototype.webglContextRestored=function(){this._program=null},yi.prototype.drawMesh=function(e,t,n){this._program||this._allocate(t);var r=this._scene,i=r.camera,a=r.canvas.gl,s=0===n?t._xrayMaterial._state:1===n?t._highlightMaterial._state:t._selectedMaterial._state,o=t._state,l=t._geometry._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(o.originHash,u):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),o.clippable){var c=r._sectionPlanesState.getNumAllocatedSectionPlanes(),f=r._sectionPlanesState.sectionPlanes.length;if(c>0)for(var p=r._sectionPlanesState.sectionPlanes,A=t.renderFlags,d=0;d0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Edges drawing vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform vec4 edgeColor;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));n&&s.push("out vec4 vWorldPosition;");s.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"),s.push("billboard(modelViewMatrix);"),s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s.push("vColor = edgeColor;"),n&&s.push("vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = clipPos;"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=e.scene._sectionPlanesState,r=e.scene.gammaOutput,i=n.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));r&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(var s=0,o=n.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");r?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(t)}));var gi=new G({}),Ei=$.vec3(),Ti=function(e,t){this.id=gi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new wi(t),this._allocate(t)},bi={};Ti.get=function(e){var t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=bi[t];return n||(n=new Ti(t,e),bi[t]=n,re.memory.programs++),n._useCount++,n},Ti.prototype.put=function(){0==--this._useCount&&(gi.removeItem(this.id),this._program&&this._program.destroy(),delete bi[this._hash],re.memory.programs--)},Ti.prototype.webglContextRestored=function(){this._program=null},Ti.prototype.drawMesh=function(e,t,n){this._program||this._allocate(t);var r,i,a=this._scene,s=a.camera,o=a.canvas.gl,l=t._state,u=t._geometry,c=u._state,f=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,f?e.getRTCViewMatrix(l.originHash,f):s.viewMatrix),l.clippable){var p=a._sectionPlanesState.getNumAllocatedSectionPlanes(),A=a._sectionPlanesState.sectionPlanes.length;if(p>0)for(var d=a._sectionPlanesState.sectionPlanes,v=t.renderFlags,h=0;h0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Mesh picking vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("out vec4 vViewPosition;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");n&&s.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("uniform vec2 pickClipPos;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy -= pickClipPos;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"));s.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),n&&s.push(" vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(t)}));var Pi=$.vec3(),Ri=function(e,t){this._hash=e,this._shaderSource=new Di(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ci={};Ri.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";"),n=Ci[t];if(!n){if((n=new Ri(t,e)).errors)return console.log(n.errors.join("\n")),null;Ci[t]=n,re.memory.programs++}return n._useCount++,n},Ri.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ci[this._hash],re.memory.programs--)},Ri.prototype.webglContextRestored=function(){this._program=null},Ri.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._state,a=t._material._state,s=t._geometry._state,o=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){var l=n._sectionPlanesState.getNumAllocatedSectionPlanes(),u=n._sectionPlanesState.sectionPlanes.length;if(l>0)for(var c=n._sectionPlanesState.sectionPlanes,f=t.renderFlags,p=0;p>24&255,g=m>>16&255,E=m>>8&255,T=255&m;r.uniform4f(this._uPickColor,T/255,E/255,g/255,w/255),r.uniform2fv(this._uPickClipPos,e.pickClipPos),s.indicesBuf?(r.drawElements(s.primitive,s.indicesBuf.numItems,s.indicesBuf.itemType,0),e.drawElements++):s.positions&&r.drawArrays(r.TRIANGLES,0,s.positions.numItems)},Ri.prototype._allocate=function(e){var t=e.scene,n=t.canvas.gl;if(this._program=new bt(n,this._shaderSource),this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uPositionsDecodeMatrix=r.getLocation("positionsDecodeMatrix"),this._uModelMatrix=r.getLocation("modelMatrix"),this._uViewMatrix=r.getLocation("viewMatrix"),this._uProjMatrix=r.getLocation("projMatrix"),this._uSectionPlanes=[];for(var i=0,a=t._sectionPlanesState.sectionPlanes.length;i0,r=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),n&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),r&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),r&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),n&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(t)}));var Bi=$.vec3(),Oi=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new _i(t),this._allocate(t)},Si={};Oi.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=Si[t];if(!n){if((n=new Oi(t,e)).errors)return console.log(n.errors.join("\n")),null;Si[t]=n,re.memory.programs++}return n._useCount++,n},Oi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Si[this._hash],re.memory.programs--)},Oi.prototype.webglContextRestored=function(){this._program=null},Oi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._state,a=t._material._state,s=t._geometry,o=t._geometry._state,l=t.origin,u=a.backfaces,c=a.frontface,f=n.camera.project,p=s._getPickTrianglePositions(),A=s._getPickTriangleColors();if(this._program.bind(),e.useProgram++,n.logarithmicDepthBufferEnabled){var d=2/(Math.log(f.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,d)}if(r.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){var v=n._sectionPlanesState.getNumAllocatedSectionPlanes(),h=n._sectionPlanesState.sectionPlanes.length;if(v>0)for(var I=n._sectionPlanesState.sectionPlanes,y=t.renderFlags,m=0;m0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Mesh occlusion vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");n&&s.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"),s.push("billboard(modelViewMatrix);"),s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&s.push(" vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = clipPos;"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(t)}));var Li=$.vec3(),Mi=function(e,t){this._hash=e,this._shaderSource=new Ni(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},xi={};Mi.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";"),n=xi[t];if(!n){if((n=new Mi(t,e)).errors)return console.log(n.errors.join("\n")),null;xi[t]=n,re.memory.programs++}return n._useCount++,n},Mi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete xi[this._hash],re.memory.programs--)},Mi.prototype.webglContextRestored=function(){this._program=null},Mi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._material._state,a=t._state,s=t._geometry._state,o=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){var l=i.backfaces;e.backfaces!==l&&(l?r.disable(r.CULL_FACE):r.enable(r.CULL_FACE),e.backfaces=l);var u=i.frontface;e.frontface!==u&&(u?r.frontFace(r.CCW):r.frontFace(r.CW),e.frontface=u),this._lastMaterialId=i.id}var c=n.camera;if(r.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCViewMatrix(a.originHash,o):c.viewMatrix),a.clippable){var f=n._sectionPlanesState.getNumAllocatedSectionPlanes(),p=n._sectionPlanesState.sectionPlanes.length;if(f>0)for(var A=n._sectionPlanesState.sectionPlanes,d=t.renderFlags,v=0;v0,n=!!e._geometry._state.compressGeometry,r=[];r.push("// Mesh shadow vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 shadowViewMatrix;"),r.push("uniform mat4 shadowProjMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t&&r.push("out vec4 vWorldPosition;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("worldPosition = modelMatrix * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&r.push("vWorldPosition = worldPosition;");return r.push(" gl_Position = shadowProjMatrix * viewPosition;"),r.push("}"),r}(t),this.fragment=function(e){var t=e.scene;t.canvas.gl;var n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(t)}));var Hi=function(e,t){this._hash=e,this._shaderSource=new Fi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ui={};Hi.get=function(e){var t=e.scene,n=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";"),r=Ui[n];if(!r){if((r=new Hi(n,e)).errors)return console.log(r.errors.join("\n")),null;Ui[n]=r,re.memory.programs++}return r._useCount++,r},Hi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ui[this._hash],re.memory.programs--)},Hi.prototype.webglContextRestored=function(){this._program=null},Hi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene.canvas.gl,r=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){var a=r.backfaces;e.backfaces!==a&&(a?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=a);var s=r.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),e.lineWidth!==r.lineWidth&&(n.lineWidth(r.lineWidth),e.lineWidth=r.lineWidth),this._uPointSize&&n.uniform1i(this._uPointSize,r.pointSize),this._lastMaterialId=r.id}if(n.uniformMatrix4fv(this._uModelMatrix,n.FALSE,t.worldMatrix),i.combineGeometry){var o=t.vertexBufs;o.id!==this._lastVertexBufsId&&(o.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(o.positionsBuf,o.compressGeometry?n.UNSIGNED_SHORT:n.FLOAT),e.bindArray++),this._lastVertexBufsId=o.id)}this._uClippable&&n.uniform1i(this._uClippable,t._state.clippable),n.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&n.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?n.UNSIGNED_SHORT:n.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(n.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(n.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(n.drawArrays(n.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},Hi.prototype._allocate=function(e){var t=e.scene,n=t.canvas.gl;if(this._program=new bt(n,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uPositionsDecodeMatrix=r.getLocation("positionsDecodeMatrix"),this._uModelMatrix=r.getLocation("modelMatrix"),this._uShadowViewMatrix=r.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=r.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(var i=0,a=t._sectionPlanesState.sectionPlanes.length;i0)for(var i,a,s,o=0,l=this._uSectionPlanes.length;o1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i)).originalSystemId=i.originalSystemId||r.id,r.renderFlags=new Gi,r._state=new Wt({visible:!0,culled:!1,pickable:null,clippable:null,collidable:null,occluder:!1!==i.occluder,castsShadow:null,receivesShadow:null,xrayed:!1,highlighted:!1,selected:!1,edges:!1,stationary:!!i.stationary,background:!!i.background,billboard:r._checkBillboard(i.billboard),layer:null,colorize:null,pickID:r.scene._renderer.getPickID(g(r)),drawHash:"",pickHash:"",offset:$.vec3(),origin:null,originHash:null}),r._drawRenderer=null,r._shadowRenderer=null,r._emphasisFillRenderer=null,r._emphasisEdgesRenderer=null,r._pickMeshRenderer=null,r._pickTriangleRenderer=null,r._occlusionRenderer=null,r._geometry=i.geometry?r._checkComponent2(["ReadableGeometry","VBOGeometry"],i.geometry):r.scene.geometry,r._material=i.material?r._checkComponent2(["PhongMaterial","MetallicMaterial","SpecularMaterial","LambertMaterial"],i.material):r.scene.material,r._xrayMaterial=i.xrayMaterial?r._checkComponent("EmphasisMaterial",i.xrayMaterial):r.scene.xrayMaterial,r._highlightMaterial=i.highlightMaterial?r._checkComponent("EmphasisMaterial",i.highlightMaterial):r.scene.highlightMaterial,r._selectedMaterial=i.selectedMaterial?r._checkComponent("EmphasisMaterial",i.selectedMaterial):r.scene.selectedMaterial,r._edgeMaterial=i.edgeMaterial?r._checkComponent("EdgeMaterial",i.edgeMaterial):r.scene.edgeMaterial,r._parentNode=null,r._aabb=null,r._aabbDirty=!0,r._numTriangles=r._geometry?r._geometry.numTriangles:0,r.scene._aabbDirty=!0,r._scale=$.vec3(),r._quaternion=$.identityQuaternion(),r._rotation=$.vec3(),r._position=$.vec3(),r._worldMatrix=$.identityMat4(),r._worldNormalMatrix=$.identityMat4(),r._localMatrixDirty=!0,r._worldMatrixDirty=!0,r._worldNormalMatrixDirty=!0;var a=i.origin||i.rtcCenter;if(a&&(r._state.origin=$.vec3(a),r._state.originHash=a.join()),i.matrix?r.matrix=i.matrix:(r.scale=i.scale,r.position=i.position,i.quaternion||(r.rotation=i.rotation)),r._isObject=i.isObject,r._isObject&&r.scene._registerObject(g(r)),r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.layer=i.layer,r.colorize=i.colorize,r.opacity=i.opacity,r.offset=i.offset,i.parentId){var s=r.scene.components[i.parentId];s?s.isNode?s.addChild(g(r)):r.error("Parent is not a Node: '"+i.parentId+"'"):r.error("Parent not found: '"+i.parentId+"'"),r._parentNode=s}else i.parent&&(i.parent.isNode||r.error("Parent is not a Node"),i.parent.addChild(g(r)),r._parentNode=i.parent);return r.compile(),r}return P(n,[{key:"type",get:function(){return"Mesh"}},{key:"isMesh",get:function(){return!0}},{key:"parent",get:function(){return this._parentNode}},{key:"geometry",get:function(){return this._geometry}},{key:"material",get:function(){return this._material}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"matrix",get:function(){return this._localMatrixDirty&&(this.__localMatrix||(this.__localMatrix=$.identityMat4()),$.composeMat4(this._position,this._quaternion,this._scale,this.__localMatrix),this._localMatrixDirty=!1),this.__localMatrix},set:function(e){this.__localMatrix||(this.__localMatrix=$.identityMat4()),this.__localMatrix.set(e||qi),$.decomposeMat4(this.__localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._setWorldMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"worldMatrix",get:function(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}},{key:"worldNormalMatrix",get:function(){return this._worldNormalMatrixDirty&&this._buildWorldNormalMatrix(),this._worldNormalMatrix}},{key:"isEntity",get:function(){return!0}},{key:"isModel",get:function(){return this._isModel}},{key:"isObject",get:function(){return this._isObject}},{key:"aabb",get:function(){return this._aabbDirty&&this._updateAABB(),this._aabb}},{key:"origin",get:function(){return this._state.origin},set:function(e){e?(this._state.origin||(this._state.origin=$.vec3()),this._state.origin.set(e),this._state.originHash=e.join(),this._setAABBDirty(),this.scene._aabbDirty=!0):this._state.origin&&(this._state.origin=null,this._state.originHash=null,this._setAABBDirty(),this.scene._aabbDirty=!0)}},{key:"rtcCenter",get:function(){return this.origin},set:function(e){this.origin=e}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"visible",get:function(){return this._state.visible},set:function(e){e=!1!==e,this._state.visible=e,this._isObject&&this.scene._objectVisibilityUpdated(this,e),this.glRedraw()}},{key:"xrayed",get:function(){return this._state.xrayed},set:function(e){e=!!e,this._state.xrayed!==e&&(this._state.xrayed=e,this._isObject&&this.scene._objectXRayedUpdated(this,e),this.glRedraw())}},{key:"highlighted",get:function(){return this._state.highlighted},set:function(e){(e=!!e)!==this._state.highlighted&&(this._state.highlighted=e,this._isObject&&this.scene._objectHighlightedUpdated(this,e),this.glRedraw())}},{key:"selected",get:function(){return this._state.selected},set:function(e){(e=!!e)!==this._state.selected&&(this._state.selected=e,this._isObject&&this.scene._objectSelectedUpdated(this,e),this.glRedraw())}},{key:"edges",get:function(){return this._state.edges},set:function(e){(e=!!e)!==this._state.edges&&(this._state.edges=e,this.glRedraw())}},{key:"culled",get:function(){return this._state.culled},set:function(e){this._state.culled=!!e,this.glRedraw()}},{key:"clippable",get:function(){return this._state.clippable},set:function(e){e=!1!==e,this._state.clippable!==e&&(this._state.clippable=e,this.glRedraw())}},{key:"collidable",get:function(){return this._state.collidable},set:function(e){(e=!1!==e)!==this._state.collidable&&(this._state.collidable=e,this._setAABBDirty(),this.scene._aabbDirty=!0)}},{key:"pickable",get:function(){return this._state.pickable},set:function(e){e=!1!==e,this._state.pickable!==e&&(this._state.pickable=e)}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){(e=!1!==e)!==this._state.castsShadow&&(this._state.castsShadow=e,this.glRedraw())}},{key:"receivesShadow",get:function(){return this._state.receivesShadow},set:function(e){(e=!1!==e)!==this._state.receivesShadow&&(this._state.receivesShadow=e,this._state.hash=e?"/mod/rs;":"/mod;",this.fire("dirty",this))}},{key:"saoEnabled",get:function(){return!1}},{key:"colorize",get:function(){return this._state.colorize},set:function(e){var t=this._state.colorize;t||((t=this._state.colorize=new Float32Array(4))[3]=1),e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1);var n=!!e;this.scene._objectColorizeUpdated(this,n),this.glRedraw()}},{key:"opacity",get:function(){return this._state.colorize[3]},set:function(e){var t=this._state.colorize;t||((t=this._state.colorize=new Float32Array(4))[0]=1,t[1]=1,t[2]=1);var n=null!=e;t[3]=n?e:1,this.scene._objectOpacityUpdated(this,n),this.glRedraw()}},{key:"transparent",get:function(){return 2===this._material.alphaMode||this._state.colorize[3]<1}},{key:"layer",get:function(){return this._state.layer},set:function(e){e=e||0,(e=Math.round(e))!==this._state.layer&&(this._state.layer=e,this._renderer.needStateSort())}},{key:"stationary",get:function(){return this._state.stationary}},{key:"billboard",get:function(){return this._state.billboard}},{key:"offset",get:function(){return this._state.offset},set:function(e){this._state.offset.set(e||[0,0,0]),this._setAABBDirty(),this.glRedraw()}},{key:"isDrawable",get:function(){return!0}},{key:"isStateSortable",get:function(){return!0}},{key:"xrayMaterial",get:function(){return this._xrayMaterial}},{key:"highlightMaterial",get:function(){return this._highlightMaterial}},{key:"selectedMaterial",get:function(){return this._selectedMaterial}},{key:"edgeMaterial",get:function(){return this._edgeMaterial}},{key:"_checkBillboard",value:function(e){return"spherical"!==(e=e||"none")&&"cylindrical"!==e&&"none"!==e&&(this.error("Unsupported value for 'billboard': "+e+" - accepted values are 'spherical', 'cylindrical' and 'none' - defaulting to 'none'."),e="none"),e}},{key:"compile",value:function(){var e=this._makeDrawHash();this._state.drawHash!==e&&(this._state.drawHash=e,this._putDrawRenderers(),this._drawRenderer=Ai.get(this),this._emphasisFillRenderer=yi.get(this),this._emphasisEdgesRenderer=Ti.get(this));var t=this._makePickHash();if(this._state.pickHash!==t&&(this._state.pickHash=t,this._putPickRenderers(),this._pickMeshRenderer=Ri.get(this)),this._state.occluder){var n=this._makeOcclusionHash();this._state.occlusionHash!==n&&(this._state.occlusionHash=n,this._putOcclusionRenderer(),this._occlusionRenderer=Mi.get(this))}}},{key:"_setLocalMatrixDirty",value:function(){this._localMatrixDirty=!0,this._setWorldMatrixDirty()}},{key:"_setWorldMatrixDirty",value:function(){this._worldMatrixDirty=!0,this._worldNormalMatrixDirty=!0}},{key:"_buildWorldMatrix",value:function(){var e=this.matrix;if(this._parentNode)$.mulMat4(this._parentNode.worldMatrix,e,this._worldMatrix);else for(var t=0,n=e.length;t0)for(var n=0;n-1){var M=B.geometry._state,x=B.scene,F=x.camera,H=x.canvas;if("triangles"===M.primitiveName){N.primitive="triangle";var U,G,k,j=L,V=M.indices,Q=M.positions;if(V){var W=V[j+0],z=V[j+1],K=V[j+2];a[0]=W,a[1]=z,a[2]=K,N.indices=a,U=3*W,G=3*z,k=3*K}else k=(G=(U=3*j)+3)+3;if(n[0]=Q[U+0],n[1]=Q[U+1],n[2]=Q[U+2],r[0]=Q[G+0],r[1]=Q[G+1],r[2]=Q[G+2],i[0]=Q[k+0],i[1]=Q[k+1],i[2]=Q[k+2],M.compressGeometry){var Y=M.positionsDecodeMatrix;Y&&(Dn.decompressPosition(n,Y,n),Dn.decompressPosition(r,Y,r),Dn.decompressPosition(i,Y,i))}N.canvasPos?$.canvasPosToLocalRay(H.canvas,B.origin?Be(O,B.origin):O,S,B.worldMatrix,N.canvasPos,e,t):N.origin&&N.direction&&$.worldRayToLocalRay(B.worldMatrix,N.origin,N.direction,e,t),$.normalizeVec3(t),$.rayPlaneIntersect(e,t,n,r,i,s),N.localPos=s,N.position=s,h[0]=s[0],h[1]=s[1],h[2]=s[2],h[3]=1,$.transformVec4(B.worldMatrix,h,I),o[0]=I[0],o[1]=I[1],o[2]=I[2],N.canvasPos&&B.origin&&(o[0]+=B.origin[0],o[1]+=B.origin[1],o[2]+=B.origin[2]),N.worldPos=o,$.transformVec4(F.matrix,I,y),l[0]=y[0],l[1]=y[1],l[2]=y[2],N.viewPos=l,$.cartesianToBarycentric(s,n,r,i,u),N.bary=u;var X=M.normals;if(X){if(M.compressGeometry){var q=3*W,J=3*z,Z=3*K;Dn.decompressNormal(X.subarray(q,q+2),c),Dn.decompressNormal(X.subarray(J,J+2),f),Dn.decompressNormal(X.subarray(Z,Z+2),p)}else c[0]=X[U],c[1]=X[U+1],c[2]=X[U+2],f[0]=X[G],f[1]=X[G+1],f[2]=X[G+2],p[0]=X[k],p[1]=X[k+1],p[2]=X[k+2];var ee=$.addVec3($.addVec3($.mulVec3Scalar(c,u[0],m),$.mulVec3Scalar(f,u[1],w),g),$.mulVec3Scalar(p,u[2],E),T);N.worldNormal=$.normalizeVec3($.transformVec3(B.worldNormalMatrix,ee,b))}var te=M.uv;if(te){if(A[0]=te[2*W],A[1]=te[2*W+1],d[0]=te[2*z],d[1]=te[2*z+1],v[0]=te[2*K],v[1]=te[2*K+1],M.compressGeometry){var ne=M.uvDecodeMatrix;ne&&(Dn.decompressUV(A,ne,A),Dn.decompressUV(d,ne,d),Dn.decompressUV(v,ne,v))}N.uv=$.addVec3($.addVec3($.mulVec2Scalar(A,u[0],D),$.mulVec2Scalar(d,u[1],P),R),$.mulVec2Scalar(v,u[2],C),_)}}}}}();function $i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);var n=e.radiusBottom||1;n<0&&(console.error("negative radiusBottom not allowed - will invert"),n*=-1);var r=e.height||1;r<0&&(console.error("negative height not allowed - will invert"),r*=-1);var i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);var a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);var s,o,l,u,c,f,p,A,d,v,h,I=!!e.openEnded,y=e.center,m=y?y[0]:0,w=y?y[1]:0,g=y?y[2]:0,E=r/2,T=r/a,b=2*Math.PI/i,D=1/i,P=(t-n)/a,R=[],C=[],_=[],B=[],O=(90-180*Math.atan(r/(n-t))/Math.PI)/90;for(s=0;s<=a;s++)for(c=t-s*P,f=E-s*T,o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),C.push(c*l),C.push(O),C.push(c*u),_.push(o*D),_.push(1*s/a),R.push(c*l+m),R.push(f+w),R.push(c*u+g);for(s=0;s0){for(d=R.length/3,C.push(0),C.push(1),C.push(0),_.push(.5),_.push(.5),R.push(0+m),R.push(E+w),R.push(0+g),o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),v=.5*Math.sin(o*b)+.5,h=.5*Math.cos(o*b)+.5,C.push(t*l),C.push(1),C.push(t*u),_.push(v),_.push(h),R.push(t*l+m),R.push(E+w),R.push(t*u+g);for(o=0;o0){for(d=R.length/3,C.push(0),C.push(-1),C.push(0),_.push(.5),_.push(.5),R.push(0+m),R.push(0-E+w),R.push(0+g),o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),v=.5*Math.sin(o*b)+.5,h=.5*Math.cos(o*b)+.5,C.push(n*l),C.push(-1),C.push(n*u),_.push(v),_.push(h),R.push(n*l+m),R.push(0-E+w),R.push(n*u+g);for(o=0;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.lod||1,n=e.center?e.center[0]:0,r=e.center?e.center[1]:0,i=e.center?e.center[2]:0,a=e.radius||1;a<0&&(console.error("negative radius not allowed - will invert"),a*=-1);var s=e.heightSegments||18;s<0&&(console.error("negative heightSegments not allowed - will invert"),s*=-1),(s=Math.floor(t*s))<18&&(s=18);var o=e.widthSegments||18;o<0&&(console.error("negative widthSegments not allowed - will invert"),o*=-1),(o=Math.floor(t*o))<18&&(o=18);var l,u,c,f,p,A,d,v,h,I,y,m,w,g,E=[],T=[],b=[],D=[];for(l=0;l<=s;l++)for(c=l*Math.PI/s,f=Math.sin(c),p=Math.cos(c),u=0;u<=o;u++)A=2*u*Math.PI/o,d=Math.sin(A),v=Math.cos(A)*f,h=p,I=d*f,y=1-u/o,m=l/s,T.push(v),T.push(h),T.push(I),b.push(y),b.push(m),E.push(n+a*v),E.push(r+a*h),E.push(i+a*I);for(l=0;l":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function na(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.origin||[0,0,0],n=t[0],r=t[1],i=t[2],a=e.size||1,s=[],o=[],l=e.text;le.isNumeric(l)&&(l=""+l);for(var u,c,f,p,A,d,v,h,I,y=(l||"").split("\n"),m=0,w=0,g=.04,E=0;E1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({active:!0,pos:$.vec3(),dir:$.vec3(),dist:0}),r.active=i.active,r.pos=i.pos,r.dir=i.dir,r.scene._sectionPlaneCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"SectionPlane"}},{key:"active",get:function(){return this._state.active},set:function(e){this._state.active=!1!==e,this.glRedraw(),this.fire("active",this._state.active)}},{key:"pos",get:function(){return this._state.pos},set:function(e){this._state.pos.set(e||[0,0,0]),this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.fire("pos",this._state.pos),this.scene.fire("sectionPlaneUpdated",this)}},{key:"dir",get:function(){return this._state.dir},set:function(e){this._state.dir.set(e||[0,0,-1]),this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.glRedraw(),this.fire("dir",this._state.dir),this.scene.fire("sectionPlaneUpdated",this)}},{key:"dist",get:function(){return this._state.dist}},{key:"flipDir",value:function(){var e=this._state.dir;e[0]*=-1,e[1]*=-1,e[2]*=-1,this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.fire("dir",this._state.dir),this.glRedraw()}},{key:"destroy",value:function(){this._state.destroy(),this.scene._sectionPlaneDestroyed(this),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),aa=$.vec4(4),sa=$.vec4(),oa=$.vec4(),la=$.vec3([1,0,0]),ua=$.vec3([0,1,0]),ca=$.vec3([0,0,1]),fa=$.vec3(3),pa=$.vec3(3),Aa=$.identityMat4(),da=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e,i))._parentNode=null,r._children=[],r._aabb=null,r._aabbDirty=!0,r.scene._aabbDirty=!0,r._numTriangles=0,r._scale=$.vec3(),r._quaternion=$.identityQuaternion(),r._rotation=$.vec3(),r._position=$.vec3(),r._offset=$.vec3(),r._localMatrix=$.identityMat4(),r._worldMatrix=$.identityMat4(),r._localMatrixDirty=!0,r._worldMatrixDirty=!0,i.matrix?r.matrix=i.matrix:(r.scale=i.scale,r.position=i.position,i.quaternion||(r.rotation=i.rotation)),r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r._isObject=i.isObject,r._isObject&&r.scene._registerObject(g(r)),r.origin=i.origin,r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.colorize=i.colorize,r.opacity=i.opacity,r.offset=i.offset,i.children)for(var a=i.children,s=0,o=a.length;s1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"LambertMaterial",ambient:$.vec3([1,1,1]),color:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),alpha:null,alphaMode:0,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:"/lam;"}),r.ambient=i.ambient,r.color=i.color,r.emissive=i.emissive,r.alpha=i.alpha,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r.backfaces=i.backfaces,r.frontface=i.frontface,r}return P(n,[{key:"type",get:function(){return"LambertMaterial"}},{key:"ambient",get:function(){return this._state.ambient},set:function(e){var t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){var t=this._state.color;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.color=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this._state.alphaMode=e<1?2:0,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),ha={opaque:0,mask:1,blend:2},Ia=["opaque","mask","blend"],ya=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"MetallicMaterial",baseColor:$.vec4([1,1,1]),emissive:$.vec4([0,0,0]),metallic:null,roughness:null,specularF0:null,alpha:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.baseColor=i.baseColor,r.metallic=i.metallic,r.roughness=i.roughness,r.specularF0=i.specularF0,r.emissive=i.emissive,r.alpha=i.alpha,i.baseColorMap&&(r._baseColorMap=r._checkComponent("Texture",i.baseColorMap)),i.metallicMap&&(r._metallicMap=r._checkComponent("Texture",i.metallicMap)),i.roughnessMap&&(r._roughnessMap=r._checkComponent("Texture",i.roughnessMap)),i.metallicRoughnessMap&&(r._metallicRoughnessMap=r._checkComponent("Texture",i.metallicRoughnessMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"MetallicMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/met"];this._baseColorMap&&(t.push("/bm"),this._baseColorMap._state.hasMatrix&&t.push("/mat"),t.push("/"+this._baseColorMap._state.encoding)),this._metallicMap&&(t.push("/mm"),this._metallicMap._state.hasMatrix&&t.push("/mat")),this._roughnessMap&&(t.push("/rm"),this._roughnessMap._state.hasMatrix&&t.push("/mat")),this._metallicRoughnessMap&&(t.push("/mrm"),this._metallicRoughnessMap._state.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap._state.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap._state.hasMatrix&&t.push("/mat")),this._alphaMap&&(t.push("/am"),this._alphaMap._state.hasMatrix&&t.push("/mat")),this._normalMap&&(t.push("/nm"),this._normalMap._state.hasMatrix&&t.push("/mat")),t.push(";"),e.hash=t.join("")}},{key:"baseColor",get:function(){return this._state.baseColor},set:function(e){var t=this._state.baseColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.baseColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"baseColorMap",get:function(){return this._baseColorMap}},{key:"metallic",get:function(){return this._state.metallic},set:function(e){e=null!=e?e:1,this._state.metallic!==e&&(this._state.metallic=e,this.glRedraw())}},{key:"metallicMap",get:function(){return this._attached.metallicMap}},{key:"roughness",get:function(){return this._state.roughness},set:function(e){e=null!=e?e:1,this._state.roughness!==e&&(this._state.roughness=e,this.glRedraw())}},{key:"roughnessMap",get:function(){return this._attached.roughnessMap}},{key:"metallicRoughnessMap",get:function(){return this._attached.metallicRoughnessMap}},{key:"specularF0",get:function(){return this._state.specularF0},set:function(e){e=null!=e?e:0,this._state.specularF0!==e&&(this._state.specularF0=e,this.glRedraw())}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"emissiveMap",get:function(){return this._attached.emissiveMap}},{key:"occlusionMap",get:function(){return this._attached.occlusionMap}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"alphaMap",get:function(){return this._attached.alphaMap}},{key:"normalMap",get:function(){return this._attached.normalMap}},{key:"alphaMode",get:function(){return Ia[this._state.alphaMode]},set:function(e){var t=ha[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),ma={opaque:0,mask:1,blend:2},wa=["opaque","mask","blend"],ga=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"SpecularMaterial",diffuse:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),specular:$.vec3([1,1,1]),glossiness:null,specularF0:null,alpha:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.diffuse=i.diffuse,r.specular=i.specular,r.glossiness=i.glossiness,r.specularF0=i.specularF0,r.emissive=i.emissive,r.alpha=i.alpha,i.diffuseMap&&(r._diffuseMap=r._checkComponent("Texture",i.diffuseMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.specularMap&&(r._specularMap=r._checkComponent("Texture",i.specularMap)),i.glossinessMap&&(r._glossinessMap=r._checkComponent("Texture",i.glossinessMap)),i.specularGlossinessMap&&(r._specularGlossinessMap=r._checkComponent("Texture",i.specularGlossinessMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"SpecularMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/spe"];this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat")),this._glossinessMap&&(t.push("/gm"),this._glossinessMap.hasMatrix&&t.push("/mat")),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._specularGlossinessMap&&(t.push("/sgm"),this._specularGlossinessMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),t.push(";"),e.hash=t.join("")}},{key:"diffuse",get:function(){return this._state.diffuse},set:function(e){var t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"diffuseMap",get:function(){return this._diffuseMap}},{key:"specular",get:function(){return this._state.specular},set:function(e){var t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"specularMap",get:function(){return this._specularMap}},{key:"specularGlossinessMap",get:function(){return this._specularGlossinessMap}},{key:"glossiness",get:function(){return this._state.glossiness},set:function(e){e=null!=e?e:1,this._state.glossiness!==e&&(this._state.glossiness=e,this.glRedraw())}},{key:"glossinessMap",get:function(){return this._glossinessMap}},{key:"specularF0",get:function(){return this._state.specularF0},set:function(e){e=null!=e?e:0,this._state.specularF0!==e&&(this._state.specularF0=e,this.glRedraw())}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"emissiveMap",get:function(){return this._emissiveMap}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"alphaMap",get:function(){return this._alphaMap}},{key:"normalMap",get:function(){return this._normalMap}},{key:"occlusionMap",get:function(){return this._occlusionMap}},{key:"alphaMode",get:function(){return wa[this._state.alphaMode]},set:function(e){var t=ma[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}();function Ea(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t;if(1009===i)return e.UNSIGNED_BYTE;if(1017===i)return e.UNSIGNED_SHORT_4_4_4_4;if(1018===i)return e.UNSIGNED_SHORT_5_5_5_1;if(1010===i)return e.BYTE;if(1011===i)return e.SHORT;if(1012===i)return e.UNSIGNED_SHORT;if(1013===i)return e.INT;if(1014===i)return e.UNSIGNED_INT;if(1015===i)return e.FLOAT;if(1016===i)return e.HALF_FLOAT;if(1021===i)return e.ALPHA;if(1023===i)return e.RGBA;if(1024===i)return e.LUMINANCE;if(1025===i)return e.LUMINANCE_ALPHA;if(1026===i)return e.DEPTH_COMPONENT;if(1027===i)return e.DEPTH_STENCIL;if(1028===i)return e.RED;if(1022===i)return e.RGBA;if(1029===i)return e.RED_INTEGER;if(1030===i)return e.RG;if(1031===i)return e.RG_INTEGER;if(1033===i)return e.RGBA_INTEGER;if(33776===i||33777===i||33778===i||33779===i)if(3001===r){var a=kt(e,"WEBGL_compressed_texture_s3tc_srgb");if(null===a)return null;if(33776===i)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(33777===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(33778===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(33779===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(null===(n=kt(e,"WEBGL_compressed_texture_s3tc")))return null;if(33776===i)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===i)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===i)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===i)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===i||35841===i||35842===i||35843===i){var s=kt(e,"WEBGL_compressed_texture_pvrtc");if(null===s)return null;if(35840===i)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===i)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===i)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===i)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===i){var o=kt(e,"WEBGL_compressed_texture_etc1");return null!==o?o.COMPRESSED_RGB_ETC1_WEBGL:null}if(37492===i||37496===i){var l=kt(e,"WEBGL_compressed_texture_etc");if(null===l)return null;if(37492===i)return 3001===r?l.COMPRESSED_SRGB8_ETC2:l.COMPRESSED_RGB8_ETC2;if(37496===i)return 3001===r?l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:l.COMPRESSED_RGBA8_ETC2_EAC}if(37808===i||37809===i||37810===i||37811===i||37812===i||37813===i||37814===i||37815===i||37816===i||37817===i||37818===i||37819===i||37820===i||37821===i){var u=kt(e,"WEBGL_compressed_texture_astc");if(null===u)return null;if(37808===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:u.COMPRESSED_RGBA_ASTC_4x4_KHR;if(37809===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:u.COMPRESSED_RGBA_ASTC_5x4_KHR;if(37810===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:u.COMPRESSED_RGBA_ASTC_5x5_KHR;if(37811===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:u.COMPRESSED_RGBA_ASTC_6x5_KHR;if(37812===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:u.COMPRESSED_RGBA_ASTC_6x6_KHR;if(37813===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:u.COMPRESSED_RGBA_ASTC_8x5_KHR;if(37814===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:u.COMPRESSED_RGBA_ASTC_8x6_KHR;if(37815===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:u.COMPRESSED_RGBA_ASTC_8x8_KHR;if(37816===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:u.COMPRESSED_RGBA_ASTC_10x5_KHR;if(37817===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:u.COMPRESSED_RGBA_ASTC_10x6_KHR;if(37818===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:u.COMPRESSED_RGBA_ASTC_10x8_KHR;if(37819===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:u.COMPRESSED_RGBA_ASTC_10x10_KHR;if(37820===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:u.COMPRESSED_RGBA_ASTC_12x10_KHR;if(37821===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:u.COMPRESSED_RGBA_ASTC_12x12_KHR}if(36492===i){var c=kt(e,"EXT_texture_compression_bptc");if(null===c)return null;if(36492===i)return 3001===r?c.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:c.COMPRESSED_RGBA_BPTC_UNORM_EXT}return 1020===i?e.UNSIGNED_INT_24_8:1e3===i?e.REPEAT:1001===i?e.CLAMP_TO_EDGE:1004===i||1005===i?e.NEAREST_MIPMAP_LINEAR:1007===i?e.LINEAR_MIPMAP_NEAREST:1008===i?e.LINEAR_MIPMAP_LINEAR:1003===i?e.NEAREST:1006===i?e.LINEAR:null}var Ta=new Uint8Array([0,0,0,1]),ba=function(){function e(t){var n=t.gl,r=t.target,i=t.format,a=t.type,s=t.wrapS,o=t.wrapT,l=t.wrapR,u=t.encoding,c=t.preloadColor,f=t.premultiplyAlpha,p=t.flipY;b(this,e),this.gl=n,this.target=r||n.TEXTURE_2D,this.format=i||1023,this.type=a||1009,this.internalFormat=null,this.premultiplyAlpha=!!f,this.flipY=!!p,this.unpackAlignment=4,this.wrapS=s||1e3,this.wrapT=o||1e3,this.wrapR=l||1e3,this.encoding=u||3001,this.texture=n.createTexture(),c&&this.setPreloadColor(c),this.allocated=!0}return P(e,[{key:"setPreloadColor",value:function(e){e?(Ta[0]=Math.floor(255*e[0]),Ta[1]=Math.floor(255*e[1]),Ta[2]=Math.floor(255*e[2]),Ta[3]=Math.floor(255*(void 0!==e[3]?e[3]:1))):(Ta[0]=0,Ta[1]=0,Ta[2]=0,Ta[3]=255);var t=this.gl;if(t.bindTexture(this.target,this.texture),this.target===t.TEXTURE_CUBE_MAP)for(var n=[t.TEXTURE_CUBE_MAP_POSITIVE_X,t.TEXTURE_CUBE_MAP_NEGATIVE_X,t.TEXTURE_CUBE_MAP_POSITIVE_Y,t.TEXTURE_CUBE_MAP_NEGATIVE_Y,t.TEXTURE_CUBE_MAP_POSITIVE_Z,t.TEXTURE_CUBE_MAP_NEGATIVE_Z],r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=this.gl;void 0!==t.format&&(this.format=t.format),void 0!==t.internalFormat&&(this.internalFormat=t.internalFormat),void 0!==t.encoding&&(this.encoding=t.encoding),void 0!==t.type&&(this.type=t.type),void 0!==t.flipY&&(this.flipY=t.flipY),void 0!==t.premultiplyAlpha&&(this.premultiplyAlpha=t.premultiplyAlpha),void 0!==t.unpackAlignment&&(this.unpackAlignment=t.unpackAlignment),void 0!==t.minFilter&&(this.minFilter=t.minFilter),void 0!==t.magFilter&&(this.magFilter=t.magFilter),void 0!==t.wrapS&&(this.wrapS=t.wrapS),void 0!==t.wrapT&&(this.wrapT=t.wrapT),void 0!==t.wrapR&&(this.wrapR=t.wrapR);var r=!1;n.bindTexture(this.target,this.texture);var i=n.getParameter(n.UNPACK_FLIP_Y_WEBGL);n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,this.flipY);var a=n.getParameter(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL);n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha);var s=n.getParameter(n.UNPACK_ALIGNMENT);n.pixelStorei(n.UNPACK_ALIGNMENT,this.unpackAlignment);var o=n.getParameter(n.UNPACK_COLORSPACE_CONVERSION_WEBGL);n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);var l=Ea(n,this.minFilter);n.texParameteri(this.target,n.TEXTURE_MIN_FILTER,l),l!==n.NEAREST_MIPMAP_NEAREST&&l!==n.LINEAR_MIPMAP_NEAREST&&l!==n.NEAREST_MIPMAP_LINEAR&&l!==n.LINEAR_MIPMAP_LINEAR||(r=!0);var u=Ea(n,this.magFilter);u&&n.texParameteri(this.target,n.TEXTURE_MAG_FILTER,u);var c=Ea(n,this.wrapS);c&&n.texParameteri(this.target,n.TEXTURE_WRAP_S,c);var f=Ea(n,this.wrapT);f&&n.texParameteri(this.target,n.TEXTURE_WRAP_T,f);var p=Ea(n,this.format,this.encoding),A=Ea(n,this.type),d=Da(n,this.internalFormat,p,A,this.encoding,!1);if(this.target===n.TEXTURE_CUBE_MAP){if(le.isArray(e))for(var v=e,h=[n.TEXTURE_CUBE_MAP_POSITIVE_X,n.TEXTURE_CUBE_MAP_NEGATIVE_X,n.TEXTURE_CUBE_MAP_POSITIVE_Y,n.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.TEXTURE_CUBE_MAP_POSITIVE_Z,n.TEXTURE_CUBE_MAP_NEGATIVE_Z],I=0,y=h.length;I1;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,this.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,this.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,i.NONE);var o=Ea(i,this.wrapS);o&&i.texParameteri(this.target,i.TEXTURE_WRAP_S,o);var l=Ea(i,this.wrapT);if(l&&i.texParameteri(this.target,i.TEXTURE_WRAP_T,l),this.type===i.TEXTURE_3D||this.type===i.TEXTURE_2D_ARRAY){var u=Ea(i,this.wrapR);u&&i.texParameteri(this.target,i.TEXTURE_WRAP_R,u),i.texParameteri(this.type,i.TEXTURE_WRAP_R,u)}s?(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Pa(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Pa(i,this.magFilter))):(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Ea(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Ea(i,this.magFilter)));var c=Ea(i,this.format,this.encoding),f=Ea(i,this.type),p=Da(i,this.internalFormat,c,f,this.encoding,!1);i.texStorage2D(i.TEXTURE_2D,a,p,t[0].width,t[0].height);for(var A=0,d=t.length;A5&&void 0!==arguments[5]&&arguments[5];if(null!==t){if(void 0!==e[t])return e[t];console.warn("Attempt to use non-existing WebGL internal format '"+t+"'")}var s=n;return n===e.RED&&(r===e.FLOAT&&(s=e.R32F),r===e.HALF_FLOAT&&(s=e.R16F),r===e.UNSIGNED_BYTE&&(s=e.R8)),n===e.RG&&(r===e.FLOAT&&(s=e.RG32F),r===e.HALF_FLOAT&&(s=e.RG16F),r===e.UNSIGNED_BYTE&&(s=e.RG8)),n===e.RGBA&&(r===e.FLOAT&&(s=e.RGBA32F),r===e.HALF_FLOAT&&(s=e.RGBA16F),r===e.UNSIGNED_BYTE&&(s=3001===i&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(s=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(s=e.RGB5_A1)),s!==e.R16F&&s!==e.R32F&&s!==e.RG16F&&s!==e.RG32F&&s!==e.RGBA16F&&s!==e.RGBA32F||kt(e,"EXT_color_buffer_float"),s}function Pa(e,t){return 1003===t||1004===t||1005===t?e.NEAREST:e.LINEAR}function Ra(e){if(!Ca(e.width)||!Ca(e.height)){var t=document.createElement("canvas");t.width=_a(e.width),t.height=_a(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function Ca(e){return 0==(e&e-1)}function _a(e){--e;for(var t=1;t<32;t<<=1)e|=e>>t;return e+1}var Ba=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({texture:new ba({gl:r.scene.canvas.gl}),matrix:$.identityMat4(),hasMatrix:i.translate&&(0!==i.translate[0]||0!==i.translate[1])||!!i.rotate||i.scale&&(0!==i.scale[0]||0!==i.scale[1]),minFilter:r._checkMinFilter(i.minFilter),magFilter:r._checkMagFilter(i.magFilter),wrapS:r._checkWrapS(i.wrapS),wrapT:r._checkWrapT(i.wrapT),flipY:r._checkFlipY(i.flipY),encoding:r._checkEncoding(i.encoding)}),r._src=null,r._image=null,r._translate=$.vec2([0,0]),r._scale=$.vec2([1,1]),r._rotate=$.vec2([0,0]),r._matrixDirty=!1,r.translate=i.translate,r.scale=i.scale,r.rotate=i.rotate,i.src?r.src=i.src:i.image&&(r.image=i.image),re.memory.textures++,r}return P(n,[{key:"type",get:function(){return"Texture"}},{key:"_checkMinFilter",value:function(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}},{key:"_checkMagFilter",value:function(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}},{key:"_checkWrapS",value:function(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}},{key:"_checkWrapT",value:function(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}},{key:"_checkFlipY",value:function(e){return!!e}},{key:"_checkEncoding",value:function(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}},{key:"_webglContextRestored",value:function(){this._state.texture=new ba({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}},{key:"_update",value:function(){var e,t,n=this._state;this._matrixDirty&&(0===this._translate[0]&&0===this._translate[1]||(e=$.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(t=$.scalingMat4v([this._scale[0],this._scale[1],1]),e=e?$.mulMat4(e,t):t),0!==this._rotate&&(t=$.rotationMat4v(.0174532925*this._rotate,[0,0,1]),e=e?$.mulMat4(e,t):t),e&&(n.matrix=e),this._matrixDirty=!1);this.glRedraw()}},{key:"image",get:function(){return this._image},set:function(e){this._image=Ra(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}},{key:"src",get:function(){return this._src},set:function(e){this.scene.loading++,this.scene.canvas.spinner.processes++;var t=this,n=new Image;n.onload=function(){n=Ra(n),t._state.texture.setImage(n,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},n.src=e,this._src=e,this._image=null}},{key:"translate",get:function(){return this._translate},set:function(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}},{key:"rotate",get:function(){return this._rotate},set:function(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}},{key:"minFilter",get:function(){return this._state.minFilter}},{key:"magFilter",get:function(){return this._state.magFilter}},{key:"wrapS",get:function(){return this._state.wrapS}},{key:"wrapT",get:function(){return this._state.wrapT}},{key:"flipY",get:function(){return this._state.flipY}},{key:"encoding",get:function(){return this._state.encoding}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),re.memory.textures--}}]),n}(),Oa=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({edgeColor:$.vec3([0,0,0]),centerColor:$.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),r.edgeColor=i.edgeColor,r.centerColor=i.centerColor,r.edgeBias=i.edgeBias,r.centerBias=i.centerBias,r.power=i.power,r}return P(n,[{key:"type",get:function(){return"Fresnel"}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}},{key:"centerColor",get:function(){return this._state.centerColor},set:function(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}},{key:"edgeBias",get:function(){return this._state.edgeBias},set:function(e){this._state.edgeBias=e||0,this.glRedraw()}},{key:"centerBias",get:function(){return this._state.centerBias},set:function(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}},{key:"power",get:function(){return this._state.power},set:function(e){this._state.power=null!=e?e:1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Sa=re.memory,Na=$.AABB3(),La=function(e){I(n,In);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._state=new Wt({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),r._numTriangles=0,r._edgeThreshold=i.edgeThreshold||10,r._aabb=null,r._obb=$.OBB3();var a,s=r._state,o=r.scene.canvas.gl;switch(i.primitive=i.primitive||"triangles",i.primitive){case"points":s.primitive=o.POINTS,s.primitiveName=i.primitive;break;case"lines":s.primitive=o.LINES,s.primitiveName=i.primitive;break;case"line-loop":s.primitive=o.LINE_LOOP,s.primitiveName=i.primitive;break;case"line-strip":s.primitive=o.LINE_STRIP,s.primitiveName=i.primitive;break;case"triangles":s.primitive=o.TRIANGLES,s.primitiveName=i.primitive;break;case"triangle-strip":s.primitive=o.TRIANGLE_STRIP,s.primitiveName=i.primitive;break;case"triangle-fan":s.primitive=o.TRIANGLE_FAN,s.primitiveName=i.primitive;break;default:r.error("Unsupported value for 'primitive': '"+i.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=o.TRIANGLES,s.primitiveName=i.primitive}if(!i.positions)return r.error("Config expected: positions"),w(r);if(!i.indices)return r.error("Config expected: indices"),w(r);var l=i.positionsDecodeMatrix;if(l);else{var u=Dn.getPositionsBounds(i.positions),c=Dn.compressPositions(i.positions,u.min,u.max);a=c.quantized,s.positionsDecodeMatrix=c.decodeMatrix,s.positionsBuf=new Dt(o,o.ARRAY_BUFFER,a,a.length,3,o.STATIC_DRAW),Sa.positions+=s.positionsBuf.numItems,$.positions3ToAABB3(i.positions,r._aabb),$.positions3ToAABB3(a,Na,s.positionsDecodeMatrix),$.AABB3ToOBB3(Na,r._obb)}if(i.colors){var f=i.colors.constructor===Float32Array?i.colors:new Float32Array(i.colors);s.colorsBuf=new Dt(o,o.ARRAY_BUFFER,f,f.length,4,o.STATIC_DRAW),Sa.colors+=s.colorsBuf.numItems}if(i.uv){var p=Dn.getUVBounds(i.uv),A=Dn.compressUVs(i.uv,p.min,p.max),d=A.quantized;s.uvDecodeMatrix=A.decodeMatrix,s.uvBuf=new Dt(o,o.ARRAY_BUFFER,d,d.length,2,o.STATIC_DRAW),Sa.uvs+=s.uvBuf.numItems}if(i.normals){var v=Dn.compressNormals(i.normals),h=s.compressGeometry;s.normalsBuf=new Dt(o,o.ARRAY_BUFFER,v,v.length,3,o.STATIC_DRAW,h),Sa.normals+=s.normalsBuf.numItems}var I=i.indices.constructor===Uint32Array||i.indices.constructor===Uint16Array?i.indices:new Uint32Array(i.indices);s.indicesBuf=new Dt(o,o.ELEMENT_ARRAY_BUFFER,I,I.length,1,o.STATIC_DRAW),Sa.indices+=s.indicesBuf.numItems;var y=yn(a,I,s.positionsDecodeMatrix,r._edgeThreshold);return r._edgeIndicesBuf=new Dt(o,o.ELEMENT_ARRAY_BUFFER,y,y.length,1,o.STATIC_DRAW),"triangles"===r._state.primitiveName&&(r._numTriangles=i.indices.length/3),r._buildHash(),Sa.meshes++,r}return P(n,[{key:"type",get:function(){return"VBOGeometry"}},{key:"isVBOGeometry",get:function(){return!0}},{key:"_buildHash",value:function(){var e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}},{key:"_getEdgeIndices",value:function(){return this._edgeIndicesBuf}},{key:"primitive",get:function(){return this._state.primitiveName}},{key:"aabb",get:function(){return this._aabb}},{key:"obb",get:function(){return this._obb}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this);var e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),Sa.meshes--}}]),n}(),Ma={};function xa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,r){t.src||(console.error("load3DSGeometry: Parameter expected: src"),r());var i=e.canvas.spinner;i.processes++,le.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("load3DSGeometry: no data loaded"),i.processes--,r());var a=Ma.parse.from3DS(e).edit.objects[0].mesh,s=a.vertices,o=a.uvt,l=a.indices;i.processes--,n(le.apply(t,{primitive:"triangles",positions:s,normals:null,uv:o,indices:l}))}),(function(e){console.error("load3DSGeometry: "+e),i.processes--,r()}))}))}function Fa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,r){t.src||(console.error("loadOBJGeometry: Parameter expected: src"),r());var i=e.canvas.spinner;i.processes++,le.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("loadOBJGeometry: no data loaded"),i.processes--,r());for(var a=Ma.parse.fromOBJ(e),s=Ma.edit.unwrap(a.i_verts,a.c_verts,3),o=Ma.edit.unwrap(a.i_norms,a.c_norms,3),l=Ma.edit.unwrap(a.i_uvt,a.c_uvt,2),u=new Int32Array(a.i_verts.length),c=0;c0?o:null,autoNormals:0===o.length,uv:l,indices:u}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,r()}))}))}function Ha(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.ySize||1;n<0&&(console.error("negative ySize not allowed - will invert"),n*=-1);var r=e.zSize||1;r<0&&(console.error("negative zSize not allowed - will invert"),r*=-1);var i=e.center,a=i?i[0]:0,s=i?i[1]:0,o=i?i[2]:0,l=-t+a,u=-n+s,c=-r+o,f=t+a,p=n+s,A=r+o;return le.apply(e,{primitive:"lines",positions:[l,u,c,l,u,A,l,p,c,l,p,A,f,u,c,f,u,A,f,p,c,f,p,A],indices:[0,1,1,3,3,2,2,0,4,5,5,7,7,6,6,4,0,4,1,5,2,6,3,7]})}function Ua(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);var n=e.divisions||1;n<0&&(console.error("negative divisions not allowed - will invert"),n*=-1),n<1&&(n=1);for(var r=(t=t||10)/(n=n||10),i=t/2,a=[],s=[],o=0,l=0,u=-i;l<=n;l++,u+=r)a.push(-i),a.push(0),a.push(u),a.push(i),a.push(0),a.push(u),a.push(u),a.push(0),a.push(-i),a.push(u),a.push(0),a.push(i),s.push(o++),s.push(o++),s.push(o++),s.push(o++);return le.apply(e,{primitive:"lines",positions:a,indices:s})}function Ga(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);var r=e.xSegments||1;r<0&&(console.error("negative xSegments not allowed - will invert"),r*=-1),r<1&&(r=1);var i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);var a,s,o,l,u,c,f,p=e.center,A=p?p[0]:0,d=p?p[1]:0,v=p?p[2]:0,h=t/2,I=n/2,y=Math.floor(r)||1,m=Math.floor(i)||1,w=y+1,g=m+1,E=t/y,T=n/m,b=new Float32Array(w*g*3),D=new Float32Array(w*g*3),P=new Float32Array(w*g*2),R=0,C=0;for(a=0;a65535?Uint32Array:Uint16Array)(y*m*6);for(a=0;a0&&void 0!==arguments[0]?arguments[0]:{},t=e.radius||1;t<0&&(console.error("negative radius not allowed - will invert"),t*=-1),t*=.5;var n=e.tube||.3;n<0&&(console.error("negative tube not allowed - will invert"),n*=-1);var r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<4&&(r=4);var i=e.tubeSegments||24;i<0&&(console.error("negative tubeSegments not allowed - will invert"),i*=-1),i<4&&(i=4);var a=e.arc||2*Math.PI;a<0&&(console.warn("negative arc not allowed - will invert"),a*=-1),a>360&&(a=360);var s,o,l,u,c,f,p,A,d,v,h,I,y=e.center,m=y?y[0]:0,w=y?y[1]:0,g=y?y[2]:0,E=[],T=[],b=[],D=[];for(A=0;A<=i;A++)for(p=0;p<=r;p++)s=p/r*a,o=.785398+A/i*Math.PI*2,m=t*Math.cos(s),w=t*Math.sin(s),l=(t+n*Math.cos(o))*Math.cos(s),u=(t+n*Math.cos(o))*Math.sin(s),c=n*Math.sin(o),E.push(l+m),E.push(u+w),E.push(c+g),b.push(1-p/r),b.push(A/i),f=$.normalizeVec3($.subVec3([l,u,c],[m,w,g],[]),[]),T.push(f[0]),T.push(f[1]),T.push(f[2]);for(A=1;A<=i;A++)for(p=1;p<=r;p++)d=(r+1)*A+p-1,v=(r+1)*(A-1)+p-1,h=(r+1)*(A-1)+p,I=(r+1)*A+p,D.push(d),D.push(v),D.push(h),D.push(h),D.push(I),D.push(d);return le.apply(e,{positions:E,normals:T,uv:b,indices:D})}Ma.load=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(e){t(e.target.response)},n.send()},Ma.save=function(e,t){var n="data:application/octet-stream;base64,"+btoa(Ma.parse._buffToStr(e));window.location.href=n},Ma.clone=function(e){return JSON.parse(JSON.stringify(e))},Ma.bin={},Ma.bin.f=new Float32Array(1),Ma.bin.fb=new Uint8Array(Ma.bin.f.buffer),Ma.bin.rf=function(e,t){for(var n=Ma.bin.f,r=Ma.bin.fb,i=0;i<4;i++)r[i]=e[t+i];return n[0]},Ma.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Ma.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Ma.bin.rASCII0=function(e,t){for(var n="";0!=e[t];)n+=String.fromCharCode(e[t++]);return n},Ma.bin.wf=function(e,t,n){new Float32Array(e.buffer,t,1)[0]=n},Ma.bin.wsl=function(e,t,n){e[t]=n,e[t+1]=n>>8},Ma.bin.wil=function(e,t,n){e[t]=n,e[t+1]=n>>8,e[t+2]=n>>16,e[t+3]},Ma.parse={},Ma.parse._buffToStr=function(e){for(var t=new Uint8Array(e),n="",r=0;ri&&(i=l),ua&&(a=u),cs&&(s=c)}return{min:{x:t,y:n,z:r},max:{x:i,y:a,z:s}}};var ja=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._type=i.type||(i.src?i.src.split(".").pop():null)||"jpg",r._pos=$.vec3(i.pos||[0,0,0]),r._up=$.vec3(i.up||[0,1,0]),r._normal=$.vec3(i.normal||[0,0,1]),r._height=i.height||1,r._origin=$.vec3(),r._rtcPos=$.vec3(),r._imageSize=$.vec2(),r._texture=new Ba(g(r),{flipY:!0}),r._image=new Image,"jpg"!==r._type&&"png"!==r._type&&(r.error('Unsupported type - defaulting to "jpg"'),r._type="jpg"),r._node=new da(g(r),{matrix:$.inverseMat4($.lookAtMat4v(r._pos,$.subVec3(r._pos,r._normal,$.mat4()),r._up,$.mat4())),children:[r._bitmapMesh=new Ji(g(r),{scale:[1,1,1],rotation:[-90,0,0],collidable:i.collidable,pickable:i.pickable,opacity:i.opacity,clippable:i.clippable,geometry:new Cn(g(r),Ga({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:r._texture,emissiveMap:r._texture,backfaces:!0})})]}),i.image?r.image=i.image:i.src?r.src=i.src:i.imageData&&(r.imageData=i.imageData),r.scene._bitmapCreated(g(r)),r}return P(n,[{key:"visible",get:function(){return this._bitmapMesh.visible},set:function(e){this._bitmapMesh.visible=e}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}},{key:"src",get:function(){return this._image.src},set:function(e){var t=this;if(e)switch(this._image.onload=function(){t._texture.image=t._image,t._imageSize[0]=t._image.width,t._imageSize[1]=t._image.height,t._updateBitmapMeshScale()},this._image.src=e,e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}},{key:"imageData",get:function(){var e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")},set:function(e){var t=this;this._image.onload=function(){t._texture.image=image,t._imageSize[0]=image.width,t._imageSize[1]=image.height,t._updateBitmapMeshScale()},this._image.src=e}},{key:"type",get:function(){return this._type},set:function(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}},{key:"pos",get:function(){return this._pos}},{key:"normal",get:function(){return this._normal}},{key:"up",get:function(){return this._up}},{key:"height",get:function(){return this._height},set:function(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}},{key:"collidable",get:function(){return this._bitmapMesh.collidable},set:function(e){this._bitmapMesh.collidable=!1!==e}},{key:"clippable",get:function(){return this._bitmapMesh.clippable},set:function(e){this._bitmapMesh.clippable=!1!==e}},{key:"pickable",get:function(){return this._bitmapMesh.pickable},set:function(e){this._bitmapMesh.pickable=!1!==e}},{key:"opacity",get:function(){return this._bitmapMesh.opacity},set:function(e){this._bitmapMesh.opacity=e}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._bitmapDestroyed(this)}},{key:"_updateBitmapMeshScale",value:function(){var e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}]),n}(),Va=$.OBB3(),Qa=$.OBB3(),Wa=$.OBB3(),za=function(){function e(t,n,r,i,a,s){var o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0;b(this,e),this.model=t,this.object=null,this.parent=null,this.transform=a,this.textureSet=s,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=n,this.obb=null,this._aabbLocal=null,this._aabbWorld=$.AABB3(),this._aabbWorldDirty=!1,this.layer=o,this.portionId=l,this._color=new Uint8Array([r[0],r[1],r[2],i]),this._colorize=new Uint8Array([r[0],r[1],r[2],i]),this._colorizing=!1,this._transparent=i<255,this.numTriangles=0,this.origin=null,this.entity=null,a&&a._addMesh(this)}return P(e,[{key:"_sceneModelDirty",value:function(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}},{key:"_transformDirty",value:function(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}},{key:"_updateMatrix",value:function(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}},{key:"_finalize",value:function(e){this.layer.initFlags(this.portionId,e,this._transparent)}},{key:"_finalize2",value:function(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}},{key:"_setVisible",value:function(e){this.layer.setVisible(this.portionId,e,this._transparent)}},{key:"_setColor",value:function(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}},{key:"_setColorize",value:function(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}},{key:"_setOpacity",value:function(e,t){var n=e<255,r=this._transparent!==n;this._color[3]=e,this._colorize[3]=e,this._transparent=n,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),r&&this.layer.setTransparent(this.portionId,t,n)}},{key:"_setOffset",value:function(e){this.layer.setOffset(this.portionId,e)}},{key:"_setHighlighted",value:function(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}},{key:"_setXRayed",value:function(e){this.layer.setXRayed(this.portionId,e,this._transparent)}},{key:"_setSelected",value:function(e){this.layer.setSelected(this.portionId,e,this._transparent)}},{key:"_setEdges",value:function(e){this.layer.setEdges(this.portionId,e,this._transparent)}},{key:"_setClippable",value:function(e){this.layer.setClippable(this.portionId,e,this._transparent)}},{key:"_setCollidable",value:function(e){this.layer.setCollidable(this.portionId,e)}},{key:"_setPickable",value:function(e){this.layer.setPickable(this.portionId,e,this._transparent)}},{key:"_setCulled",value:function(e){this.layer.setCulled(this.portionId,e,this._transparent)}},{key:"canPickTriangle",value:function(){return!1}},{key:"drawPickTriangles",value:function(e,t){}},{key:"pickTriangleSurface",value:function(e){}},{key:"precisionRayPickSurface",value:function(e,t,n,r){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,n,r)}},{key:"canPickWorldPos",value:function(){return!0}},{key:"drawPickDepths",value:function(e){this.model.drawPickDepths(e)}},{key:"drawPickNormals",value:function(e){this.model.drawPickNormals(e)}},{key:"delegatePickedEntity",value:function(){return this.parent}},{key:"getEachVertex",value:function(e){this.layer.getEachVertex(this.portionId,e)}},{key:"aabb",get:function(){if(this._aabbWorldDirty){if($.AABB3ToOBB3(this._aabbLocal,Va),this.transform?($.transformOBB3(this.transform.worldMatrix,Va,Qa),$.transformOBB3(this.model.worldMatrix,Qa,Wa),$.OBB3ToAABB3(Wa,this._aabbWorld)):($.transformOBB3(this.model.worldMatrix,Va,Qa),$.OBB3ToAABB3(Qa,this._aabbWorld)),this.origin){var e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld},set:function(e){this._aabbLocal=e}},{key:"_destroy",value:function(){this.model.scene._renderer.putPickID(this.pickId)}}]),e}(),Ka=new(function(){function e(){b(this,e),this._uint8Arrays={},this._float32Arrays={}}return P(e,[{key:"_clear",value:function(){this._uint8Arrays={},this._float32Arrays={}}},{key:"getUInt8Array",value:function(e){var t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}},{key:"getFloat32Array",value:function(e){var t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}}]),e}()),Ya=0;function Xa(){return Ya++,Ka}var qa={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},Ja=new Float32Array([1,1,1,1]),Za=new Float32Array([0,0,0,1]),$a=$.vec4(),es=$.vec3(),ts=$.vec3(),ns=$.mat4(),rs=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.instancing,a=void 0!==i&&i,s=r.edges,o=void 0!==s&&s;b(this,e),this._scene=t,this._withSAO=n,this._instancing=a,this._edges=o,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}return P(e,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"_buildShader",value:function(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}},{key:"_buildVertexShader",value:function(){return[""]}},{key:"_buildFragmentShader",value:function(){return[""]}},{key:"_addMatricesUniformBlockLines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}},{key:"_addRemapClipPosLines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(".concat(t,"));")),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}},{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"setSectionPlanesStateUniforms",value:function(e){var t=this._scene,n=t.canvas.gl,r=e.model,i=e.layerIndex,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),s=t._sectionPlanesState.sectionPlanes.length;if(a>0)for(var o=t._sectionPlanesState.sectionPlanes,l=i*s,u=r.renderFlags,c=0;c0&&(this._uReflectionMap="reflectionMap"),n.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(var o=0,l=e._sectionPlanesState.getNumAllocatedSectionPlanes();o3&&void 0!==arguments[3]?arguments[3]:{},i=r.colorUniform,a=void 0!==i&&i,s=r.incrementDrawState,o=void 0!==s&&s,l=dt.MAX_TEXTURE_IMAGE_UNITS,u=this._scene,c=u.canvas.gl,f=t._state,p=t.model,A=f.textureSet,d=f.origin,v=f.positionsDecodeMatrix,h=u._lightsState,I=u.pointsMaterial,y=p.scene.camera,m=y.viewNormalMatrix,w=y.project,g=e.pickViewMatrix||y.viewMatrix,E=p.position,T=p.rotationMatrix,b=p.rotationMatrixConjugate,D=p.worldNormalMatrix;if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),this._vaoCache.has(t)?c.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(f));var P=0,R=16;this._matricesUniformBlockBufferData.set(b,0);var C=0!==d[0]||0!==d[1]||0!==d[2],_=0!==E[0]||0!==E[1]||0!==E[2];if(C||_){var B=es;if(C){var O=$.transformPoint3(T,d,ts);B[0]=O[0],B[1]=O[1],B[2]=O[2]}else B[0]=0,B[1]=0,B[2]=0;B[0]+=E[0],B[1]+=E[1],B[2]+=E[2],this._matricesUniformBlockBufferData.set(Be(g,B,ns),P+=R)}else this._matricesUniformBlockBufferData.set(g,P+=R);if(this._matricesUniformBlockBufferData.set(e.pickProjMatrix||w.matrix,P+=R),this._matricesUniformBlockBufferData.set(v,P+=R),this._matricesUniformBlockBufferData.set(D,P+=R),this._matricesUniformBlockBufferData.set(m,P+=R),c.bindBuffer(c.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),c.bufferData(c.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,c.DYNAMIC_DRAW),c.bindBufferBase(c.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer),c.uniform1i(this._uRenderPass,n),this.setSectionPlanesStateUniforms(t),u.logarithmicDepthBufferEnabled){if(this._uLogDepthBufFC){var S=2/(Math.log(e.pickZFar+1)/Math.LN2);c.uniform1f(this._uLogDepthBufFC,S)}this._uZFar&&c.uniform1f(this._uZFar,u.camera.project.far)}if(this._uPickInvisible&&c.uniform1i(this._uPickInvisible,e.pickInvisible),this._uPickZNear&&c.uniform1f(this._uPickZNear,e.pickZNear),this._uPickZFar&&c.uniform1f(this._uPickZFar,e.pickZFar),this._uPickClipPos&&c.uniform2fv(this._uPickClipPos,e.pickClipPos),this._uDrawingBufferSize&&c.uniform2f(this._uDrawingBufferSize,c.drawingBufferWidth,c.drawingBufferHeight),this._uUVDecodeMatrix&&c.uniformMatrix3fv(this._uUVDecodeMatrix,!1,f.uvDecodeMatrix),this._uIntensityRange&&I.filterIntensity&&c.uniform2f(this._uIntensityRange,I.minIntensity,I.maxIntensity),this._uPointSize&&c.uniform1f(this._uPointSize,I.pointSize),this._uNearPlaneHeight){var N="ortho"===u.camera.projection?1:c.drawingBufferHeight/(2*Math.tan(.5*u.camera.perspective.fov*Math.PI/180));c.uniform1f(this._uNearPlaneHeight,N)}if(A){var L=A.colorTexture,M=A.metallicRoughnessTexture,x=A.emissiveTexture,F=A.normalsTexture,H=A.occlusionTexture;this._uColorMap&&L&&(this._program.bindTexture(this._uColorMap,L.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uMetallicRoughMap&&M&&(this._program.bindTexture(this._uMetallicRoughMap,M.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uEmissiveMap&&x&&(this._program.bindTexture(this._uEmissiveMap,x.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uNormalMap&&F&&(this._program.bindTexture(this._uNormalMap,F.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uAOMap&&H&&(this._program.bindTexture(this._uAOMap,H.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l)}if(h.reflectionMaps.length>0&&h.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,h.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++),h.lightMaps.length>0&&h.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,h.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++),this._withSAO){var U=u.sao,G=U.possible;if(G){var k=c.drawingBufferWidth,j=c.drawingBufferHeight;$a[0]=k,$a[1]=j,$a[2]=U.blendCutoff,$a[3]=U.blendFactor,c.uniform4fv(this._uSAOParams,$a),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++}}if(a){var V=this._edges?"edgeColor":"fillColor",Q=this._edges?"edgeAlpha":"fillAlpha";if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_XRAYED")]){var W=u.xrayMaterial._state,z=W[V],K=W[Q];c.uniform4f(this._uColor,z[0],z[1],z[2],K)}else if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_HIGHLIGHTED")]){var Y=u.highlightMaterial._state,X=Y[V],q=Y[Q];c.uniform4f(this._uColor,X[0],X[1],X[2],q)}else if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_SELECTED")]){var J=u.selectedMaterial._state,Z=J[V],ee=J[Q];c.uniform4f(this._uColor,Z[0],Z[1],Z[2],ee)}else c.uniform4fv(this._uColor,this._edges?Za:Ja)}this._draw({state:f,frameCtx:e,incrementDrawState:o}),c.bindVertexArray(null)}}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null,re.memory.programs--}}]),e}(),is=function(e){I(n,rs);var t=m(n);function n(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.instancing,s=void 0!==a&&a,o=i.edges,l=void 0!==o&&o;return b(this,n),t.call(this,e,r,{instancing:s,edges:l})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;if(this._edges)t.drawElements(t.LINES,n.edgeIndicesBuf.numItems,n.edgeIndicesBuf.itemType,0);else{var a=r.pickElementsCount||n.indicesBuf.numItems,s=r.pickElementsOffset?r.pickElementsOffset*n.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,a,n.indicesBuf.itemType,s),i&&r.drawElements++}}}]),n}(),as=function(e){I(n,is);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!1,edges:!0})}return P(n)}(),ss=function(e){I(n,rs);var t=m(n);function n(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.edges,s=void 0!==a&&a;return b(this,n),t.call(this,e,r,{instancing:!0,edges:s})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;this._edges?t.drawElementsInstanced(t.LINES,n.edgeIndicesBuf.numItems,n.edgeIndicesBuf.itemType,0,n.numInstances):(t.drawElementsInstanced(t.TRIANGLES,n.indicesBuf.numItems,n.indicesBuf.itemType,0,n.numInstances),i&&r.drawElements++)}}]),n}(),os=function(e){I(n,ss);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0,edges:!0})}return P(n)}(),ls=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawArrays(t.POINTS,0,n.positionsBuf.numItems),i&&r.drawArrays++}}]),n}(),us=function(e){I(n,rs);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawArraysInstanced(t.POINTS,0,n.positionsBuf.numItems,n.numInstances),i&&r.drawArrays++}}]),n}(),cs=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawElements(t.LINES,n.indicesBuf.numItems,n.indicesBuf.itemType,0),i&&r.drawElements++}}]),n}(),fs=function(e){I(n,rs);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawElementsInstanced(t.LINES,n.indicesBuf.numItems,n.indicesBuf.itemType,0,n.numInstances),i&&r.drawElements++}}]),n}(),ps=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e,t=this._scene,n=t._sectionPlanesState,r=t._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),t.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),t.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(var s=0,o=r.lights.length;s= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),i&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),t.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(var l=0,u=r.lights.length;l0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}}]),n}(),As=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching flat-shading draw vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._lightsState,n=e._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),r){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var a=0,s=n.getNumAllocatedSectionPlanes();a> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var c=0,f=n.getNumAllocatedSectionPlanes();c 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(var p=0,A=t.lights.length;p0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}]),n}(),vs=function(e){I(n,as);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("uniform int renderPass;"),n.push("uniform vec4 color;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),hs=function(e){I(n,as);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Is=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry picking vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),this._addRemapClipPosLines(n),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry picking fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vPickColor; "),r.push("}"),r}}]),n}(),ys=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),this._addRemapClipPosLines(n),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),ms=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vWorldNormal;"),n.push("out vec4 outColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec3 worldNormal = octDecode(normal.xy); "),n.push(" vWorldNormal = worldNormal;"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outNormal = ivec4(vWorldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),ws=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}]),n}(),gs=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec2 vHighPrecisionZW;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching depth fragment shader"),r.push("precision highp float;"),r.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),r.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),r.push("}"),r}}]),n}(),Es=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n,!0),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),Ts=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry shadow vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 outColor;"),n.push("void main(void) {"),n.push(" int colorFlag = int(flags) & 0xF;"),n.push(" bool visible = (colorFlag > 0);"),n.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push(" if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry shadow fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = encodeFloat( gl_FragCoord.z); "),n.push("}"),n}}]),n}(),bs=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=e._lightsState,r=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),n.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),r&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),r&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),n.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._sectionPlanesState,r=e._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=n.clippingCaps,s=[];s.push("#version 300 es"),s.push("// Triangles batching quality draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform sampler2D uColorMap;"),s.push("uniform sampler2D uMetallicRoughMap;"),s.push("uniform sampler2D uEmissiveMap;"),s.push("uniform sampler2D uNormalMap;"),s.push("uniform sampler2D uAOMap;"),s.push("in vec4 vViewPosition;"),s.push("in vec3 vViewNormal;"),s.push("in vec4 vColor;"),s.push("in vec2 vUV;"),s.push("in vec2 vMetallicRoughness;"),r.lightMaps.length>0&&s.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(s,!0),r.reflectionMaps.length>0&&s.push("uniform samplerCube reflectionMap;"),r.lightMaps.length>0&&s.push("uniform samplerCube lightMap;"),s.push("uniform vec4 lightAmbient;");for(var o=0,l=r.lights.length;o0&&(s.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),s.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),s.push(" return envMapColor;"),s.push("}")),s.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),s.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),s.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),s.push("}"),s.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" return 1.0 / ( gl * gv );"),s.push("}"),s.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" return 0.5 / max( gv + gl, EPSILON );"),s.push("}"),s.push("float D_GGX(const in float alpha, const in float dotNH) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),s.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float alpha = ( roughness * roughness );"),s.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),s.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),s.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),s.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),s.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),s.push(" vec3 F = F_Schlick( specularColor, dotLH );"),s.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),s.push(" float D = D_GGX( alpha, dotNH );"),s.push(" return F * (G * D);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),s.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),s.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),s.push(" vec4 r = roughness * c0 + c1;"),s.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),s.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),s.push(" return specularColor * AB.x + AB.y;"),s.push("}"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&(s.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.lightMaps.length>0&&(s.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),s.push(" irradiance *= PI;"),s.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),r.reflectionMaps.length>0&&(s.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),s.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),s.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),s.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),s.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),s.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),s.push("}")),s.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),s.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),s.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),s.push("}"),s.push("out vec4 outColor;"),s.push("void main(void) {"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var p=0,A=n.getNumAllocatedSectionPlanes();p (0.002 * vClipPosition.w)) {"),s.push(" discard;"),s.push(" }"),s.push(" if (dist > 0.0) { "),s.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" return;"),s.push("}")):(s.push(" if (dist > 0.0) { "),s.push(" discard;"),s.push(" }")),s.push("}")}s.push("IncidentLight light;"),s.push("Material material;"),s.push("Geometry geometry;"),s.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),s.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),s.push("float opacity = float(vColor.a) / 255.0;"),s.push("vec3 baseColor = rgb;"),s.push("float specularF0 = 1.0;"),s.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),s.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),s.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),s.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),s.push("baseColor *= colorTexel.rgb;"),s.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),s.push("metallic *= metalRoughTexel.b;"),s.push("roughness *= metalRoughTexel.g;"),s.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),s.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),s.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),s.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),s.push("geometry.position = vViewPosition.xyz;"),s.push("geometry.viewNormal = -normalize(viewNormal);"),s.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),r.lightMaps.length>0&&s.push("geometry.worldNormal = normalize(vWorldNormal);"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&s.push("computePBRLightMapping(geometry, material, reflectedLight);");for(var d=0,v=r.lights.length;d0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick flat normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick flat normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("in vec4 vWorldPosition;"),n){r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),r.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),r.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),r.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),Ps=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching color texture vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._lightsState,r=e._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(var s=0,o=r.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(var f=0,p=r.getNumAllocatedSectionPlanes();f 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(var A=0,d=n.lights.length;A4096?e=4096:e<1024&&(e=1024),_s=e}},{key:"maxGeometryBatchSize",get:function(){return Bs},set:function(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Bs=e}}]),e}(),Ss=new Os,Ns=P((function e(){b(this,e),this.maxVerts=Ss.maxGeometryBatchSize,this.maxIndices=3*Ss.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]})),Ls=$.mat4(),Ms=$.mat4();function xs(e,t,n){for(var r=e.length,i=new Uint16Array(r),a=t[0],s=t[1],o=t[2],l=t[3]-a,u=t[4]-s,c=t[5]-o,f=65525,p=f/l,A=f/u,d=f/c,v=function(e){return e>=0?e:0},h=0;h=0?1:-1),s=(1-Math.abs(r))*(i>=0?1:-1),r=a,i=s}return new Int8Array([Math[t](127.5*r+(r<0?-1:0)),Math[n](127.5*i+(i<0?-1:0))])}function Us(e){var t=e[0],n=e[1];t/=t<0?127:128,n/=n<0?127:128;var r=1-Math.abs(t)-Math.abs(n);r<0&&(t=(1-Math.abs(n))*(t>=0?1:-1),n=(1-Math.abs(t))*(n>=0?1:-1));var i=Math.sqrt(t*t+n*n+r*r);return[t/i,n/i,r/i]}var Gs=$.vec3(),ks=$.vec3(),js=$.vec3(),Vs=$.vec3(),Qs=$.mat4(),Ws=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=Gs;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=ks;if(l){var y=js;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,Qs),(v=Vs)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),o.indicesBuf.bind(),s.drawElements(s.TRIANGLES,o.indicesBuf.numItems,o.indicesBuf.itemType,0),o.indicesBuf.unbind()}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec4 pickColor;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vPickColor = pickColor;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),zs=$.vec3(),Ks=$.vec3(),Ys=$.vec3(),Xs=$.vec3(),qs=$.mat4(),Js=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=zs;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=Ks;if(l){var y=Ys;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,qs),(v=Xs)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(o.edgeIndicesBuf.bind(),s.drawElements(s.LINES,o.edgeIndicesBuf.numItems,o.edgeIndicesBuf.itemType,0),o.edgeIndicesBuf.unbind()):s.drawArrays(s.POINTS,0,o.positionsBuf.numItems)}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;var n=[];return n.push("#version 300 es"),n.push("// SnapBatchingDepthRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// SnapBatchingDepthRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),Zs=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ws(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Js(this._scene))}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ws(this._scene,!1)),this._snapDepthBufInitRenderer}},{key:"snapDepthRenderer",get:function(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Js(this._scene)),this._snapDepthRenderer}},{key:"_destroy",value:function(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}]),e}(),$s={};var eo=$.mat4(),to=$.mat4(),no=$.vec4([0,0,0,1]),ro=$.vec3(),io=$.vec3(),ao=$.vec3(),so=$.vec3(),oo=$.vec3(),lo=$.vec3(),uo=$.vec3(),co=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.sortId="TrianglesBatchingLayer"+(t.solid?"-solid":"-surface")+(t.autoNormals?"-autonormals":"-normals")+(t.textureSet&&t.textureSet.colorTexture?"-colorTexture":"")+(t.textureSet&&t.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=t.layerIndex,this._batchingRenderers=(n=t.model.scene,r=n.id,(i=Cs[r])||(i=new Rs(n),Cs[r]=i,i._compile(),i.eagerCreateRenders(),n.on("compile",(function(){i._compile(),i.eagerCreateRenders()})),n.on("destroyed",(function(){delete Cs[r],i._destroy()}))),i),this._snapBatchingRenderers=function(e){var t=e.id,n=$s[t];return n||(n=new Zs(e),$s[t]=n,n._compile(),n.eagerCreateRenders(),e.on("compile",(function(){n._compile(),n.eagerCreateRenders()})),e.on("destroyed",(function(){delete $s[t],n._destroy()}))),n}(t.model.scene),this._buffer=new Ns(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({origin:$.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:t.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=$.mat4(t.positionsDecodeMatrix)),t.uvDecodeMatrix?(this._state.uvDecodeMatrix=$.mat3(t.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,t.origin&&this._state.origin.set(t.origin),this.solid=!!t.solid}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)for(var P=0,R=s.length;P0){var C=eo;I?$.inverseMat4($.transposeMat4(I,to),C):$.identityMat4(C,C),function(e,t,n,r,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}var s,o,l,u,c,f=new Float32Array([0,0,0,0]),p=new Float32Array([0,0,0,0]);for(c=0;cu&&(o=s,u=l),(l=a(p,Us(s=Hs(p,"floor","ceil"))))>u&&(o=s,u=l),(l=a(p,Us(s=Hs(p,"ceil","ceil"))))>u&&(o=s,u=l),r[i+c+0]=o[0],r[i+c+1]=o[1],r[i+c+2]=0}(C,a,a.length,w.normals,w.normals.length)}if(u)for(var _=0,B=u.length;_0)for(var k=0,j=o.length;k0)for(var V=0,Q=l.length;V0){var r=this._state.positionsDecodeMatrix?new Uint16Array(n.positions):xs(n.positions,this._modelAABB,this._state.positionsDecodeMatrix=$.mat4());if(e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,r.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(var i=0,a=this._portions.length;i0){var u=new Int8Array(n.normals);e.normalsBuf=new Dt(t,t.ARRAY_BUFFER,u,n.normals.length,3,t.STATIC_DRAW,!0)}if(n.colors.length>0){var c=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,c,n.colors.length,4,t.DYNAMIC_DRAW,!1)}if(n.uv.length>0)if(e.uvDecodeMatrix){e.uvBuf=new Dt(t,t.ARRAY_BUFFER,n.uv,n.uv.length,2,t.STATIC_DRAW,!1)}else{var f=Dn.getUVBounds(n.uv),p=Dn.compressUVs(n.uv,f.min,f.max),A=p.quantized;e.uvDecodeMatrix=$.mat3(p.decodeMatrix),e.uvBuf=new Dt(t,t.ARRAY_BUFFER,A,A.length,2,t.STATIC_DRAW,!1)}if(n.metallicRoughness.length>0){var d=new Uint8Array(n.metallicRoughness);e.metallicRoughnessBuf=new Dt(t,t.ARRAY_BUFFER,d,n.metallicRoughness.length,2,t.STATIC_DRAW,!1)}if(n.positions.length>0){var v=n.positions.length/3,h=new Float32Array(v);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,h,h.length,1,t.DYNAMIC_DRAW,!1)}if(n.pickColors.length>0){var I=new Uint8Array(n.pickColors);e.pickColorsBuf=new Dt(t,t.ARRAY_BUFFER,I,n.pickColors.length,4,t.STATIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var y=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,y,n.offsets.length,3,t.DYNAMIC_DRAW)}if(n.indices.length>0){var m=new Uint32Array(n.indices);e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,m,n.indices.length,1,t.STATIC_DRAW)}if(n.edgeIndices.length>0){var w=new Uint32Array(n.edgeIndices);e.edgeIndicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,w,n.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}}},{key:"isEmpty",value:function(){return!this._state.indicesBuf}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,!0)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=e,r=this._portions[n],i=4*r.vertsBaseIndex,a=4*r.numVerts,s=this._scratchMemory.getUInt8Array(a),o=t[0],l=t[1],u=t[2],c=t[3],f=0;f3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=e,o=this._portions[s],l=o.vertsBaseIndex,u=o.numVerts,c=l,f=u,p=!!(t&Me),A=!!(t&Ge),d=!!(t&ke),v=!!(t&je),h=!!(t&Ve),I=!!(t&Fe),y=!!(t&xe);i=!p||y||A||d&&!this.model.scene.highlightMaterial.glowThrough||v&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!p||y?qa.NOT_RENDERED:v?qa.SILHOUETTE_SELECTED:d?qa.SILHOUETTE_HIGHLIGHTED:A?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var m=0;m=!p||y?qa.NOT_RENDERED:v?qa.EDGES_SELECTED:d?qa.EDGES_HIGHLIGHTED:A?qa.EDGES_XRAYED:h?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED;var w=p&&!y&&I?qa.PICK:qa.NOT_RENDERED,g=t&He?1:0;if(r){this._deferredFlagValues||(this._deferredFlagValues=new Float32Array(this._numVerts));for(var E=c,T=c+f;EI)&&(I=b,r.set(y),i&&$.triangleNormal(A,d,v,i),h=!0)}}return h&&i&&($.transformVec3(this.model.worldNormalMatrix,i,i),$.normalizeVec3(i)),h}},{key:"destroy",value:function(){var e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}]),e}(),fo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e,t,n,r=this._scene,i=r._sectionPlanesState,a=r._lightsState,s=i.getNumAllocatedSectionPlanes()>0,o=[];for(o.push("#version 300 es"),o.push("// Instancing geometry drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec2 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),r.entityOffsetsEnabled&&o.push("in vec3 offset;"),o.push("in vec4 modelMatrixCol0;"),o.push("in vec4 modelMatrixCol1;"),o.push("in vec4 modelMatrixCol2;"),o.push("in vec4 modelNormalMatrixCol0;"),o.push("in vec4 modelNormalMatrixCol1;"),o.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(o,!0),r.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;")),o.push("uniform vec4 lightAmbient;"),e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;")),o.push("out vec4 vColor;"),o.push("void main(void) {"),o.push("int colorFlag = int(flags) & 0xF;"),o.push("if (colorFlag != renderPass) {"),o.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),o.push("} else {"),o.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),o.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),r.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),o.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),e=0,t=a.lights.length;e0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}}]),n}(),po=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry flat-shading drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=n._lightsState,a=r.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),n.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),this._withSAO&&(s.push("uniform sampler2D uOcclusionTexture;"),s.push("uniform vec4 uSAOParams;"),s.push("const float packUpscale = 256. / 255.;"),s.push("const float unpackDownScale = 255. / 256.;"),s.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),s.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),s.push("float unpackRGBToFloat( const in vec4 v ) {"),s.push(" return dot( v, unPackFactors );"),s.push("}")),a){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var o=0,l=r.getNumAllocatedSectionPlanes();o> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var c=0,f=r.getNumAllocatedSectionPlanes();c 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}for(s.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),s.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),s.push("float lambertian = 1.0;"),s.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),s.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),s.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),e=0,t=i.lights.length;e0,n=[];return n.push("#version 300 es"),n.push("// Instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing fill fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),vo=function(e){I(n,os);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles instancing edges vertex shader"),n.push("uniform int renderPass;"),n.push("uniform vec4 color;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),ho=function(e){I(n,os);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles instancing edges vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Io=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry picking vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry picking fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vPickColor; "),r.push("}"),r}}]),n}(),yo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),mo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec2 normal;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("in vec4 modelNormalMatrixCol0;"),n.push("in vec4 modelNormalMatrixCol1;"),n.push("in vec4 modelNormalMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vWorldNormal;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),n.push(" vWorldNormal = worldNormal;"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outNormal = ivec4(vWorldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),wo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// TrianglesInstancingOcclusionRenderer vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesInstancingOcclusionRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}]),n}(),go=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry depth drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec2 vHighPrecisionZW;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),n.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}]),n}(),Eo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n,!0),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),To=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry shadow drawing vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("bool visible = (colorFlag > 0);"),n.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push("if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),bo={3e3:"linearToLinear",3001:"sRGBToLinear"},Do=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=e._lightsState,r=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),n.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),r&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),r&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),n.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._sectionPlanesState,r=e._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=n.clippingCaps,s=[];s.push("#version 300 es"),s.push("// Instancing geometry quality drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform sampler2D uColorMap;"),s.push("uniform sampler2D uMetallicRoughMap;"),s.push("uniform sampler2D uEmissiveMap;"),s.push("uniform sampler2D uNormalMap;"),this._withSAO&&(s.push("uniform sampler2D uOcclusionTexture;"),s.push("uniform vec4 uSAOParams;"),s.push("const float packUpscale = 256. / 255.;"),s.push("const float unpackDownScale = 255. / 256.;"),s.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),s.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),s.push("float unpackRGBToFloat( const in vec4 v ) {"),s.push(" return dot( v, unPackFactors );"),s.push("}")),r.reflectionMaps.length>0&&s.push("uniform samplerCube reflectionMap;"),r.lightMaps.length>0&&s.push("uniform samplerCube lightMap;"),s.push("uniform vec4 lightAmbient;");for(var o=0,l=r.lights.length;o0&&s.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(s,!0),s.push("#define PI 3.14159265359"),s.push("#define RECIPROCAL_PI 0.31830988618"),s.push("#define RECIPROCAL_PI2 0.15915494"),s.push("#define EPSILON 1e-6"),s.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),s.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),s.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),s.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),s.push(" return normalize(surf_norm );"),s.push(" }"),s.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),s.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),s.push(" vec2 st0 = dFdx( uv.st );"),s.push(" vec2 st1 = dFdy( uv.st );"),s.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),s.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),s.push(" vec3 N = normalize( surf_norm );"),s.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),s.push(" mat3 tsn = mat3( S, T, N );"),s.push(" return normalize( tsn * mapN );"),s.push("}"),s.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),s.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),s.push("}"),s.push("struct IncidentLight {"),s.push(" vec3 color;"),s.push(" vec3 direction;"),s.push("};"),s.push("struct ReflectedLight {"),s.push(" vec3 diffuse;"),s.push(" vec3 specular;"),s.push("};"),s.push("struct Geometry {"),s.push(" vec3 position;"),s.push(" vec3 viewNormal;"),s.push(" vec3 worldNormal;"),s.push(" vec3 viewEyeDir;"),s.push("};"),s.push("struct Material {"),s.push(" vec3 diffuseColor;"),s.push(" float specularRoughness;"),s.push(" vec3 specularColor;"),s.push(" float shine;"),s.push("};"),s.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),s.push(" float r = ggxRoughness + 0.0001;"),s.push(" return (2.0 / (r * r) - 2.0);"),s.push("}"),s.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),s.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),s.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),s.push("}"),r.reflectionMaps.length>0&&(s.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),s.push(" vec3 envMapColor = "+bo[r.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),s.push(" return envMapColor;"),s.push("}")),s.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),s.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),s.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),s.push("}"),s.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" return 1.0 / ( gl * gv );"),s.push("}"),s.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" return 0.5 / max( gv + gl, EPSILON );"),s.push("}"),s.push("float D_GGX(const in float alpha, const in float dotNH) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),s.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float alpha = ( roughness * roughness );"),s.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),s.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),s.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),s.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),s.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),s.push(" vec3 F = F_Schlick( specularColor, dotLH );"),s.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),s.push(" float D = D_GGX( alpha, dotNH );"),s.push(" return F * (G * D);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),s.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),s.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),s.push(" vec4 r = roughness * c0 + c1;"),s.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),s.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),s.push(" return specularColor * AB.x + AB.y;"),s.push("}"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&(s.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.lightMaps.length>0&&(s.push(" vec3 irradiance = "+bo[r.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),s.push(" irradiance *= PI;"),s.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),r.reflectionMaps.length>0&&(s.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),s.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),s.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),s.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),s.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),s.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),s.push("}")),s.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),s.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),s.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),s.push("}"),s.push("out vec4 outColor;"),s.push("void main(void) {"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var p=0,A=n.getNumAllocatedSectionPlanes();p (0.002 * vClipPosition.w)) {"),s.push(" discard;"),s.push(" }"),s.push(" if (dist > 0.0) { "),s.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" return;"),s.push("}")):(s.push(" if (dist > 0.0) { "),s.push(" discard;"),s.push(" }")),s.push("}")}s.push("IncidentLight light;"),s.push("Material material;"),s.push("Geometry geometry;"),s.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),s.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),s.push("float opacity = float(vColor.a) / 255.0;"),s.push("vec3 baseColor = rgb;"),s.push("float specularF0 = 1.0;"),s.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),s.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),s.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),s.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),s.push("baseColor *= colorTexel.rgb;"),s.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),s.push("metallic *= metalRoughTexel.b;"),s.push("roughness *= metalRoughTexel.g;"),s.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),s.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),s.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),s.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),s.push("geometry.position = vViewPosition.xyz;"),s.push("geometry.viewNormal = -normalize(viewNormal);"),s.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),r.lightMaps.length>0&&s.push("geometry.worldNormal = normalize(vWorldNormal);"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&s.push("computePBRLightMapping(geometry, material, reflectedLight);");for(var d=0,v=r.lights.length;d0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&n.push("out float vFlags;"),n.push("out vec4 vWorldPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&n.push("vFlags = flags;"),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("in vec4 vWorldPosition;"),n){r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),r.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),r.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),r.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),Ro=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n.gammaOutput,i=n._sectionPlanesState,a=n._lightsState,s=i.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),n.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),o.push("uniform float gammaFactor;"),o.push("vec4 linearToLinear( in vec4 value ) {"),o.push(" return value;"),o.push("}"),o.push("vec4 sRGBToLinear( in vec4 value ) {"),o.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),o.push("}"),o.push("vec4 gammaToLinear( in vec4 value) {"),o.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),o.push("}"),r&&(o.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),o.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),o.push("}")),s){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(var l=0,u=i.getNumAllocatedSectionPlanes();l> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(var f=0,p=i.getNumAllocatedSectionPlanes();f 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}for(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),o.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),o.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),o.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),e=0,t=a.lights.length;e0,n=[];return n.push("#version 300 es"),n.push("// SnapInstancingDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec4 pickColor;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vPickColor = pickColor;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),xo=$.vec3(),Fo=$.vec3(),Ho=$.vec3(),Uo=$.vec3(),Go=$.mat4(),ko=function(e){I(n,rs);var t=m(n);function n(e){return b(this,n),t.call(this,e,!1,{instancing:!0})}return P(n,[{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(t),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=xo;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=Fo;if(l){var y=$.transformPoint3(c,l,Ho);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,Go),(v=Uo)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(o.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(o.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(o.modelMatrixCol2Buf),s.vertexAttribDivisor(this._aModelMatrixCol0.location,1),s.vertexAttribDivisor(this._aModelMatrixCol1.location,1),s.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(o.flagsBuf),s.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(o.edgeIndicesBuf.bind(),s.drawElementsInstanced(s.LINES,o.edgeIndicesBuf.numItems,o.edgeIndicesBuf.itemType,0,o.numInstances),o.edgeIndicesBuf.unbind()):s.drawArraysInstanced(s.POINTS,0,o.positionsBuf.numItems,o.numInstances),s.vertexAttribDivisor(this._aModelMatrixCol0.location,0),s.vertexAttribDivisor(this._aModelMatrixCol1.location,0),s.vertexAttribDivisor(this._aModelMatrixCol2.location,0),s.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&s.vertexAttribDivisor(this._aOffset.location,0)}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// SnapInstancingDepthRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// SnapInstancingDepthRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),jo=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Mo(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new ko(this._scene))}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Mo(this._scene,!1)),this._snapDepthBufInitRenderer}},{key:"snapDepthRenderer",get:function(){return this._snapDepthRenderer||(this._snapDepthRenderer=new ko(this._scene)),this._snapDepthRenderer}},{key:"_destroy",value:function(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}]),e}(),Vo={};var Qo=new Float32Array(1),Wo=$.vec4([0,0,0,1]),zo=new Float32Array(3),Ko=$.vec3(),Yo=$.vec3(),Xo=$.vec3(),qo=$.vec3(),Jo=$.vec3(),Zo=$.vec3(),$o=$.vec3(),el=new Float32Array(4),tl=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.sortId="TrianglesInstancingLayer"+(t.solid?"-solid":"-surface")+(t.normals?"-normals":"-autoNormals"),this.layerIndex=t.layerIndex,this._instancingRenderers=(n=t.model.scene,r=n.id,(i=_o[r])||(i=new Co(n),_o[r]=i,i._compile(),i.eagerCreateRenders(),n.on("compile",(function(){i._compile(),i.eagerCreateRenders()})),n.on("destroyed",(function(){delete _o[r],i._destroy()}))),i),this._snapInstancingRenderers=function(e){var t=e.id,n=Vo[t];return n||(n=new jo(e),Vo[t]=n,n._compile(),n.eagerCreateRenders(),e.on("compile",(function(){n._compile(),n.eagerCreateRenders()})),e.on("destroyed",(function(){delete Vo[t],n._destroy()}))),n}(t.model.scene),this._aabb=$.collapseAABB3(),this._state=new Wt({numInstances:0,obb:$.OBB3(),origin:$.vec3(),geometry:t.geometry,textureSet:t.textureSet,pbrSupported:!1,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,t.origin&&this._state.origin.set(t.origin),this._finalized=!1,this.solid=!!t.solid,this.numIndices=t.geometry.numIndices}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){e.colorsBuf=new Dt(r,r.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,r.DYNAMIC_DRAW,!1),this._colors=[]}if(this._metallicRoughness.length>0){var s=new Uint8Array(this._metallicRoughness);e.metallicRoughnessBuf=new Dt(r,r.ARRAY_BUFFER,s,this._metallicRoughness.length,2,r.STATIC_DRAW,!1)}if(a>0){e.flagsBuf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(a),a,1,r.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){e.offsetsBuf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,r.DYNAMIC_DRAW,!1),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){e.positionsBuf=new Dt(r,r.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,r.STATIC_DRAW,!1),e.positionsDecodeMatrix=$.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){var o=new Uint8Array(t.colorsCompressed);e.colorsBuf=new Dt(r,r.ARRAY_BUFFER,o,o.length,4,r.STATIC_DRAW,!1)}if(t.uvCompressed&&t.uvCompressed.length>0){var l=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Dt(r,r.ARRAY_BUFFER,l,l.length,2,r.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Dt(r,r.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,r.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Dt(r,r.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,r.STATIC_DRAW)),this._modelMatrixCol0.length>0){var u=!1;e.modelMatrixCol0Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,r.STATIC_DRAW,u),e.modelMatrixCol1Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,r.STATIC_DRAW,u),e.modelMatrixCol2Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,r.STATIC_DRAW,u),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,r.STATIC_DRAW,u),e.modelNormalMatrixCol1Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,r.STATIC_DRAW,u),e.modelNormalMatrixCol2Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,r.STATIC_DRAW,u),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){e.pickColorsBuf=new Dt(r,r.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,r.STATIC_DRAW,!1),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&n&&n.colorTexture&&n.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!n&&!!n.colorTexture,this._state.geometry=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?1:0)<<16,Qo[0]=c,this._state.flagsBuf&&this._state.flagsBuf.setData(Qo,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(zo[0]=t[0],zo[1]=t[1],zo[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(zo,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"getEachVertex",value:function(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;var n=this._state,r=n.geometry,i=this._portions[e];if(i)for(var a=r.quantizedPositions,s=n.origin,o=i.offset,l=s[0]+o[0],u=s[1]+o[1],c=s[2]+o[2],f=Wo,p=i.matrix,A=this.model.sceneModelMatrix,d=n.positionsDecodeMatrix,v=0,h=a.length;vy)&&(y=P,r.set(m),i&&$.triangleNormal(d,v,h,i),I=!0)}}return I&&i&&($.transformVec3(o.normalMatrix,i,i),$.transformVec3(this.model.worldNormalMatrix,i,i),$.normalizeVec3(i)),I}},{key:"destroy",value:function(){var e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}]),e}(),nl=function(e){I(n,cs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines batching color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),rl=function(e){I(n,cs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines batching silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = color;"),r.push("}"),r}}]),n}(),il=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new nl(this._scene,!1)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new rl(this._scene)),this._silhouetteRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}]),e}(),al={};var sl=P((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5e6;b(this,e),t>5e6&&(t=5e6),this.maxVerts=t,this.maxIndices=3*t,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]})),ol=function(){function e(t){var n,r,i;b(this,e),this.layerIndex=t.layerIndex,this._batchingRenderers=(n=t.model.scene,r=n.id,(i=al[r])||(i=new il(n),al[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete al[r],i._destroy()}))),i),this.model=t.model,this._buffer=new sl(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:$.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(t.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,t.origin&&(this._state.origin=$.vec3(t.origin))}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){var r=new Uint16Array(n.positions);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,n.positions.length,3,t.STATIC_DRAW)}else{var i=xs(new Float32Array(n.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,i,n.positions.length,3,t.STATIC_DRAW)}if(n.colors.length>0){var a=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,a,n.colors.length,4,t.DYNAMIC_DRAW,!1)}if(n.colors.length>0){var s=n.colors.length/4,o=new Float32Array(s);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,o,o.length,1,t.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var l=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,l,n.offsets.length,3,t.DYNAMIC_DRAW)}if(n.indices.length>0){var u=new Uint32Array(n.indices);e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,u,n.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,!0)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=2*e,r=4*this._portions[n],i=4*this._portions[n+1],a=this._scratchMemory.getUInt8Array(i),s=t[0],o=t[1],l=t[2],u=t[3],c=0;c3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=2*e,o=this._portions[s],l=this._portions[s+1],u=o,c=l,f=!!(t&Me),p=!!(t&Ge),A=!!(t&ke),d=!!(t&je),v=!!(t&Fe),h=!!(t&xe);i=!f||h||p||A&&!this.model.scene.highlightMaterial.glowThrough||d&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!f||h?qa.NOT_RENDERED:d?qa.SILHOUETTE_SELECTED:A?qa.SILHOUETTE_HIGHLIGHTED:p?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var I=f&&!h&&v?qa.PICK:qa.NOT_RENDERED,y=t&He?1:0;if(r){this._deferredFlagValues||(this._deferredFlagValues=new Float32Array(this._numVerts));for(var m=u,w=u+c;m0,n=[];return n.push("#version 300 es"),n.push("// Lines instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 lightAmbient;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}]),n}(),ul=function(e){I(n,fs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 color;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines instancing silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = color;"),r.push("}"),r}}]),n}(),cl=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new ll(this._scene)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new ul(this._scene)),this._silhouetteRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}]),e}(),fl={};var pl=new Uint8Array(4),Al=new Float32Array(1),dl=new Float32Array(3),vl=new Float32Array(4),hl=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.material=t.material,this.sortId="LinesInstancingLayer",this.layerIndex=t.layerIndex,this._linesInstancingRenderers=(n=t.model.scene,r=n.id,(i=fl[r])||(i=new cl(n),fl[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete fl[r],i._destroy()}))),i),this._aabb=$.collapseAABB3(),this._state=new Wt({obb:$.OBB3(),numInstances:0,origin:null,geometry:t.geometry,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,t.origin&&(this._state.origin=$.vec3(t.origin)),this._finalized=!1}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){this._state.colorsBuf=new Dt(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,!1),this._colors=[]}if(n>0){this._state.flagsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(n),n,1,e.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){this._state.offsetsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,!1),this._offsets=[]}if(this._modelMatrixCol0.length>0){var r=!1;this._state.modelMatrixCol0Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,r),this._state.modelMatrixCol1Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,r),this._state.modelMatrixCol2Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,r),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";pl[0]=t[0],pl[1]=t[1],pl[2]=t[2],pl[3]=t[3],this._state.colorsBuf.setData(pl,4*e,4)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?255:0)<<16,Al[0]=c,this._state.flagsBuf.setData(Al,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(dl[0]=t[0],dl[1]=t[1],dl[2]=t[2],this._state.offsetsBuf.setData(dl,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"setMatrix",value:function(e,t){if(!this._finalized)throw"Not finalized";var n=4*e;vl[0]=t[0],vl[1]=t[4],vl[2]=t[8],vl[3]=t[12],this._state.modelMatrixCol0Buf.setData(vl,n),vl[0]=t[1],vl[1]=t[5],vl[2]=t[9],vl[3]=t[13],this._state.modelMatrixCol1Buf.setData(vl,n),vl[0]=t[2],vl[1]=t[6],vl[2]=t[10],vl[3]=t[14],this._state.modelMatrixCol2Buf.setData(vl,n)}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT)}},{key:"drawDepth",value:function(e,t){}},{key:"drawNormals",value:function(e,t){}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED)}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED)}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED)}},{key:"drawEdgesColorOpaque",value:function(e,t){}},{key:"drawEdgesColorTransparent",value:function(e,t){}},{key:"drawEdgesXRayed",value:function(e,t){}},{key:"drawEdgesHighlighted",value:function(e,t){}},{key:"drawEdgesSelected",value:function(e,t){}},{key:"drawOcclusion",value:function(e,t){}},{key:"drawShadow",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){}},{key:"drawPickDepths",value:function(e,t){}},{key:"drawPickNormals",value:function(e,t){}},{key:"destroy",value:function(){var e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}]),e}(),Il=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial,r=[];return r.push("#version 300 es"),r.push("// Points batching color vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("in float flags;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),n.filterIntensity&&r.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),n.filterIntensity&&(r.push("float intensity = float(color.a) / 255.0;"),r.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {")),r.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),r.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),n.filterIntensity&&r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),yl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching silhouette vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),this._addMatricesUniformBlockLines(r),r.push("uniform vec4 color;"),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),r.push("if (silhouetteFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}]),n}(),ml=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching pick mesh vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 pickColor;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vPickColor;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),r.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("gl_PointSize += 10.0;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching pick mesh vertex shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vPickColor; "),r.push("}"),r}}]),n}(),wl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batched pick depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vViewPosition;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vViewPosition = viewPosition;"),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("gl_PointSize += 10.0;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batched pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),gl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching occlusion vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push(" gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching occlusion fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),r.push("}"),r}}]),n}(),El=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new Il(this._scene)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new yl(this._scene)),this._silhouetteRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickMeshRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new wl(this._scene)),this._pickDepthRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new gl(this._scene)),this._occlusionRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}]),e}(),Tl={};var bl=P((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5e6;b(this,e),t>5e6&&(t=5e6),this.maxVerts=t,this.maxIndices=3*t,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]})),Dl=function(){function e(t){b(this,e),this.model=t.model,this.sortId="PointsBatchingLayer",this.layerIndex=t.layerIndex,this._pointsBatchingRenderers=function(e){var t=e.id,n=Tl[t];return n||(n=new El(e),Tl[t]=n,n._compile(),e.on("compile",(function(){n._compile()})),e.on("destroyed",(function(){delete Tl[t],n._destroy()}))),n}(t.model.scene),this._buffer=new bl(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:$.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(t.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,t.origin&&(this._state.origin=$.vec3(t.origin))}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){var r=new Uint16Array(n.positions);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,n.positions.length,3,t.STATIC_DRAW)}else{var i=xs(new Float32Array(n.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,i,n.positions.length,3,t.STATIC_DRAW)}if(n.colors.length>0){var a=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,a,n.colors.length,4,t.STATIC_DRAW,!1)}if(n.positions.length>0){var s=n.positions.length/3,o=new Float32Array(s);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,o,o.length,1,t.DYNAMIC_DRAW,!1)}if(n.pickColors.length>0){var l=new Uint8Array(n.pickColors);e.pickColorsBuf=new Dt(t,t.ARRAY_BUFFER,l,n.pickColors.length,4,t.STATIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var u=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,u,n.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized"}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=2*e,r=4*this._portions[n],i=4*this._portions[n+1],a=this._scratchMemory.getUInt8Array(i),s=t[0],o=t[1],l=t[2],u=0;u0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing color vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("in float flags;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),n.filterIntensity&&r.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),n.filterIntensity&&(r.push("float intensity = float(color.a) / 255.0;"),r.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {")),r.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),r.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),n.filterIntensity&&r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),Rl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing silhouette vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 color;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),r.push("uniform vec4 silhouetteColor;"),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),r.push("if (silhouetteFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Cl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing pick mesh vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 pickColor;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vPickColor;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),r.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),r.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing pick mesh fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vPickColor; "),r.push("}"),r}}]),n}(),_l=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing pick depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vViewPosition;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push(" vViewPosition = viewPosition;"),r.push("vec4 clipPos = projMatrix * viewPosition;"),r.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),Bl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing occlusion vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in vec4 color;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing occlusion vertex shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),Ol=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}]),n}(),Sl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry shadow drawing vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("bool visible = (colorFlag > 0);"),n.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push("if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n.push("gl_PointSize = pointSize;"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }"),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),Nl=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new Pl(this._scene,!1)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Rl(this._scene)),this._silhouetteRenderer}},{key:"depthRenderer",get:function(){return this._depthRenderer||(this._depthRenderer=new Ol(this._scene)),this._depthRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Cl(this._scene)),this._pickMeshRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new _l(this._scene)),this._pickDepthRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new Bl(this._scene)),this._occlusionRenderer}},{key:"shadowRenderer",get:function(){return this._shadowRenderer||(this._shadowRenderer=new Sl(this._scene)),this._shadowRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}]),e}(),Ll={};var Ml=new Uint8Array(4),xl=new Float32Array(1),Fl=new Float32Array(3),Hl=new Float32Array(4),Ul=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.material=t.material,this.sortId="PointsInstancingLayer",this.layerIndex=t.layerIndex,this._pointsInstancingRenderers=(n=t.model.scene,r=n.id,(i=Ll[r])||(i=new Nl(n),Ll[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete Ll[r],i._destroy()}))),i),this._aabb=$.collapseAABB3(),this._state=new Wt({obb:$.OBB3(),numInstances:0,origin:t.origin?$.vec3(t.origin):null,geometry:t.geometry,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){n.flagsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){n.offsetsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,!1),this._offsets=[]}if(r.positionsCompressed&&r.positionsCompressed.length>0){n.positionsBuf=new Dt(e,e.ARRAY_BUFFER,r.positionsCompressed,r.positionsCompressed.length,3,e.STATIC_DRAW,!1),n.positionsDecodeMatrix=$.mat4(r.positionsDecodeMatrix)}if(r.colorsCompressed&&r.colorsCompressed.length>0){var i=new Uint8Array(r.colorsCompressed);n.colorsBuf=new Dt(e,e.ARRAY_BUFFER,i,i.length,4,e.STATIC_DRAW,!1)}if(this._modelMatrixCol0.length>0){var a=!1;n.modelMatrixCol0Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,a),n.modelMatrixCol1Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,a),n.modelMatrixCol2Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,a),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){n.pickColorsBuf=new Dt(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,!1),this._pickColors=[]}n.geometry=null,this._finalized=!0}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";Ml[0]=t[0],Ml[1]=t[1],Ml[2]=t[2],this._state.colorsBuf.setData(Ml,3*e)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?255:0)<<16,xl[0]=c,this._state.flagsBuf.setData(xl,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Fl[0]=t[0],Fl[1]=t[1],Fl[2]=t[2],this._state.offsetsBuf.setData(Fl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"setMatrix",value:function(e,t){if(!this._finalized)throw"Not finalized";var n=4*e;Hl[0]=t[0],Hl[1]=t[4],Hl[2]=t[8],Hl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Hl,n),Hl[0]=t[1],Hl[1]=t[5],Hl[2]=t[9],Hl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Hl,n),Hl[0]=t[2],Hl[1]=t[6],Hl[2]=t[10],Hl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Hl,n)}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT)}},{key:"drawDepth",value:function(e,t){}},{key:"drawNormals",value:function(e,t){}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED)}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED)}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED)}},{key:"drawEdgesColorOpaque",value:function(e,t){}},{key:"drawEdgesColorTransparent",value:function(e,t){}},{key:"drawEdgesHighlighted",value:function(e,t){}},{key:"drawEdgesSelected",value:function(e,t){}},{key:"drawEdgesXRayed",value:function(e,t){}},{key:"drawOcclusion",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawShadow",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,qa.PICK)}},{key:"drawPickDepths",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,qa.PICK)}},{key:"drawPickNormals",value:function(e,t){}},{key:"destroy",value:function(){var e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}]),e}(),Gl=function(){function e(t){b(this,e),this.id=t.id,this.colorTexture=t.colorTexture,this.metallicRoughnessTexture=t.metallicRoughnessTexture,this.normalsTexture=t.normalsTexture,this.emissiveTexture=t.emissiveTexture,this.occlusionTexture=t.occlusionTexture}return P(e,[{key:"destroy",value:function(){}}]),e}(),kl=function(){function e(t){b(this,e),this.id=t.id,this.texture=t.texture}return P(e,[{key:"destroy",value:function(){this.texture&&(this.texture.destroy(),this.texture=null)}}]),e}(),jl={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}},Vl=function(){function e(t,n,r){b(this,e),this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=t,this.onProgress=n,this.onError=r}return P(e,[{key:"itemStart",value:function(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}},{key:"itemEnd",value:function(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}},{key:"itemError",value:function(e){void 0!==this.onError&&this.onError(e)}},{key:"resolveURL",value:function(e){return this.urlModifier?this.urlModifier(e):e}},{key:"setURLModifier",value:function(e){return this.urlModifier=e,this}},{key:"addHandler",value:function(e,t){return this.handlers.push(e,t),this}},{key:"removeHandler",value:function(e){var t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}},{key:"getHandler",value:function(e){for(var t=0,n=this.handlers.length;t0&&void 0!==arguments[0]?arguments[0]:4;b(this,e),this.pool=t,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}return P(e,[{key:"_initWorker",value:function(e){if(!this.workers[e]){var t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}},{key:"_getIdleWorker",value:function(){for(var e=0;e0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),Xl++}return this._transcoderPending}},{key:"transcode",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise((function(i,a){var s=r;n._init().then((function(){return n._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:s},e)})).then((function(e){var n=e.data,r=n.mipmaps,s=(n.width,n.height,n.format),o=n.type,l=n.error,u=n.dfdTransferFn,c=n.dfdFlags;if("error"===o)return a(l);t.setCompressedData({mipmaps:r,props:{format:s,minFilter:1===r.length?1006:1008,magFilter:1===r.length?1006:1008,encoding:2===u?3001:3e3,premultiplyAlpha:!!(1&c)}}),i()}))}))}},{key:"destroy",value:function(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),Xl--}}]),e}();ql.BasisFormat={ETC1S:0,UASTC_4x4:1},ql.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},ql.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},ql.BasisWorker=function(){var e,t,n,r=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(s){var c,f=s.data;switch(f.type){case"init":e=f.config,c=f.transcoderBinary,t=new Promise((function(e){n={wasmBinary:c,onRuntimeInitialized:e},BASIS(n)})).then((function(){n.initializeBasis(),void 0===n.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((function(){try{for(var t=function(t){var s=new n.KTX2File(new Uint8Array(t));function c(){s.close(),s.delete()}if(!s.isValid())throw c(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");var f=s.isUASTC()?a.UASTC_4x4:a.ETC1S,p=s.getWidth(),A=s.getHeight(),d=s.getLevels(),v=s.getHasAlpha(),h=s.getDFDTransferFunc(),I=s.getDFDFlags(),y=function(t,n,s,c){for(var f,p,A=t===a.ETC1S?o:l,d=0;d=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var o=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(o&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;b(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:P(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function l(e,t,n,r,i,a,s){try{var o=e[a](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,i)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function s(e){l(a,r,i,s,o,"next",e)}function o(e){l(a,r,i,s,o,"throw",e)}s(void 0)}))}}function c(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=A(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,a=[],s=!0,o=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){o=!0,i=e}finally{try{s||null==n.return||n.return()}finally{if(o)throw i}}return a}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};b(this,e),this._id=k.addItem(),this._context=null,this._enabled=!1,this._itemsCfg=[],this._rootMenu=null,this._menuList=[],this._menuMap={},this._itemList=[],this._itemMap={},this._shown=!1,this._nextId=0,this._eventSubs={},!1!==n.hideOnMouseDown&&(document.addEventListener("mousedown",(function(e){e.target.classList.contains("xeokit-context-menu-item")||t.hide()})),document.addEventListener("touchstart",this._canvasTouchStartHandler=function(e){e.target.classList.contains("xeokit-context-menu-item")||t.hide()})),n.items&&(this.items=n.items),this._hideOnAction=!1!==n.hideOnAction,this.context=n.context,this.enabled=!1!==n.enabled,this.hide()}return P(e,[{key:"on",value:function(e,t){var n=this._eventSubs[e];n||(n=[],this._eventSubs[e]=n),n.push(t)}},{key:"fire",value:function(e,t){var n=this._eventSubs[e];if(n)for(var r=0,i=n.length;r0,c=t._getNextId(),f=a.getTitle||function(){return a.title||""},p=a.doAction||a.callback||function(){},A=a.getEnabled||function(){return!0},d=a.getShown||function(){return!0},v=new Q(c,f,p,A,d);if(v.parentMenu=i,l.items.push(v),u){var h=e(s);v.subMenu=h,h.parentItem=v}t._itemList.push(v),t._itemMap[v.id]=v},c=0,f=o.length;c'),r.push("
    "),n)for(var i=0,a=n.length;i'+A+" [MORE]"):r.push('
  • '+A+"
  • ")}}r.push("
"),r.push("");var d=r.join("");document.body.insertAdjacentHTML("beforeend",d);var v=document.querySelector("."+e.id);e.menuElement=v,v.style["border-radius"]="4px",v.style.display="none",v.style["z-index"]=3e5,v.style.background="white",v.style.border="1px solid black",v.style["box-shadow"]="0 4px 5px 0 gray",v.oncontextmenu=function(e){e.preventDefault()};var h=this,I=null;if(n)for(var y=0,m=n.length;ywindow.innerWidth?h._showMenu(t.id,a.left-200,a.top-1):h._showMenu(t.id,a.right-5,a.top-1),I=t}}else I&&(h._hideMenu(I.id),I=null)})),i||(r.itemElement.addEventListener("click",(function(e){e.preventDefault(),h._context&&!1!==r.enabled&&(r.doAction&&r.doAction(h._context),t._hideOnAction?h.hide():(h._updateItemsTitles(),h._updateItemsEnabledStatus()))})),r.itemElement.addEventListener("mouseenter",(function(e){e.preventDefault(),!1!==r.enabled&&r.doHover&&r.doHover(h._context)})))},E=0,T=w.length;Ewindow.innerHeight&&(n=window.innerHeight-r),t+i>window.innerWidth&&(t=window.innerWidth-i),e.style.left=t+"px",e.style.top=n+"px"}},{key:"_hideMenuElement",value:function(e){e.style.display="none"}}]),e}(),z=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this.viewer=t,this.scene=this.viewer.scene,this._lensCursorDiv=document.createElement("div"),this.viewer.scene.canvas.canvas.parentNode.insertBefore(this._lensCursorDiv,this.viewer.scene.canvas.canvas),this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red",this._lensCursorDiv.style.borderRadius="20px",this._lensCursorDiv.style.width="10px",this._lensCursorDiv.style.height="10px",this._lensCursorDiv.style.margin="-200px -200px",this._lensCursorDiv.style.zIndex="100000",this._lensCursorDiv.style.position="absolute",this._lensCursorDiv.style.pointerEvents="none",this._lensContainer=document.createElement("div"),this._lensContainer.style.border="1px solid black",this._lensContainer.style.background="white",this._lensContainer.style.borderRadius="50%",this._lensContainer.style.width="300px",this._lensContainer.style.height="300px",this._lensContainer.style.marginTop="85px",this._lensContainer.style.marginLeft="25px",this._lensContainer.style.zIndex="15000",this._lensContainer.style.position="absolute",this._lensContainer.style.pointerEvents="none",this._lensContainer.style.visibility="hidden",this._lensCanvas=document.createElement("canvas"),this._lensCanvas.style.borderRadius="50%",this._lensCanvas.style.width="300px",this._lensCanvas.style.height="300px",this._lensCanvas.style.zIndex="15000",this._lensCanvas.style.pointerEvents="none",document.body.appendChild(this._lensContainer),this._lensContainer.appendChild(this._lensCanvas),this._lensCanvasContext=this._lensCanvas.getContext("2d"),this._canvasElement=this.viewer.scene.canvas.canvas,this._canvasPos=null,this._snappedCanvasPos=null,this._lensPosToggle=!0,this._zoomLevel=r.zoomLevel||2,this._active=!1!==r.active,this._visible=!1,this._snapped=!1,this._onViewerRendering=this.viewer.scene.on("rendering",(function(){n._active&&n._visible&&n.update()}))}return P(e,[{key:"update",value:function(){if(this._active&&this._visible&&this._canvasPos){var e=this._lensContainer.getBoundingClientRect(),t=this._canvasElement.getBoundingClientRect(),n=this._canvasPos[0]e.left&&this._canvasPos[1]e.top;this._lensContainer.style.marginLeft="25px",n&&(this._lensPosToggle?this._lensContainer.style.marginTop="".concat(t.bottom-t.top-this._lensCanvas.height-85,"px"):this._lensContainer.style.marginTop="85px",this._lensPosToggle=!this._lensPosToggle),this._lensCanvasContext.clearRect(0,0,this._lensCanvas.width,this._lensCanvas.height);var r=Math.max(this._lensCanvas.width,this._lensCanvas.height)/this._zoomLevel;this._lensCanvasContext.drawImage(this._canvasElement,this._canvasPos[0]-r/2,this._canvasPos[1]-r/2,r,r,0,0,this._lensCanvas.width,this._lensCanvas.height);var i=[(e.left+e.right)/2,(e.top+e.bottom)/2];if(this._snappedCanvasPos){var a=this._snappedCanvasPos[0]-this._canvasPos[0],s=this._snappedCanvasPos[1]-this._canvasPos[1];this._lensCursorDiv.style.marginLeft="".concat(i[0]+a*this._zoomLevel-10,"px"),this._lensCursorDiv.style.marginTop="".concat(i[1]+s*this._zoomLevel-10,"px")}else this._lensCursorDiv.style.marginLeft="".concat(i[0]-10,"px"),this._lensCursorDiv.style.marginTop="".concat(i[1]-10,"px")}}},{key:"zoomFactor",get:function(){return this._zoomFactor},set:function(e){this._zoomFactor=e,this.update()}},{key:"canvasPos",get:function(){return this._canvasPos},set:function(e){this._canvasPos=e,this.update()}},{key:"snappedCanvasPos",get:function(){return this._snappedCanvasPos},set:function(e){this._snappedCanvasPos=e,this.update()}},{key:"snapped",get:function(){return this._snapped},set:function(e){this._snapped=e,e?(this._lensCursorDiv.style.background="greenyellow",this._lensCursorDiv.style.border="2px solid green"):(this._lensCursorDiv.style.background="pink",this._lensCursorDiv.style.border="2px solid red")}},{key:"active",get:function(){return this._active},set:function(e){this._active=e,this._lensContainer.style.visibility=e&&this._visible?"visible":"hidden",e&&this._visible||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible=e,this._lensContainer.style.visibility=e&&this._active?"visible":"hidden",e&&this._active||(this._lensCursorDiv.style.marginLeft="-100px",this._lensCursorDiv.style.marginTop="-100px"),this.update()}},{key:"destroy",value:function(){this._destroyed||(this.viewer.scene.off(this._onViewerRendering),this._lensContainer.removeChild(this._lensCanvas),document.body.removeChild(this._lensContainer),this._destroyed=!0)}}]),e}(),K=!0,Y=K?Float64Array:Float32Array,X=new Y(3),q=new Y(16),J=new Y(16),Z=new Y(4),$={setDoublePrecisionEnabled:function(e){Y=(K=e)?Float64Array:Float32Array},getDoublePrecisionEnabled:function(){return K},MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId:function(e,t){var n=t.indexOf("#");return n===e.length&&t.startsWith(e)?t.substring(n+1):t},globalizeObjectId:function(e,t){return e+"#"+t},safeInv:function(e){var t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:function(e){return new Y(e||2)},vec3:function(e){return new Y(e||3)},vec4:function(e){return new Y(e||4)},mat3:function(e){return new Y(e||9)},mat3ToMat4:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Y(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},mat4:function(e){return new Y(e||16)},mat4ToMat3:function(e,t){},doublesToFloats:function(e,t,n){for(var r=new Y(2),i=0,a=e.length;i>8&255]+e[t>>16&255]+e[t>>24&255],"-").concat(e[255&n]).concat(e[n>>8&255],"-").concat(e[n>>16&15|64]).concat(e[n>>24&255],"-").concat(e[63&r|128]).concat(e[r>>8&255],"-").concat(e[r>>16&255]).concat(e[r>>24&255]).concat(e[255&i]).concat(e[i>>8&255]).concat(e[i>>16&255]).concat(e[i>>24&255])}}(),clamp:function(e,t,n){return Math.max(t,Math.min(n,e))},fmod:function(e,t){if(e1?1:n,Math.acos(n)},vec3FromMat4Scale:function(){var e=new Y(3);return function(t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],n[0]=$.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],n[1]=$.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],n[2]=$.lenVec3(e),n}}(),vecToArray:function(){function e(e){return Math.round(1e5*e)/1e5}return function(t){for(var n=0,r=(t=Array.prototype.slice.call(t)).length;n0&&void 0!==arguments[0]?arguments[0]:new Y(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},identityMat3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Y(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},isIdentityMat4:function(e){return 1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]},negateMat4:function(e,t){return t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},addMat4:function(e,t,n){return n||(n=e),n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},addMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]+t,n[1]=e[1]+t,n[2]=e[2]+t,n[3]=e[3]+t,n[4]=e[4]+t,n[5]=e[5]+t,n[6]=e[6]+t,n[7]=e[7]+t,n[8]=e[8]+t,n[9]=e[9]+t,n[10]=e[10]+t,n[11]=e[11]+t,n[12]=e[12]+t,n[13]=e[13]+t,n[14]=e[14]+t,n[15]=e[15]+t,n},addScalarMat4:function(e,t,n){return $.addMat4Scalar(t,e,n)},subMat4:function(e,t,n){return n||(n=e),n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},subMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]-t,n[3]=e[3]-t,n[4]=e[4]-t,n[5]=e[5]-t,n[6]=e[6]-t,n[7]=e[7]-t,n[8]=e[8]-t,n[9]=e[9]-t,n[10]=e[10]-t,n[11]=e[11]-t,n[12]=e[12]-t,n[13]=e[13]-t,n[14]=e[14]-t,n[15]=e[15]-t,n},subScalarMat4:function(e,t,n){return n||(n=t),n[0]=e-t[0],n[1]=e-t[1],n[2]=e-t[2],n[3]=e-t[3],n[4]=e-t[4],n[5]=e-t[5],n[6]=e-t[6],n[7]=e-t[7],n[8]=e-t[8],n[9]=e-t[9],n[10]=e-t[10],n[11]=e-t[11],n[12]=e-t[12],n[13]=e-t[13],n[14]=e-t[14],n[15]=e-t[15],n},mulMat4:function(e,t,n){n||(n=e);var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],f=e[8],p=e[9],A=e[10],d=e[11],v=e[12],h=e[13],I=e[14],y=e[15],m=t[0],w=t[1],g=t[2],E=t[3],T=t[4],b=t[5],D=t[6],P=t[7],R=t[8],C=t[9],_=t[10],B=t[11],O=t[12],S=t[13],N=t[14],L=t[15];return n[0]=m*r+w*o+g*f+E*v,n[1]=m*i+w*l+g*p+E*h,n[2]=m*a+w*u+g*A+E*I,n[3]=m*s+w*c+g*d+E*y,n[4]=T*r+b*o+D*f+P*v,n[5]=T*i+b*l+D*p+P*h,n[6]=T*a+b*u+D*A+P*I,n[7]=T*s+b*c+D*d+P*y,n[8]=R*r+C*o+_*f+B*v,n[9]=R*i+C*l+_*p+B*h,n[10]=R*a+C*u+_*A+B*I,n[11]=R*s+C*c+_*d+B*y,n[12]=O*r+S*o+N*f+L*v,n[13]=O*i+S*l+N*p+L*h,n[14]=O*a+S*u+N*A+L*I,n[15]=O*s+S*c+N*d+L*y,n},mulMat3:function(e,t,n){n||(n=new Y(9));var r=e[0],i=e[3],a=e[6],s=e[1],o=e[4],l=e[7],u=e[2],c=e[5],f=e[8],p=t[0],A=t[3],d=t[6],v=t[1],h=t[4],I=t[7],y=t[2],m=t[5],w=t[8];return n[0]=r*p+i*v+a*y,n[3]=r*A+i*h+a*m,n[6]=r*d+i*I+a*w,n[1]=s*p+o*v+l*y,n[4]=s*A+o*h+l*m,n[7]=s*d+o*I+l*w,n[2]=u*p+c*v+f*y,n[5]=u*A+c*h+f*m,n[8]=u*d+c*I+f*w,n},mulMat4Scalar:function(e,t,n){return n||(n=e),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},mulMat4v4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=t[0],i=t[1],a=t[2],s=t[3];return n[0]=e[0]*r+e[4]*i+e[8]*a+e[12]*s,n[1]=e[1]*r+e[5]*i+e[9]*a+e[13]*s,n[2]=e[2]*r+e[6]*i+e[10]*a+e[14]*s,n[3]=e[3]*r+e[7]*i+e[11]*a+e[15]*s,n},transposeMat4:function(e,t){var n=e[4],r=e[14],i=e[8],a=e[13],s=e[12],o=e[9];if(!t||e===t){var l=e[1],u=e[2],c=e[3],f=e[6],p=e[7],A=e[11];return e[1]=n,e[2]=i,e[3]=s,e[4]=l,e[6]=o,e[7]=a,e[8]=u,e[9]=f,e[11]=r,e[12]=c,e[13]=p,e[14]=A,e}return t[0]=e[0],t[1]=n,t[2]=i,t[3]=s,t[4]=e[1],t[5]=e[5],t[6]=o,t[7]=a,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=r,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3:function(e,t){if(t===e){var n=e[1],r=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},determinantMat4:function(e){var t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],f=e[10],p=e[11],A=e[12],d=e[13],v=e[14],h=e[15];return A*c*o*i-u*d*o*i-A*s*f*i+a*d*f*i+u*s*v*i-a*c*v*i-A*c*r*l+u*d*r*l+A*n*f*l-t*d*f*l-u*n*v*l+t*c*v*l+A*s*r*p-a*d*r*p-A*n*o*p+t*d*o*p+a*n*v*p-t*s*v*p-u*s*r*h+a*c*r*h+u*n*o*h-t*c*o*h-a*n*f*h+t*s*f*h},inverseMat4:function(e,t){t||(t=e);var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],f=e[9],p=e[10],A=e[11],d=e[12],v=e[13],h=e[14],I=e[15],y=n*o-r*s,m=n*l-i*s,w=n*u-a*s,g=r*l-i*o,E=r*u-a*o,T=i*u-a*l,b=c*v-f*d,D=c*h-p*d,P=c*I-A*d,R=f*h-p*v,C=f*I-A*v,_=p*I-A*h,B=1/(y*_-m*C+w*R+g*P-E*D+T*b);return t[0]=(o*_-l*C+u*R)*B,t[1]=(-r*_+i*C-a*R)*B,t[2]=(v*T-h*E+I*g)*B,t[3]=(-f*T+p*E-A*g)*B,t[4]=(-s*_+l*P-u*D)*B,t[5]=(n*_-i*P+a*D)*B,t[6]=(-d*T+h*w-I*m)*B,t[7]=(c*T-p*w+A*m)*B,t[8]=(s*C-o*P+u*b)*B,t[9]=(-n*C+r*P-a*b)*B,t[10]=(d*E-v*w+I*y)*B,t[11]=(-c*E+f*w-A*y)*B,t[12]=(-s*R+o*D-l*b)*B,t[13]=(n*R-r*D+i*b)*B,t[14]=(-d*g+v*m-h*y)*B,t[15]=(c*g-f*m+p*y)*B,t},traceMat4:function(e){return e[0]+e[5]+e[10]+e[15]},translationMat4v:function(e,t){var n=t||$.identityMat4();return n[12]=e[0],n[13]=e[1],n[14]=e[2],n},translationMat3v:function(e,t){var n=t||$.identityMat3();return n[6]=e[0],n[7]=e[1],n},translationMat4c:(H=new Y(3),function(e,t,n,r){return H[0]=e,H[1]=t,H[2]=n,$.translationMat4v(H,r)}),translationMat4s:function(e,t){return $.translationMat4c(e,e,e,t)},translateMat4v:function(e,t){return $.translateMat4c(e[0],e[1],e[2],t)},translateMat4c:function(e,t,n,r){var i=r[3];r[0]+=i*e,r[1]+=i*t,r[2]+=i*n;var a=r[7];r[4]+=a*e,r[5]+=a*t,r[6]+=a*n;var s=r[11];r[8]+=s*e,r[9]+=s*t,r[10]+=s*n;var o=r[15];return r[12]+=o*e,r[13]+=o*t,r[14]+=o*n,r},setMat4Translation:function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=e[15],n},rotationMat4v:function(e,t,n){var r,i,a,s,o,l,u=$.normalizeVec4([t[0],t[1],t[2],0],[]),c=Math.sin(e),f=Math.cos(e),p=1-f,A=u[0],d=u[1],v=u[2];return r=A*d,i=d*v,a=v*A,s=A*c,o=d*c,l=v*c,(n=n||$.mat4())[0]=p*A*A+f,n[1]=p*r+l,n[2]=p*a-o,n[3]=0,n[4]=p*r-l,n[5]=p*d*d+f,n[6]=p*i+s,n[7]=0,n[8]=p*a+o,n[9]=p*i-s,n[10]=p*v*v+f,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},rotationMat4c:function(e,t,n,r,i){return $.rotationMat4v(e,[t,n,r],i)},scalingMat4v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.identityMat4();return t[0]=e[0],t[5]=e[1],t[10]=e[2],t},scalingMat3v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.identityMat3();return t[0]=e[0],t[4]=e[1],t},scalingMat4c:function(){var e=new Y(3);return function(t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,$.scalingMat4v(e,i)}}(),scaleMat4c:function(e,t,n,r){return r[0]*=e,r[4]*=t,r[8]*=n,r[1]*=e,r[5]*=t,r[9]*=n,r[2]*=e,r[6]*=t,r[10]*=n,r[3]*=e,r[7]*=t,r[11]*=n,r},scaleMat4v:function(e,t){var n=e[0],r=e[1],i=e[2];return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,t},scalingMat4s:function(e){return $.scalingMat4c(e,e,e)},rotationTranslationMat4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.mat4(),r=e[0],i=e[1],a=e[2],s=e[3],o=r+r,l=i+i,u=a+a,c=r*o,f=r*l,p=r*u,A=i*l,d=i*u,v=a*u,h=s*o,I=s*l,y=s*u;return n[0]=1-(A+v),n[1]=f+y,n[2]=p-I,n[3]=0,n[4]=f-y,n[5]=1-(c+v),n[6]=d+h,n[7]=0,n[8]=p+I,n[9]=d-h,n[10]=1-(c+A),n[11]=0,n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n},mat4ToEuler:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=$.clamp,i=e[0],a=e[4],s=e[8],o=e[1],l=e[5],u=e[9],c=e[2],f=e[6],p=e[10];return"XYZ"===t?(n[1]=Math.asin(r(s,-1,1)),Math.abs(s)<.99999?(n[0]=Math.atan2(-u,p),n[2]=Math.atan2(-a,i)):(n[0]=Math.atan2(f,l),n[2]=0)):"YXZ"===t?(n[0]=Math.asin(-r(u,-1,1)),Math.abs(u)<.99999?(n[1]=Math.atan2(s,p),n[2]=Math.atan2(o,l)):(n[1]=Math.atan2(-c,i),n[2]=0)):"ZXY"===t?(n[0]=Math.asin(r(f,-1,1)),Math.abs(f)<.99999?(n[1]=Math.atan2(-c,p),n[2]=Math.atan2(-a,l)):(n[1]=0,n[2]=Math.atan2(o,i))):"ZYX"===t?(n[1]=Math.asin(-r(c,-1,1)),Math.abs(c)<.99999?(n[0]=Math.atan2(f,p),n[2]=Math.atan2(o,i)):(n[0]=0,n[2]=Math.atan2(-a,l))):"YZX"===t?(n[2]=Math.asin(r(o,-1,1)),Math.abs(o)<.99999?(n[0]=Math.atan2(-u,l),n[1]=Math.atan2(-c,i)):(n[0]=0,n[1]=Math.atan2(s,p))):"XZY"===t&&(n[2]=Math.asin(-r(a,-1,1)),Math.abs(a)<.99999?(n[0]=Math.atan2(f,l),n[1]=Math.atan2(s,i)):(n[0]=Math.atan2(-u,p),n[1]=0)),n},composeMat4:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:$.mat4();return $.quaternionToRotationMat4(t,r),$.scaleMat4v(n,r),$.translateMat4v(e,r),r},decomposeMat4:function(){var e=new Y(3),t=new Y(16);return function(n,r,i,a){e[0]=n[0],e[1]=n[1],e[2]=n[2];var s=$.lenVec3(e);e[0]=n[4],e[1]=n[5],e[2]=n[6];var o=$.lenVec3(e);e[8]=n[8],e[9]=n[9],e[10]=n[10];var l=$.lenVec3(e);$.determinantMat4(n)<0&&(s=-s),r[0]=n[12],r[1]=n[13],r[2]=n[14],t.set(n);var u=1/s,c=1/o,f=1/l;return t[0]*=u,t[1]*=u,t[2]*=u,t[4]*=c,t[5]*=c,t[6]*=c,t[8]*=f,t[9]*=f,t[10]*=f,$.mat4ToQuaternion(t,i),a[0]=s,a[1]=o,a[2]=l,this}}(),getColMat4:function(e,t){var n=4*t;return[e[n],e[n+1],e[n+2],e[n+3]]},setRowMat4:function(e,t,n){e[t]=n[0],e[t+4]=n[1],e[t+8]=n[2],e[t+12]=n[3]},lookAtMat4v:function(e,t,n,r){r||(r=$.mat4());var i,a,s,o,l,u,c,f,p,A,d=e[0],v=e[1],h=e[2],I=n[0],y=n[1],m=n[2],w=t[0],g=t[1],E=t[2];return d===w&&v===g&&h===E?$.identityMat4():(i=d-w,a=v-g,s=h-E,o=y*(s*=A=1/Math.sqrt(i*i+a*a+s*s))-m*(a*=A),l=m*(i*=A)-I*s,u=I*a-y*i,(A=Math.sqrt(o*o+l*l+u*u))?(o*=A=1/A,l*=A,u*=A):(o=0,l=0,u=0),c=a*u-s*l,f=s*o-i*u,p=i*l-a*o,(A=Math.sqrt(c*c+f*f+p*p))?(c*=A=1/A,f*=A,p*=A):(c=0,f=0,p=0),r[0]=o,r[1]=c,r[2]=i,r[3]=0,r[4]=l,r[5]=f,r[6]=a,r[7]=0,r[8]=u,r[9]=p,r[10]=s,r[11]=0,r[12]=-(o*d+l*v+u*h),r[13]=-(c*d+f*v+p*h),r[14]=-(i*d+a*v+s*h),r[15]=1,r)},lookAtMat4c:function(e,t,n,r,i,a,s,o,l){return $.lookAtMat4v([e,t,n],[r,i,a],[s,o,l],[])},orthoMat4c:function(e,t,n,r,i,a,s){s||(s=$.mat4());var o=t-e,l=r-n,u=a-i;return s[0]=2/o,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=2/l,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=-2/u,s[11]=0,s[12]=-(e+t)/o,s[13]=-(r+n)/l,s[14]=-(a+i)/u,s[15]=1,s},frustumMat4v:function(e,t,n){n||(n=$.mat4());var r=[e[0],e[1],e[2],0],i=[t[0],t[1],t[2],0];$.addVec4(i,r,q),$.subVec4(i,r,J);var a=2*r[2],s=J[0],o=J[1],l=J[2];return n[0]=a/s,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a/o,n[6]=0,n[7]=0,n[8]=q[0]/s,n[9]=q[1]/o,n[10]=-q[2]/l,n[11]=-1,n[12]=0,n[13]=0,n[14]=-a*i[2]/l,n[15]=0,n},frustumMat4:function(e,t,n,r,i,a,s){s||(s=$.mat4());var o=t-e,l=r-n,u=a-i;return s[0]=2*i/o,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=2*i/l,s[6]=0,s[7]=0,s[8]=(t+e)/o,s[9]=(r+n)/l,s[10]=-(a+i)/u,s[11]=-1,s[12]=0,s[13]=0,s[14]=-a*i*2/u,s[15]=0,s},perspectiveMat4:function(e,t,n,r,i){var a=[],s=[];return a[2]=n,s[2]=r,s[1]=a[2]*Math.tan(e/2),a[1]=-s[1],s[0]=s[1]*t,a[0]=-s[0],$.frustumMat4v(a,s,i)},compareMat4:function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]},transformPoint3:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec3(),r=t[0],i=t[1],a=t[2];return n[0]=e[0]*r+e[4]*i+e[8]*a+e[12],n[1]=e[1]*r+e[5]*i+e[9]*a+e[13],n[2]=e[2]*r+e[6]*i+e[10]*a+e[14],n},transformPoint4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4();return n[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],n[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],n[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],n[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],n},transformPoints3:function(e,t,n){for(var r,i,a,s,o,l=n||[],u=t.length,c=e[0],f=e[1],p=e[2],A=e[3],d=e[4],v=e[5],h=e[6],I=e[7],y=e[8],m=e[9],w=e[10],g=e[11],E=e[12],T=e[13],b=e[14],D=e[15],P=0;P2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2];e[3];var f=e[4],p=e[5],A=e[6];e[7];var d=e[8],v=e[9],h=e[10];e[11];var I=e[12],y=e[13],m=e[14];for(e[15],n=0;n2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2],f=e[3],p=e[4],A=e[5],d=e[6],v=e[7],h=e[8],I=e[9],y=e[10],m=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;n3&&void 0!==arguments[3]?arguments[3]:e,i=Math.cos(n),a=Math.sin(n),s=e[0]-t[0],o=e[1]-t[1];return r[0]=s*i-o*a+t[0],r[1]=s*a+o*i+t[1],e},rotateVec3X:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},rotateVec3Y:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},rotateVec3Z:function(e,t,n,r){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r},projectVec4:function(e,t){var n=1/e[3];return(t=t||$.vec2())[0]=e[0]*n,t[1]=e[1]*n,t},unprojectVec3:(M=new Y(16),x=new Y(16),F=new Y(16),function(e,t,n,r){return this.transformVec3(this.mulMat4(this.inverseMat4(t,M),this.inverseMat4(n,x),F),e,r)}),lerpVec3:function(e,t,n,r,i,a){var s=a||$.vec3(),o=(e-t)/(n-t);return s[0]=r[0]+o*(i[0]-r[0]),s[1]=r[1]+o*(i[1]-r[1]),s[2]=r[2]+o*(i[2]-r[2]),s},lerpMat4:function(e,t,n,r,i,a){var s=a||$.mat4(),o=(e-t)/(n-t);return s[0]=r[0]+o*(i[0]-r[0]),s[1]=r[1]+o*(i[1]-r[1]),s[2]=r[2]+o*(i[2]-r[2]),s[3]=r[3]+o*(i[3]-r[3]),s[4]=r[4]+o*(i[4]-r[4]),s[5]=r[5]+o*(i[5]-r[5]),s[6]=r[6]+o*(i[6]-r[6]),s[7]=r[7]+o*(i[7]-r[7]),s[8]=r[8]+o*(i[8]-r[8]),s[9]=r[9]+o*(i[9]-r[9]),s[10]=r[10]+o*(i[10]-r[10]),s[11]=r[11]+o*(i[11]-r[11]),s[12]=r[12]+o*(i[12]-r[12]),s[13]=r[13]+o*(i[13]-r[13]),s[14]=r[14]+o*(i[14]-r[14]),s[15]=r[15]+o*(i[15]-r[15]),s},flatten:function(e){var t,n,r,i,a,s=[];for(t=0,n=e.length;t0&&void 0!==arguments[0]?arguments[0]:$.vec4();return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},eulerToQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=e[0]*$.DEGTORAD/2,i=e[1]*$.DEGTORAD/2,a=e[2]*$.DEGTORAD/2,s=Math.cos(r),o=Math.cos(i),l=Math.cos(a),u=Math.sin(r),c=Math.sin(i),f=Math.sin(a);return"XYZ"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l-u*c*f):"YXZ"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l+u*c*f):"ZXY"===t?(n[0]=u*o*l-s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l-u*c*f):"ZYX"===t?(n[0]=u*o*l-s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l+u*c*f):"YZX"===t?(n[0]=u*o*l+s*c*f,n[1]=s*c*l+u*o*f,n[2]=s*o*f-u*c*l,n[3]=s*o*l-u*c*f):"XZY"===t&&(n[0]=u*o*l-s*c*f,n[1]=s*c*l-u*o*f,n[2]=s*o*f+u*c*l,n[3]=s*o*l+u*c*f),n},mat4ToQuaternion:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),r=e[0],i=e[4],a=e[8],s=e[1],o=e[5],l=e[9],u=e[2],c=e[6],f=e[10],p=r+o+f;return p>0?(t=.5/Math.sqrt(p+1),n[3]=.25/t,n[0]=(c-l)*t,n[1]=(a-u)*t,n[2]=(s-i)*t):r>o&&r>f?(t=2*Math.sqrt(1+r-o-f),n[3]=(c-l)/t,n[0]=.25*t,n[1]=(i+s)/t,n[2]=(a+u)/t):o>f?(t=2*Math.sqrt(1+o-r-f),n[3]=(a-u)/t,n[0]=(i+s)/t,n[1]=.25*t,n[2]=(l+c)/t):(t=2*Math.sqrt(1+f-r-o),n[3]=(s-i)/t,n[0]=(a+u)/t,n[1]=(l+c)/t,n[2]=.25*t),n},vec3PairToQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=Math.sqrt($.dotVec3(e,e)*$.dotVec3(t,t)),i=r+$.dotVec3(e,t);return i<1e-8*r?(i=0,Math.abs(e[0])>Math.abs(e[2])?(n[0]=-e[1],n[1]=e[0],n[2]=0):(n[0]=0,n[1]=-e[2],n[2]=e[1])):$.cross3Vec3(e,t,n),n[3]=i,$.normalizeQuaternion(n)},angleAxisToQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),n=e[3]/2,r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t},quaternionToEuler:function(){var e=new Y(16);return function(t,n,r){return r=r||$.vec3(),$.quaternionToRotationMat4(t,e),$.mat4ToEuler(e,n,r),r}}(),mulQuaternions:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec4(),r=e[0],i=e[1],a=e[2],s=e[3],o=t[0],l=t[1],u=t[2],c=t[3];return n[0]=s*o+r*c+i*u-a*l,n[1]=s*l+i*c+a*o-r*u,n[2]=s*u+a*c+r*l-i*o,n[3]=s*c-r*o-i*l-a*u,n},vec3ApplyQuaternion:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$.vec3(),r=t[0],i=t[1],a=t[2],s=e[0],o=e[1],l=e[2],u=e[3],c=u*r+o*a-l*i,f=u*i+l*r-s*a,p=u*a+s*i-o*r,A=-s*r-o*i-l*a;return n[0]=c*u+A*-s+f*-l-p*-o,n[1]=f*u+A*-o+p*-s-c*-l,n[2]=p*u+A*-l+c*-o-f*-s,n},quaternionToMat4:function(e,t){t=$.identityMat4(t);var n=e[0],r=e[1],i=e[2],a=e[3],s=2*n,o=2*r,l=2*i,u=s*a,c=o*a,f=l*a,p=s*n,A=o*n,d=l*n,v=o*r,h=l*r,I=l*i;return t[0]=1-(v+I),t[1]=A+f,t[2]=d-c,t[4]=A-f,t[5]=1-(p+I),t[6]=h+u,t[8]=d+c,t[9]=h-u,t[10]=1-(p+v),t},quaternionToRotationMat4:function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,l=i+i,u=n*s,c=n*o,f=n*l,p=r*o,A=r*l,d=i*l,v=a*s,h=a*o,I=a*l;return t[0]=1-(p+d),t[4]=c-I,t[8]=f+h,t[1]=c+I,t[5]=1-(u+d),t[9]=A-v,t[2]=f-h,t[6]=A+v,t[10]=1-(u+p),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=$.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n,t[3]=e[3]/n,t},conjugateQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},inverseQuaternion:function(e,t){return $.normalizeQuaternion($.conjugateQuaternion(e,t))},quaternionToAngleAxis:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec4(),n=(e=$.normalizeQuaternion(e,Z))[3],r=2*Math.acos(n),i=Math.sqrt(1-n*n);return i<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i),t[3]=r,t},AABB3:function(e){return new Y(e||6)},AABB2:function(e){return new Y(e||4)},OBB3:function(e){return new Y(e||32)},OBB2:function(e){return new Y(e||16)},Sphere3:function(e,t,n,r){return new Y([e,t,n,r])},transformOBB3:function(e,t){var n,r,i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,o=t.length,l=e[0],u=e[1],c=e[2],f=e[3],p=e[4],A=e[5],d=e[6],v=e[7],h=e[8],I=e[9],y=e[10],m=e[11],w=e[12],g=e[13],E=e[14],T=e[15];for(n=0;no?s:o,a[1]+=l>u?l:u,a[2]+=c>f?c:f,Math.abs($.lenVec3(a))}}(),getAABB3Area:function(e){return(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2])},getAABB3Center:function(e,t){var n=t||$.vec3();return n[0]=(e[0]+e[3])/2,n[1]=(e[1]+e[4])/2,n[2]=(e[2]+e[5])/2,n},getAABB2Center:function(e,t){var n=t||$.vec2();return n[0]=(e[2]+e[0])/2,n[1]=(e[3]+e[1])/2,n},collapseAABB3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$.AABB3();return e[0]=$.MAX_DOUBLE,e[1]=$.MAX_DOUBLE,e[2]=$.MAX_DOUBLE,e[3]=$.MIN_DOUBLE,e[4]=$.MIN_DOUBLE,e[5]=$.MIN_DOUBLE,e},AABB3ToOBB3:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.OBB3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t},positions3ToAABB3:function(){var e=new Y(3);return function(t,n,r){n=n||$.AABB3();for(var i,a,s,o=$.MAX_DOUBLE,l=$.MAX_DOUBLE,u=$.MAX_DOUBLE,c=$.MIN_DOUBLE,f=$.MIN_DOUBLE,p=$.MIN_DOUBLE,A=0,d=t.length;Ac&&(c=i),a>f&&(f=a),s>p&&(p=s);return n[0]=o,n[1]=l,n[2]=u,n[3]=c,n[4]=f,n[5]=p,n}}(),OBB3ToAABB3:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB3(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MAX_DOUBLE,l=$.MIN_DOUBLE,u=$.MIN_DOUBLE,c=$.MIN_DOUBLE,f=0,p=e.length;fl&&(l=t),n>u&&(u=n),r>c&&(c=r);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i[4]=u,i[5]=c,i},points3ToAABB3:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB3(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MAX_DOUBLE,l=$.MIN_DOUBLE,u=$.MIN_DOUBLE,c=$.MIN_DOUBLE,f=0,p=e.length;fl&&(l=t),n>u&&(u=n),r>c&&(c=r);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i[4]=u,i[5]=c,i},points3ToSphere3:function(){var e=new Y(3);return function(t,n){n=n||$.vec4();var r,i=0,a=0,s=0,o=t.length;for(r=0;ru&&(u=l);return n[3]=u,n}}(),positions3ToSphere3:function(){var e=new Y(3),t=new Y(3);return function(n,r){r=r||$.vec4();var i,a=0,s=0,o=0,l=n.length,u=0;for(i=0;iu&&(u=c);return r[3]=u,r}}(),OBB3ToSphere3:function(){var e=new Y(3),t=new Y(3);return function(n,r){r=r||$.vec4();var i,a=0,s=0,o=0,l=n.length,u=l/4;for(i=0;if&&(f=c);return r[3]=f,r}}(),getSphere3Center:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},getPositionsCenter:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(),n=0,r=0,i=0,a=0,s=e.length;at[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]n&&(e[0]=n),e[1]>r&&(e[1]=r),e[2]>i&&(e[2]=i),e[3]0&&void 0!==arguments[0]?arguments[0]:$.AABB2();return e[0]=$.MAX_DOUBLE,e[1]=$.MAX_DOUBLE,e[2]=$.MIN_DOUBLE,e[3]=$.MIN_DOUBLE,e},point3AABB3Intersect:function(e,t){return e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(r=e[0]*n[0],i=e[0]*n[3]):(r=e[0]*n[3],i=e[0]*n[0]),e[1]>0?(r+=e[1]*n[1],i+=e[1]*n[4]):(r+=e[1]*n[4],i+=e[1]*n[1]),e[2]>0?(r+=e[2]*n[2],i+=e[2]*n[5]):(r+=e[2]*n[5],i+=e[2]*n[2]),r<=-t&&i<=-t?-1:r>=-t&&i>=-t?1:0},OBB3ToAABB2:function(e){for(var t,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.AABB2(),a=$.MAX_DOUBLE,s=$.MAX_DOUBLE,o=$.MIN_DOUBLE,l=$.MIN_DOUBLE,u=0,c=e.length;uo&&(o=t),n>l&&(l=n);return i[0]=a,i[1]=s,i[2]=o,i[3]=l,i},expandAABB2:function(e,t){return e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]3&&void 0!==arguments[3]?arguments[3]:e,i=.5*(e[0]+1),a=.5*(e[1]+1),s=.5*(e[2]+1),o=.5*(e[3]+1);return r[0]=Math.floor(i*t),r[1]=n-Math.floor(o*n),r[2]=Math.floor(s*t),r[3]=n-Math.floor(a*n),r},tangentQuadraticBezier:function(e,t,n,r){return 2*(1-e)*(n-t)+2*e*(r-n)},tangentQuadraticBezier3:function(e,t,n,r,i){return-3*t*(1-e)*(1-e)+3*n*(1-e)*(1-e)-6*e*n*(1-e)+6*e*r*(1-e)-3*e*e*r+3*e*e*i},tangentSpline:function(e){return 6*e*e-6*e+(3*e*e-4*e+1)+(-6*e*e+6*e)+(3*e*e-2*e)},catmullRomInterpolate:function(e,t,n,r,i){var a=.5*(n-e),s=.5*(r-t),o=i*i;return(2*t-2*n+a+s)*(i*o)+(-3*t+3*n-2*a-s)*o+a*i+t},b2p0:function(e,t){var n=1-e;return n*n*t},b2p1:function(e,t){return 2*(1-e)*e*t},b2p2:function(e,t){return e*e*t},b2:function(e,t,n,r){return this.b2p0(e,t)+this.b2p1(e,n)+this.b2p2(e,r)},b3p0:function(e,t){var n=1-e;return n*n*n*t},b3p1:function(e,t){var n=1-e;return 3*n*n*e*t},b3p2:function(e,t){return 3*(1-e)*e*e*t},b3p3:function(e,t){return e*e*e*t},b3:function(e,t,n,r,i){return this.b3p0(e,t)+this.b3p1(e,n)+this.b3p2(e,r)+this.b3p3(e,i)},triangleNormal:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:$.vec3(),i=t[0]-e[0],a=t[1]-e[1],s=t[2]-e[2],o=n[0]-e[0],l=n[1]-e[1],u=n[2]-e[2],c=a*u-s*l,f=s*o-i*u,p=i*l-a*o,A=Math.sqrt(c*c+f*f+p*p);return 0===A?(r[0]=0,r[1]=0,r[2]=0):(r[0]=c/A,r[1]=f/A,r[2]=p/A),r},rayTriangleIntersect:function(){var e=new Y(3),t=new Y(3),n=new Y(3),r=new Y(3),i=new Y(3);return function(a,s,o,l,u,c){c=c||$.vec3();var f=$.subVec3(l,o,e),p=$.subVec3(u,o,t),A=$.cross3Vec3(s,p,n),d=$.dotVec3(f,A);if(d<1e-6)return null;var v=$.subVec3(a,o,r),h=$.dotVec3(v,A);if(h<0||h>d)return null;var I=$.cross3Vec3(v,f,i),y=$.dotVec3(s,I);if(y<0||h+y>d)return null;var m=$.dotVec3(p,I)/d;return c[0]=a[0]+m*s[0],c[1]=a[1]+m*s[1],c[2]=a[2]+m*s[2],c}}(),rayPlaneIntersect:function(){var e=new Y(3),t=new Y(3),n=new Y(3),r=new Y(3);return function(i,a,s,o,l,u){u=u||$.vec3(),a=$.normalizeVec3(a,e);var c=$.subVec3(o,s,t),f=$.subVec3(l,s,n),p=$.cross3Vec3(c,f,r);$.normalizeVec3(p,p);var A=-$.dotVec3(s,p),d=-($.dotVec3(i,p)+A)/$.dotVec3(a,p);return u[0]=i[0]+d*a[0],u[1]=i[1]+d*a[1],u[2]=i[2]+d*a[2],u}}(),cartesianToBarycentric:function(){var e=new Y(3),t=new Y(3),n=new Y(3);return function(r,i,a,s,o){var l=$.subVec3(s,i,e),u=$.subVec3(a,i,t),c=$.subVec3(r,i,n),f=$.dotVec3(l,l),p=$.dotVec3(l,u),A=$.dotVec3(l,c),d=$.dotVec3(u,u),v=$.dotVec3(u,c),h=f*d-p*p;if(0===h)return null;var I=1/h,y=(d*A-p*v)*I,m=(f*v-p*A)*I;return o[0]=1-y-m,o[1]=m,o[2]=y,o}}(),barycentricInsideTriangle:function(e){var t=e[1],n=e[2];return n>=0&&t>=0&&n+t<1},barycentricToCartesian:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:$.vec3(),a=e[0],s=e[1],o=e[2];return i[0]=t[0]*a+n[0]*s+r[0]*o,i[1]=t[1]*a+n[1]*s+r[1]*o,i[2]=t[2]*a+n[2]*s+r[2]*o,i},mergeVertices:function(e,t,n,r){var i,a,s,o,l,u,c={},f=[],p=[],A=t?[]:null,d=n?[]:null,v=[],h=Math.pow(10,4),I=0;for(l=0,u=e.length;l>24&255,s=f>>16&255,a=f>>8&255,i=255&f,r=3*t[d],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,r=3*t[d+1],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,r=3*t[d+2],u[p++]=e[r],u[p++]=e[r+1],u[p++]=e[r+2],c[A++]=i,c[A++]=a,c[A++]=s,c[A++]=o,f++;return{positions:u,colors:c}},faceToVertexNormals:function(e,t){var n,r,i,a,s,o,l,u,c,f,p,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=A.smoothNormalsAngleThreshold||20,v={},h=[],I={},y=4,m=Math.pow(10,y);for(l=0,c=e.length;ll[3]&&(l[3]=i[p]),i[p+1]l[4]&&(l[4]=i[p+1]),i[p+2]l[5]&&(l[5]=i[p+2])}if(n.length<20||a>10)return u.triangles=n,u.leaf=!0,u;e[0]=l[3]-l[0],e[1]=l[4]-l[1],e[2]=l[5]-l[2];var A=0;e[1]>e[A]&&(A=1),e[2]>e[A]&&(A=2),u.splitDim=A;var d=(l[A]+l[A+3])/2,v=new Array(n.length),h=0,I=new Array(n.length),y=0;for(s=0,o=n.length;s2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r=0?1:-1),r=(1-Math.abs(n))*(r>=0?1:-1));var a=Math.sqrt(n*n+r*r+i*i);return t[0]=n/a,t[1]=r/a,t[2]=i/a,t},octDecodeVec2s:function(e,t){for(var n=0,r=0,i=e.length;n=0?1:-1),s=(1-Math.abs(a))*(s>=0?1:-1));var l=Math.sqrt(a*a+s*s+o*o);t[r+0]=a/l,t[r+1]=s/l,t[r+2]=o/l,r+=3}return t}};$.buildEdgeIndices=function(){var e=[],t=[],n=[],r=[],i=[],a=0,s=new Uint16Array(3),o=new Uint16Array(3),l=new Uint16Array(3),u=$.vec3(),c=$.vec3(),f=$.vec3(),p=$.vec3(),A=$.vec3(),d=$.vec3(),v=$.vec3();return function(h,I,y,m){!function(i,a){var s,o,l,u,c,f,p={},A=Math.pow(10,4),d=0;for(c=0,f=i.length;cO)||(C=n[D.index1],_=n[D.index2],(!N&&C>65535||_>65535)&&(N=!0),B.push(C),B.push(_));return N?new Uint32Array(B):new Uint16Array(B)}}(),$.planeClipsPositions3=function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,i=0,a=n.length;i=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&$.containsAABB3(e.left.aabb,r))this._insertEntity(e.left,t,n+1);else if(e.right&&$.containsAABB3(e.right.aabb,r))this._insertEntity(e.right,t,n+1);else{var i=e.aabb;ee[0]=i[3]-i[0],ee[1]=i[4]-i[1],ee[2]=i[5]-i[2];var a=0;if(ee[1]>ee[a]&&(a=1),ee[2]>ee[a]&&(a=2),!e.left){var s=i.slice();if(s[a+3]=(i[a]+i[a+3])/2,e.left={aabb:s},$.containsAABB3(s,r))return void this._insertEntity(e.left,t,n+1)}if(!e.right){var o=i.slice();if(o[a]=(i[a]+i[a+3])/2,e.right={aabb:o},$.containsAABB3(o,r))return void this._insertEntity(e.right,t,n+1)}e.entities=e.entities||[],e.entities.push(t)}}},{key:"destroy",value:function(){var e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}]),e}(),ne=function(){function e(){b(this,e),this._head=[],this._headLength=0,this._tail=[],this._index=0,this._length=0}return P(e,[{key:"length",get:function(){return this._length}},{key:"shift",value:function(){if(this._index>=this._headLength){var e=this._head;if(e.length=0,this._head=this._tail,this._tail=e,this._index=0,this._headLength=this._head.length,!this._headLength)return}var t=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,t}},{key:"push",value:function(e){return this._length++,this._tail.push(e),this}},{key:"unshift",value:function(e){return this._head[--this._index]=e,this._length++,this}}]),e}(),re={build:{version:"0.8"},client:{browser:navigator&&navigator.userAgent?navigator.userAgent:"n/a"},components:{scenes:0,models:0,meshes:0,objects:0},memory:{meshes:0,positions:0,colors:0,normals:0,uvs:0,indices:0,textures:0,transforms:0,materials:0,programs:0},frame:{frameCount:0,fps:0,useProgram:0,bindTexture:0,bindArray:0,drawElements:0,drawArrays:0,tasksRun:0,tasksScheduled:0}};var ie=[["0",10],["A",26],["a",26],["_",1],["$",1]].map((function(e){for(var t=[],n=e[0].charCodeAt(0),r=n+e[1],i=n;i0&&void 0!==arguments[0]?arguments[0]:-1,r=(new Date).getTime(),i=0;fe.length>0&&(n<0||r0&&oe>0){var n=1e3/oe;ve+=n,Ae.push(n),Ae.length>=30&&(ve-=Ae.shift()),re.frame.fps=Math.round(ve/Ae.length)}!function(e){var t=he.runTasks(e+10),n=he.getNumTasks();re.frame.tasksRun=t,re.frame.tasksScheduled=n,re.frame.tasksBudget=10}(t),function(e){for(var t in pe.time=e,he.scenes)if(he.scenes.hasOwnProperty(t)){var n=he.scenes[t];pe.sceneId=t,pe.startTime=n.startTime,pe.deltaTime=null!=pe.prevTime?pe.time-pe.prevTime:0,n.fire("tick",pe,!0)}pe.prevTime=e}(t),function(){var e,t,n,r,i,a=he.scenes,s=!1;for(i in a)a.hasOwnProperty(i)&&(e=a[i],(t=ue[i])||(t=ue[i]={}),n=e.ticksPerOcclusionTest,t.ticksPerOcclusionTest!==n&&(t.ticksPerOcclusionTest=n,t.renderCountdown=n),--e.occlusionTestCountdown<=0&&(e.doOcclusionTest(),e.occlusionTestCountdown=n),r=e.ticksPerRender,t.ticksPerRender!==r&&(t.ticksPerRender=r,t.renderCountdown=r),0==--t.renderCountdown&&(e.render(s),t.renderCountdown=r))}(),de=t,void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(e):requestAnimationFrame(e)};void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(Ie):requestAnimationFrame(Ie);var ye=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,e),this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=n.viewer;else{if("Scene"===t.type)this.scene=t;else{if(!(t instanceof e))throw"Invalid param: owner must be a Component";this.scene=t.scene}this._owner=t}this._dontClear=!!n.dontClear,this._renderer=this.scene._renderer,this.meta=n.meta||{},this.id=n.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,t&&t._own(this)}return P(e,[{key:"type",get:function(){return"Component"}},{key:"isComponent",get:function(){return!0}},{key:"glRedraw",value:function(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}},{key:"glResort",value:function(){this._renderer&&this._renderer.needStateSort()}},{key:"owner",get:function(){return this._owner}},{key:"isType",value:function(e){return this.type===e}},{key:"fire",value:function(e,t,n){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==n&&(this._events[e]=t||!0);var r,i=this._eventSubs[e];if(i)for(var a in i)i.hasOwnProperty(a)&&(r=i[a],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}},{key:"on",value:function(e,t,n){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new G),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});var r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);var i=this._subIdMap.addItem();r[i]={callback:t,scope:n||this},this._subIdEvents[i]=e;var a=this._events[e];return void 0!==a&&t.call(n||this,a),i}},{key:"off",value:function(e){if(null!=e&&this._subIdEvents){var t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];var n=this._eventSubs[t];n&&(delete n[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}}},{key:"once",value:function(e,t,n){var r=this,i=this.on(e,(function(e){r.off(i),t.call(n||this,e)}),n)}},{key:"hasSubs",value:function(e){return this._eventSubsNum&&this._eventSubsNum[e]>0}},{key:"log",value:function(e){e="[LOG]"+this._message(e),window.console.log(e),this.scene.fire("log",e)}},{key:"_message",value:function(e){return" ["+this.type+" "+le.inQuotes(this.id)+"]: "+e}},{key:"warn",value:function(e){e="[WARN]"+this._message(e),window.console.warn(e),this.scene.fire("warn",e)}},{key:"error",value:function(e){e="[ERROR]"+this._message(e),window.console.error(e),this.scene.fire("error",e)}},{key:"_attach",value:function(e){var t=e.name;if(t){var n=e.component,r=e.sceneDefault,i=e.sceneSingleton,a=e.type,s=e.on,o=!1!==e.recompiles;if(n&&(le.isNumeric(n)||le.isString(n))){var l=n;if(!(n=this.scene.components[l]))return void this.error("Component not found: "+le.inQuotes(l))}if(!n)if(!0===i){var u=this.scene.types[a];for(var c in u)if(u.hasOwnProperty){n=u[c];break}if(!n)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===r&&!(n=this.scene[t]))return this.error("Scene has no default component for '"+t+"'"),null;if(n){if(n.scene.id!==this.scene.id)return void this.error("Not in same scene: "+n.type+" "+le.inQuotes(n.id));if(a&&!n.isType(a))return void this.error("Expected a "+a+" type or subtype: "+n.type+" "+le.inQuotes(n.id))}this._attachments||(this._attachments={});var f,p,A,d=this._attached[t];if(d){if(n&&d.id===n.id)return;var v=this._attachments[d.id];for(p=0,A=(f=v.subs).length;p=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}]),e}(),Te=P((function e(){b(this,e),this.planes=[new Ee,new Ee,new Ee,new Ee,new Ee,new Ee]}));function be(e,t,n){var r=$.mulMat4(n,t,ge),i=r[0],a=r[1],s=r[2],o=r[3],l=r[4],u=r[5],c=r[6],f=r[7],p=r[8],A=r[9],d=r[10],v=r[11],h=r[12],I=r[13],y=r[14],m=r[15];e.planes[0].set(o-i,f-l,v-p,m-h),e.planes[1].set(o+i,f+l,v+p,m+h),e.planes[2].set(o-a,f-u,v-A,m-I),e.planes[3].set(o+a,f+u,v+A,m+I),e.planes[4].set(o-s,f-c,v-d,m-y),e.planes[5].set(o+s,f+c,v+d,m+y)}function De(e,t){var n=Te.INSIDE,r=me,i=we;r[0]=t[0],r[1]=t[1],r[2]=t[2],i[0]=t[3],i[1]=t[4],i[2]=t[5];for(var a=[r,i],s=0;s<6;++s){var o=e.planes[s];if(o.normal[0]*a[o.testVertex[0]][0]+o.normal[1]*a[o.testVertex[1]][1]+o.normal[2]*a[o.testVertex[2]][2]+o.offset<0)return Te.OUTSIDE;o.normal[0]*a[1-o.testVertex[0]][0]+o.normal[1]*a[1-o.testVertex[1]][1]+o.normal[2]*a[1-o.testVertex[2]][2]+o.offset<0&&(n=Te.INTERSECT)}return n}Te.INSIDE=0,Te.INTERSECT=1,Te.OUTSIDE=2;var Pe=function(e){I(n,ye);var t=m(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(b(this,n),!r.viewer)throw"[MarqueePicker] Missing config: viewer";if(!r.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";return(e=t.call(this,r.viewer.scene,r)).viewer=r.viewer,e._objectsKdTree3=r.objectsKdTree3,e._canvasMarqueeCorner1=$.vec2(),e._canvasMarqueeCorner2=$.vec2(),e._canvasMarquee=$.AABB2(),e._marqueeFrustum=new Te,e._marqueeFrustumProjMat=$.mat4(),e._pickMode=!1,e._marqueeElement=document.createElement("div"),document.body.appendChild(e._marqueeElement),e._marqueeElement.style.position="absolute",e._marqueeElement.style["z-index"]="40000005",e._marqueeElement.style.width="8px",e._marqueeElement.style.height="8px",e._marqueeElement.style.visibility="hidden",e._marqueeElement.style.top="0px",e._marqueeElement.style.left="0px",e._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",e._marqueeElement.style.opacity=1,e._marqueeElement.style["pointer-events"]="none",e}return P(n,[{key:"setMarqueeCorner1",value:function(e){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}},{key:"setMarqueeCorner2",value:function(e){this._canvasMarqueeCorner2.set(e),this._updateMarquee()}},{key:"setMarquee",value:function(e,t){this._canvasMarqueeCorner1.set(e),this._canvasMarqueeCorner2.set(t),this._updateMarquee()}},{key:"setMarqueeVisible",value:function(e){this._marqueVisible=e,this._marqueeElement.style.visibility=e?"visible":"hidden"}},{key:"getMarqueeVisible",value:function(){return this._marqueVisible}},{key:"setPickMode",value:function(e){if(e!==n.PICK_MODE_INSIDE&&e!==n.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";e!==this._pickMode&&(this._marqueeElement.style["background-image"]=e===n.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=e)}},{key:"getPickMode",value:function(){return this._pickMode}},{key:"clear",value:function(){this.fire("clear",{})}},{key:"pick",value:function(){var e=this;this._updateMarquee(),this._buildMarqueeFrustum();var t=[];return(this._canvasMarquee[2]-this._canvasMarquee[0]>3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&function r(i){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Te.INTERSECT;if(a===Te.INTERSECT&&(a=De(e._marqueeFrustum,i.aabb)),a!==Te.OUTSIDE){if(i.entities)for(var s=i.entities,o=0,l=s.length;o3||n>3)&&f.pick()}})),document.addEventListener("mouseup",(function(e){r.getActive()&&0===e.button&&(clearTimeout(c),A&&(f.setMarqueeVisible(!1),A=!1,d=!1,v=!0,f.viewer.cameraControl.pointerEnabled=!0))}),!0),p.addEventListener("mousemove",(function(e){r.getActive()&&0===e.button&&d&&(clearTimeout(c),A&&(s=e.pageX,o=e.pageY,u=e.offsetX,f.setMarqueeVisible(!0),f.setMarqueeCorner2([s,o]),f.setPickMode(l0}},{key:"log",value:function(e){console.log("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"warn",value:function(e){console.warn("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"error",value:function(e){console.error("[xeokit plugin ".concat(this.id,"]: ").concat(e))}},{key:"send",value:function(e,t){}},{key:"destroy",value:function(){this.viewer.removePlugin(this)}}]),e}(),_e=$.vec3(),Be=function(){var e=new Float64Array(16),t=new Float64Array(4),n=new Float64Array(4);return function(r,i,a){return a=a||e,t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=1,$.transformVec4(r,t,n),$.setMat4Translation(r,n,a),a.slice()}}();function Oe(e,t,n){var r=Float32Array.from([e[0]])[0],i=e[0]-r,a=Float32Array.from([e[1]])[0],s=e[1]-a,o=Float32Array.from([e[2]])[0],l=e[2]-o;t[0]=r,t[1]=a,t[2]=o,n[0]=i,n[1]=s,n[2]=l}function Se(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e3,i=$.getPositionsCenter(e,_e),a=Math.round(i[0]/r)*r,s=Math.round(i[1]/r)*r,o=Math.round(i[2]/r)*r;n[0]=a,n[1]=s,n[2]=o;var l=0!==n[0]||0!==n[1]||0!==n[2];if(l)for(var u=0,c=e.length;u0?this.meshes[0]._colorize[3]/255:1},set:function(e){if(0!==this.meshes.length){var t=null!=e,n=this.meshes[0]._colorize[3],r=255;if(t){if(e<0?e=0:e>1&&(e=1),n===(r=Math.floor(255*e)))return}else if(n===(r=255))return;for(var i=0,a=this.meshes.length;i1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._color=r.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=r.thickness||1,this._thicknessClickable=r.thicknessClickable||6,this._visible=!0,this._culled=!1;var i=this._wire,a=i.style;a.border="solid "+this._thickness+"px "+this._color,a.position="absolute",a["z-index"]=void 0===r.zIndex?"2000001":r.zIndex,a.width="0px",a.height="0px",a.visibility="visible",a.top="0px",a.left="0px",a["-webkit-transform-origin"]="0 0",a["-moz-transform-origin"]="0 0",a["-ms-transform-origin"]="0 0",a["-o-transform-origin"]="0 0",a["transform-origin"]="0 0",a["-webkit-transform"]="rotate(0deg)",a["-moz-transform"]="rotate(0deg)",a["-ms-transform"]="rotate(0deg)",a["-o-transform"]="rotate(0deg)",a.transform="rotate(0deg)",a.opacity=1,a["pointer-events"]="none",r.onContextMenu,t.appendChild(i);var s=this._wireClickable,o=s.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===r.zIndex?"2000002":r.zIndex+1,o.width="0px",o.height="0px",o.visibility="visible",o.top="0px",o.left="0px",o["-webkit-transform-origin"]="0 0",o["-moz-transform-origin"]="0 0",o["-ms-transform-origin"]="0 0",o["-o-transform-origin"]="0 0",o["transform-origin"]="0 0",o["-webkit-transform"]="rotate(0deg)",o["-moz-transform"]="rotate(0deg)",o["-ms-transform"]="rotate(0deg)",o["-o-transform"]="rotate(0deg)",o.transform="rotate(0deg)",o.opacity=0,o["pointer-events"]="none",r.onContextMenu,t.appendChild(s),r.onMouseOver&&s.addEventListener("mouseover",(function(e){r.onMouseOver(e,n)})),r.onMouseLeave&&s.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n)})),r.onMouseWheel&&s.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onMouseDown&&s.addEventListener("mousedown",(function(e){r.onMouseDown(e,n)})),r.onMouseUp&&s.addEventListener("mouseup",(function(e){r.onMouseUp(e,n)})),r.onMouseMove&&s.addEventListener("mousemove",(function(e){r.onMouseMove(e,n)})),r.onContextMenu&&s.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()})),this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}return P(e,[{key:"visible",get:function(){return"visible"===this._wire.style.visibility}},{key:"_update",value:function(){var e=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),t=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,n=this._wire.style;n.width=Math.round(e)+"px",n.left=Math.round(this._x1)+"px",n.top=Math.round(this._y1)+"px",n["-webkit-transform"]="rotate("+t+"deg)",n["-moz-transform"]="rotate("+t+"deg)",n["-ms-transform"]="rotate("+t+"deg)",n["-o-transform"]="rotate("+t+"deg)",n.transform="rotate("+t+"deg)";var r=this._wireClickable.style;r.width=Math.round(e)+"px",r.left=Math.round(this._x1)+"px",r.top=Math.round(this._y1)+"px",r["-webkit-transform"]="rotate("+t+"deg)",r["-moz-transform"]="rotate("+t+"deg)",r["-ms-transform"]="rotate("+t+"deg)",r["-o-transform"]="rotate("+t+"deg)",r.transform="rotate("+t+"deg)"}},{key:"setStartAndEnd",value:function(e,t,n,r){this._x1=e,this._y1=t,this._x2=n,this._y2=r,this._update()}},{key:"setColor",value:function(e){this._color=e||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}},{key:"setOpacity",value:function(e){this._wire.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._wire.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setClickable",value:function(e){this._wireClickable.style["pointer-events"]=e?"all":"none"}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}},{key:"destroy",value:function(e){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}]),e}(),Je=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._visible=!0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!0,this._culled=!1;var i=this._dot,a=i.style;a["border-radius"]="25px",a.border="solid 2px white",a.background="lightgreen",a.position="absolute",a["z-index"]=void 0===r.zIndex?"40000005":r.zIndex,a.width="8px",a.height="8px",a.visibility=!1!==r.visible?"visible":"hidden",a.top="0px",a.left="0px",a["box-shadow"]="0 2px 5px 0 #182A3D;",a.opacity=1,a["pointer-events"]="none",r.onContextMenu,t.appendChild(i);var s=this._dotClickable,o=s.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===r.zIndex?"40000007":r.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",r.onContextMenu,t.appendChild(s),s.addEventListener("click",(function(e){t.dispatchEvent(new MouseEvent("mouseover",e))})),r.onMouseOver&&s.addEventListener("mouseover",(function(e){r.onMouseOver(e,n),t.dispatchEvent(new MouseEvent("mouseover",e))})),r.onMouseLeave&&s.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n)})),r.onMouseWheel&&s.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onMouseDown&&s.addEventListener("mousedown",(function(e){r.onMouseDown(e,n)})),r.onMouseUp&&s.addEventListener("mouseup",(function(e){r.onMouseUp(e,n)})),r.onMouseMove&&s.addEventListener("mousemove",(function(e){r.onMouseMove(e,n)})),r.onContextMenu&&s.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()})),this.setPos(r.x||0,r.y||0),this.setFillColor(r.fillColor),this.setBorderColor(r.borderColor)}return P(e,[{key:"setPos",value:function(e,t){this._x=e,this._y=t;var n=this._dot.style;n.left=Math.round(e)-4+"px",n.top=Math.round(t)-4+"px";var r=this._dotClickable.style;r.left=Math.round(e)-9+"px",r.top=Math.round(t)-9+"px"}},{key:"setFillColor",value:function(e){this._dot.style.background=e||"lightgreen"}},{key:"setBorderColor",value:function(e){this._dot.style.border="solid 2px"+(e||"black")}},{key:"setOpacity",value:function(e){this._dot.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._dot.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setClickable",value:function(e){this._dotClickable.style["pointer-events"]=e?"all":"none"}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}},{key:"destroy",value:function(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}]),e}(),Ze=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this._highlightClass="viewer-ruler-label-highlighted",this._prefix=r.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label";var i=this._label,a=i.style;a["border-radius"]="5px",a.color="white",a.padding="4px",a.border="solid 1px",a.background="lightgreen",a.position="absolute",a["z-index"]=void 0===r.zIndex?"5000005":r.zIndex,a.width="auto",a.height="auto",a.visibility="visible",a.top="0px",a.left="0px",a["pointer-events"]="all",a.opacity=1,r.onContextMenu,i.innerText="",t.appendChild(i),this.setPos(r.x||0,r.y||0),this.setFillColor(r.fillColor),this.setBorderColor(r.fillColor),this.setText(r.text),r.onMouseOver&&i.addEventListener("mouseover",(function(e){r.onMouseOver(e,n),e.preventDefault()})),r.onMouseLeave&&i.addEventListener("mouseleave",(function(e){r.onMouseLeave(e,n),e.preventDefault()})),r.onMouseWheel&&i.addEventListener("wheel",(function(e){r.onMouseWheel(e,n)})),r.onMouseDown&&i.addEventListener("mousedown",(function(e){r.onMouseDown(e,n)})),r.onMouseUp&&i.addEventListener("mouseup",(function(e){r.onMouseUp(e,n)})),r.onMouseMove&&i.addEventListener("mousemove",(function(e){r.onMouseMove(e,n)})),r.onContextMenu&&i.addEventListener("contextmenu",(function(e){r.onContextMenu(e,n),e.preventDefault()}))}return P(e,[{key:"setPos",value:function(e,t){this._x=e,this._y=t;var n=this._label.style;n.left=Math.round(e)-20+"px",n.top=Math.round(t)-12+"px"}},{key:"setPosOnWire",value:function(e,t,n,r){var i=e+.5*(n-e),a=t+.5*(r-t),s=this._label.style;s.left=Math.round(i)-20+"px",s.top=Math.round(a)-12+"px"}},{key:"setPosBetweenWires",value:function(e,t,n,r,i,a){var s=(e+n+i)/3,o=(t+r+a)/3,l=this._label.style;l.left=Math.round(s)-20+"px",l.top=Math.round(o)-12+"px"}},{key:"setText",value:function(e){this._label.innerHTML=this._prefix+(e||"")}},{key:"setFillColor",value:function(e){this._fillColor=e||"lightgreen",this._label.style.background=this._fillColor}},{key:"setBorderColor",value:function(e){this._borderColor=e||"black",this._label.style.border="solid 1px "+this._borderColor}},{key:"setOpacity",value:function(e){this._label.style.opacity=e}},{key:"setVisible",value:function(e){this._visible!==e&&(this._visible=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setCulled",value:function(e){this._culled!==e&&(this._culled=!!e,this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden")}},{key:"setHighlighted",value:function(e){this._highlighted!==e&&(this._highlighted=!!e,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}},{key:"setClickable",value:function(e){this._label.style["pointer-events"]=e?"all":"none"}},{key:"destroy",value:function(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}]),e}(),$e=$.vec3(),et=$.vec3(),tt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e.viewer.scene,i)).plugin=e,r._container=i.container,!r._container)throw"config missing: container";r._color=i.color||e.defaultColor;var a=r.plugin.viewer.scene;r._originMarker=new Xe(a,i.origin),r._cornerMarker=new Xe(a,i.corner),r._targetMarker=new Xe(a,i.target),r._originWorld=$.vec3(),r._cornerWorld=$.vec3(),r._targetWorld=$.vec3(),r._wp=new Float64Array(12),r._vp=new Float64Array(12),r._pp=new Float64Array(12),r._cp=new Int16Array(6);var s=i.onMouseOver?function(e){i.onMouseOver(e,g(r)),r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,o=i.onMouseLeave?function(e){i.onMouseLeave(e,g(r)),r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,l=i.onContextMenu?function(e){i.onContextMenu(e,g(r))}:null,u=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},c=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},f=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},p=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};return r._originDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._cornerDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._targetDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._originWire=new qe(r._container,{color:r._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._targetWire=new qe(r._container,{color:r._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._angleLabel=new Ze(r._container,{fillColor:r._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onMouseDown:c,onMouseUp:f,onMouseMove:p,onContextMenu:l}),r._wpDirty=!1,r._vpDirty=!1,r._cpDirty=!1,r._visible=!1,r._originVisible=!1,r._cornerVisible=!1,r._targetVisible=!1,r._originWireVisible=!1,r._targetWireVisible=!1,r._angleVisible=!1,r._labelsVisible=!1,r._clickable=!1,r._originMarker.on("worldPos",(function(e){r._originWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._cornerMarker.on("worldPos",(function(e){r._cornerWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._targetMarker.on("worldPos",(function(e){r._targetWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._onViewMatrix=a.camera.on("viewMatrix",(function(){r._vpDirty=!0,r._needUpdate(0)})),r._onProjMatrix=a.camera.on("projMatrix",(function(){r._cpDirty=!0,r._needUpdate()})),r._onCanvasBoundary=a.canvas.on("boundary",(function(){r._cpDirty=!0,r._needUpdate(0)})),r._onSectionPlaneUpdated=a.on("sectionPlaneUpdated",(function(){r._sectionPlanesDirty=!0,r._needUpdate()})),r.approximate=i.approximate,r.visible=i.visible,r.originVisible=i.originVisible,r.cornerVisible=i.cornerVisible,r.targetVisible=i.targetVisible,r.originWireVisible=i.originWireVisible,r.targetWireVisible=i.targetWireVisible,r.angleVisible=i.angleVisible,r.labelsVisible=i.labelsVisible,r}return P(n,[{key:"_update",value:function(){if(this._visible){var e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._cornerWorld[0],this._wp[5]=this._cornerWorld[1],this._wp[6]=this._cornerWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._targetWorld[2],this._wp[11]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&($.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._angleLabel.setCulled(!0),this._originWire.setCulled(!0),this._targetWire.setCulled(!0),this._originDot.setCulled(!0),this._cornerDot.setCulled(!0),void this._targetDot.setCulled(!0);this._angleLabel.setCulled(!1),this._originWire.setCulled(!1),this._targetWire.setCulled(!1),this._originDot.setCulled(!1),this._cornerDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}if(this._cpDirty){var t=-.3,n=this._originMarker.viewPos[2],r=this._cornerMarker.viewPos[2],i=this._targetMarker.viewPos[2];if(n>t||r>t||i>t)return this._originDot.setVisible(!1),this._cornerDot.setVisible(!1),this._targetDot.setVisible(!1),this._originWire.setVisible(!1),this._targetWire.setVisible(!1),void this._angleLabel.setCulled(!0);$.transformPositions4(e.camera.project.matrix,this._vp,this._pp);for(var a=this._pp,s=this._cp,o=e.canvas.canvas.getBoundingClientRect(),l=this._container.getBoundingClientRect(),u=o.top-l.top,c=o.left-l.left,f=e.canvas.boundary,p=f[2],A=f[3],d=0,v=0,h=a.length;v1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e.viewer.scene)).pointerLens=i.pointerLens,r._active=!1,r._mouseState=0,r._currentAngleMeasurement=null,r._initMarkerDiv(),r._onMouseHoverSurface=null,r._onHoverNothing=null,r._onPickedNothing=null,r._onPickedSurface=null,r._onInputMouseDown=null,r._onInputMouseUp=null,r._snapping=!1!==i.snapping,r._attachPlugin(e,i),r}return P(n,[{key:"_initMarkerDiv",value:function(){var e=document.createElement("div");e.setAttribute("id","myMarkerDiv");var t=this.scene.canvas.canvas;t.parentNode.insertBefore(e,t),e.style.background="black",e.style.border="2px solid blue",e.style.borderRadius="10px",e.style.width="5px",e.style.height="5px",e.style.margin="-200px -200px",e.style.zIndex="100",e.style.position="absolute",e.style.pointerEvents="none",this.markerDiv=e}},{key:"_destroyMarkerDiv",value:function(){if(this._markerDiv){var e=document.getElementById("myMarkerDiv");e.parentNode.removeChild(e),this._markerDiv=null}}},{key:"_attachPlugin",value:function(e){this.angleMeasurementsPlugin=e,this.plugin=e}},{key:"active",get:function(){return this._active}},{key:"snapping",get:function(){return this._snapping},set:function(e){e!==this._snapping?(this._snapping=e,this.deactivate(),this.activate()):this._snapping=e}},{key:"activate",value:function(){var e=this;if(!this._active){this.markerDiv||this._initMarkerDiv(),this.angleMeasurementsPlugin;var t=this.scene;t.input;var n=t.canvas.canvas,r=this.angleMeasurementsPlugin.viewer.cameraControl,i=this.pointerLens,a=!1,s=null,o=0,l=0,u=$.vec3(),c=$.vec2();this._currentAngleMeasurement=null,this._onMouseHoverSurface=r.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",(function(t){t.snappedToVertex||t.snappedToEdge?(i&&(i.visible=!0,i.canvasPos=t.canvasPos,i.snappedCanvasPos=t.snappedCanvasPos||t.canvasPos,i.snapped=!0),e.markerDiv.style.background="greenyellow",e.markerDiv.style.border="2px solid green"):(i&&(i.visible=!0,i.canvasPos=t.canvasPos,i.snappedCanvasPos=t.canvasPos,i.snapped=!1),e.markerDiv.style.background="pink",e.markerDiv.style.border="2px solid red");var r=t.snappedCanvasPos||t.canvasPos;switch(a=!0,s=t.entity,u.set(t.worldPos),c.set(r),e._mouseState){case 0:e.markerDiv.style.marginLeft="".concat(r[0]-5,"px"),e.markerDiv.style.marginTop="".concat(r[1]-5,"px");break;case 1:e._currentAngleMeasurement&&(e._currentAngleMeasurement.originWireVisible=!0,e._currentAngleMeasurement.targetWireVisible=!1,e._currentAngleMeasurement.cornerVisible=!0,e._currentAngleMeasurement.angleVisible=!1,e._currentAngleMeasurement.corner.worldPos=t.worldPos,e._currentAngleMeasurement.corner.entity=t.entity),e.markerDiv.style.marginLeft="-10000px",e.markerDiv.style.marginTop="-10000px",n.style.cursor="pointer";break;case 2:e._currentAngleMeasurement&&(e._currentAngleMeasurement.targetWireVisible=!0,e._currentAngleMeasurement.targetVisible=!0,e._currentAngleMeasurement.angleVisible=!0,e._currentAngleMeasurement.target.worldPos=t.worldPos,e._currentAngleMeasurement.target.entity=t.entity),e.markerDiv.style.marginLeft="-10000px",e.markerDiv.style.marginTop="-10000px",n.style.cursor="pointer"}})),n.addEventListener("mousedown",this._onMouseDown=function(e){1===e.which&&(o=e.clientX,l=e.clientY)}),n.addEventListener("mouseup",this._onMouseUp=function(t){if(1===t.which&&!(t.clientX>o+20||t.clientXl+20||t.clientY1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"AngleMeasurements",e))._container=i.container||document.body,r._defaultControl=null,r._measurements={},r.defaultColor=void 0!==i.defaultColor?i.defaultColor:"#00BBFF",r.defaultLabelsVisible=!1!==i.defaultLabelsVisible,r.zIndex=i.zIndex||1e4,r._onMouseOver=function(e,t){r.fire("mouseOver",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r._onMouseLeave=function(e,t){r.fire("mouseLeave",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r._onContextMenu=function(e,t){r.fire("contextMenu",{plugin:g(r),angleMeasurement:t,measurement:t,event:e})},r}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){}},{key:"control",get:function(){return this._defaultControl||(this._defaultControl=new rt(this,{})),this._defaultControl}},{key:"measurements",get:function(){return this._measurements}},{key:"createMeasurement",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.viewer.scene.components[t.id]&&(this.error("Viewer scene component with this ID already exists: "+t.id),delete t.id);var n=t.origin,r=t.corner,i=t.target,a=new tt(this,{id:t.id,plugin:this,container:this._container,origin:{entity:n.entity,worldPos:n.worldPos},corner:{entity:r.entity,worldPos:r.worldPos},target:{entity:i.entity,worldPos:i.worldPos},visible:t.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[a.id]=a,a.on("destroyed",(function(){delete e._measurements[a.id]})),a.clickable=!0,this.fire("measurementCreated",a),a}},{key:"destroyMeasurement",value:function(e){var t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("AngleMeasurement not found: "+e)}},{key:"setLabelsShown",value:function(e){for(var t=0,n=Object.entries(this.measurements);t

";le.isArray(t)&&(t=t.join("")),t=this._renderTemplate(t);var n=document.createRange().createContextualFragment(t);this._marker=n.firstChild,this._container.appendChild(this._marker),this._marker.style.visibility=this._markerShown?"visible":"hidden",this._marker.addEventListener("click",(function(){e.plugin.fire("markerClicked",e)})),this._marker.addEventListener("mouseenter",(function(){e.plugin.fire("markerMouseEnter",e)})),this._marker.addEventListener("mouseleave",(function(){e.plugin.fire("markerMouseLeave",e)})),this._marker.addEventListener("wheel",(function(t){e.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",t))}))}if(!this._labelExternal){this._label&&(this._container.removeChild(this._label),this._label=null);var r=this._labelHTML||"

";le.isArray(r)&&(r=r.join("")),r=this._renderTemplate(r);var i=document.createRange().createContextualFragment(r);this._label=i.firstChild,this._container.appendChild(this._label),this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden",this._label.addEventListener("wheel",(function(t){e.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",t))}))}}},{key:"_updatePosition",value:function(){var e=this.scene.canvas.boundary,t=e[0],n=e[1],r=this.canvasPos;this._marker.style.left=Math.floor(t+r[0])-12+"px",this._marker.style.top=Math.floor(n+r[1])-12+"px",this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;this._label.style.left=20+Math.floor(t+r[0]+20)+"px",this._label.style.top=Math.floor(n+r[1]+-17)+"px",this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1}},{key:"_renderTemplate",value:function(e){for(var t in this._values)if(this._values.hasOwnProperty(t)){var n=this._values[t];e=e.replace(new RegExp("{{"+t+"}}","g"),n)}return e}},{key:"setMarkerShown",value:function(e){e=!!e,this._markerShown!==e&&(this._markerShown=e,this._visibilityDirty=!0)}},{key:"getMarkerShown",value:function(){return this._markerShown}},{key:"setLabelShown",value:function(e){e=!!e,this._labelShown!==e&&(this._labelShown=e,this._visibilityDirty=!0)}},{key:"getLabelShown",value:function(){return this._labelShown}},{key:"setField",value:function(e,t){this._values[e]=t||"",this._htmlDirty=!0}},{key:"getField",value:function(e){return this._values[e]}},{key:"setValues",value:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];this.setField(t,n)}}},{key:"getValues",value:function(){return this._values}},{key:"destroy",value:function(){this._marker&&(this._markerExternal?(this._marker.removeEventListener("click",this._onMouseClickedExternalMarker),this._marker.removeEventListener("mouseenter",this._onMouseEnterExternalMarker),this._marker.removeEventListener("mouseleave",this._onMouseLeaveExternalMarker),this._marker=null):this._marker.parentNode.removeChild(this._marker)),this._label&&(this._labelExternal||this._label.parentNode.removeChild(this._label),this._label=null),this.scene.off(this._onTick),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),st=$.vec3(),ot=$.vec3(),lt=$.vec3(),ut=function(e){I(n,Ce);var t=m(n);function n(e,r){var i;return b(this,n),(i=t.call(this,"Annotations",e))._labelHTML=r.labelHTML||"
",i._markerHTML=r.markerHTML||"
",i._container=r.container||document.body,i._values=r.values||{},i.annotations={},i.surfaceOffset=r.surfaceOffset,i}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){if("clearAnnotations"===e)this.clear()}},{key:"surfaceOffset",get:function(){return this._surfaceOffset},set:function(e){null==e&&(e=.3),this._surfaceOffset=e}},{key:"createAnnotation",value:function(e){var t,n,r=this;if(this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id),e.pickResult=e.pickResult||e.pickRecord,e.pickResult){var i=e.pickResult;if(i.worldPos&&i.worldNormal){var a=$.normalizeVec3(i.worldNormal,st),s=$.mulVec3Scalar(a,this._surfaceOffset,ot);t=$.addVec3(i.worldPos,s,lt),n=i.entity}else this.error("Param 'pickResult' does not have both worldPos and worldNormal")}else t=e.worldPos,n=e.entity;var o=null;e.markerElementId&&((o=document.getElementById(e.markerElementId))||this.error("Can't find DOM element for 'markerElementId' value '"+e.markerElementId+"' - defaulting to internally-generated empty DIV"));var l=null;e.labelElementId&&((l=document.getElementById(e.labelElementId))||this.error("Can't find DOM element for 'labelElementId' value '"+e.labelElementId+"' - defaulting to internally-generated empty DIV"));var u=new at(this.viewer.scene,{id:e.id,plugin:this,entity:n,worldPos:t,container:this._container,markerElement:o,labelElement:l,markerHTML:e.markerHTML||this._markerHTML,labelHTML:e.labelHTML||this._labelHTML,occludable:e.occludable,values:le.apply(e.values,le.apply(this._values,{})),markerShown:e.markerShown,labelShown:e.labelShown,eye:e.eye,look:e.look,up:e.up,projection:e.projection,visible:!1!==e.visible});return this.annotations[u.id]=u,u.on("destroyed",(function(){delete r.annotations[u.id],r.fire("annotationDestroyed",u.id)})),this.fire("annotationCreated",u.id),u}},{key:"destroyAnnotation",value:function(e){var t=this.annotations[e];t?t.destroy():this.log("Annotation not found: "+e)}},{key:"clear",value:function(){for(var e=Object.keys(this.annotations),t=0,n=e.length;t1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._canvas=i.canvas,r._element=null,r._isCustom=!1,i.elementId&&(r._element=document.getElementById(i.elementId),r._element?r._adjustPosition():r.error("Can't find given Spinner HTML element: '"+i.elementId+"' - will automatically create default element")),r._element||r._createDefaultSpinner(),r.processes=0,r}return P(n,[{key:"type",get:function(){return"Spinner"}},{key:"_createDefaultSpinner",value:function(){this._injectDefaultCSS();var e=document.createElement("div"),t=e.style;t["z-index"]="9000",t.position="absolute",e.innerHTML='
',this._canvas.parentElement.appendChild(e),this._element=e,this._isCustom=!1,this._adjustPosition()}},{key:"_injectDefaultCSS",value:function(){var e="xeokit-spinner-css";if(!document.getElementById(e)){var t=document.createElement("style");t.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",t.id=e,document.body.appendChild(t)}}},{key:"_adjustPosition",value:function(){if(!this._isCustom){var e=this._canvas,t=this._element,n=t.style;n.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",n.top=e.offsetTop+.5*e.clientHeight-.5*t.clientHeight+"px"}}},{key:"processes",get:function(){return this._processes},set:function(e){if(e=e||0,this._processes!==e&&!(e<0)){var t=this._processes;this._processes=e;var n=this._element;n&&(n.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==t&&this.fire("zeroProcesses",this._processes)}}},{key:"_destroy",value:function(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);var e=document.getElementById("xeokit-spinner-css");e&&e.parentNode.removeChild(e)}}]),n}(),ft=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"],pt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._backgroundColor=$.vec3([i.backgroundColor?i.backgroundColor[0]:1,i.backgroundColor?i.backgroundColor[1]:1,i.backgroundColor?i.backgroundColor[2]:1]),r._backgroundColorFromAmbientLight=!!i.backgroundColorFromAmbientLight,r.canvas=i.canvas,r.gl=null,r.webgl2=!1,r.transparent=!!i.transparent,r.contextAttr=i.contextAttr||{},r.contextAttr.alpha=r.transparent,r.contextAttr.preserveDrawingBuffer=!!r.contextAttr.preserveDrawingBuffer,r.contextAttr.stencil=!1,r.contextAttr.premultipliedAlpha=!!r.contextAttr.premultipliedAlpha,r.contextAttr.antialias=!1!==r.contextAttr.antialias,r.resolutionScale=i.resolutionScale,r.canvas.width=Math.round(r.canvas.clientWidth*r._resolutionScale),r.canvas.height=Math.round(r.canvas.clientHeight*r._resolutionScale),r.boundary=[r.canvas.offsetLeft,r.canvas.offsetTop,r.canvas.clientWidth,r.canvas.clientHeight],r._initWebGL(i);var a=g(r);r.canvas.addEventListener("webglcontextlost",r._webglcontextlostListener=function(e){console.time("webglcontextrestored"),a.scene._webglContextLost(),a.fire("webglcontextlost"),e.preventDefault()},!1),r.canvas.addEventListener("webglcontextrestored",r._webglcontextrestoredListener=function(e){a._initWebGL(),a.gl&&(a.scene._webglContextRestored(a.gl),a.fire("webglcontextrestored",a.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);var s=!0,o=new ResizeObserver((function(e){var t,n=f(e);try{for(n.s();!(t=n.n()).done;){t.value.contentBoxSize&&(s=!0)}}catch(e){n.e(e)}finally{n.f()}}));return o.observe(r.canvas),r._tick=r.scene.on("tick",(function(){s&&(s=!1,a.canvas.width=Math.round(a.canvas.clientWidth*a._resolutionScale),a.canvas.height=Math.round(a.canvas.clientHeight*a._resolutionScale),a.boundary[0]=a.canvas.offsetLeft,a.boundary[1]=a.canvas.offsetTop,a.boundary[2]=a.canvas.clientWidth,a.boundary[3]=a.canvas.clientHeight,a.fire("boundary",a.boundary))})),r._spinner=new ct(r.scene,{canvas:r.canvas,elementId:i.spinnerElementId}),r}return P(n,[{key:"type",get:function(){return"Canvas"}},{key:"backgroundColorFromAmbientLight",get:function(){return this._backgroundColorFromAmbientLight},set:function(e){this._backgroundColorFromAmbientLight=!1!==e,this.glRedraw()}},{key:"backgroundColor",get:function(){return this._backgroundColor},set:function(e){e?(this._backgroundColor[0]=e[0],this._backgroundColor[1]=e[1],this._backgroundColor[2]=e[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}},{key:"resolutionScale",get:function(){return this._resolutionScale},set:function(e){if((e=e||1)!==this._resolutionScale){this._resolutionScale=e;var t=this.canvas;t.width=Math.round(t.clientWidth*this._resolutionScale),t.height=Math.round(t.clientHeight*this._resolutionScale),this.glRedraw()}}},{key:"spinner",get:function(){return this._spinner}},{key:"_createCanvas",value:function(){var e="xeokit-canvas-"+$.createUUID(),t=document.getElementsByTagName("body")[0],n=document.createElement("div"),r=n.style;r.height="100%",r.width="100%",r.padding="0",r.margin="0",r.background="rgba(0,0,0,0);",r.float="left",r.left="0",r.top="0",r.position="absolute",r.opacity="1.0",r["z-index"]="-10000",n.innerHTML+='',t.appendChild(n),this.canvas=document.getElementById(e)}},{key:"_getElementXY",value:function(e){for(var t=0,n=0;e;)t+=e.offsetLeft-e.scrollLeft,n+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:n}}},{key:"_initWebGL",value:function(){if(!this.gl)for(var e=0;!this.gl&&e0?dt.FS_MAX_FLOAT_PRECISION="highp":ht.getShaderPrecisionFormat(ht.FRAGMENT_SHADER,ht.MEDIUM_FLOAT).precision>0?dt.FS_MAX_FLOAT_PRECISION="mediump":dt.FS_MAX_FLOAT_PRECISION="lowp":dt.FS_MAX_FLOAT_PRECISION="mediump",dt.DEPTH_BUFFER_BITS=ht.getParameter(ht.DEPTH_BITS),dt.MAX_TEXTURE_SIZE=ht.getParameter(ht.MAX_TEXTURE_SIZE),dt.MAX_CUBE_MAP_SIZE=ht.getParameter(ht.MAX_CUBE_MAP_TEXTURE_SIZE),dt.MAX_RENDERBUFFER_SIZE=ht.getParameter(ht.MAX_RENDERBUFFER_SIZE),dt.MAX_TEXTURE_UNITS=ht.getParameter(ht.MAX_COMBINED_TEXTURE_IMAGE_UNITS),dt.MAX_TEXTURE_IMAGE_UNITS=ht.getParameter(ht.MAX_TEXTURE_IMAGE_UNITS),dt.MAX_VERTEX_ATTRIBS=ht.getParameter(ht.MAX_VERTEX_ATTRIBS),dt.MAX_VERTEX_UNIFORM_VECTORS=ht.getParameter(ht.MAX_VERTEX_UNIFORM_VECTORS),dt.MAX_FRAGMENT_UNIFORM_VECTORS=ht.getParameter(ht.MAX_FRAGMENT_UNIFORM_VECTORS),dt.MAX_VARYING_VECTORS=ht.getParameter(ht.MAX_VARYING_VECTORS),ht.getSupportedExtensions().forEach((function(e){dt.SUPPORTED_EXTENSIONS[e]=!0})))}var It=function(){function e(){b(this,e),this.entity=null,this.primitive=null,this.primIndex=-1,this.pickSurfacePrecision=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1,this._origin=new Float64Array([0,0,0]),this._direction=new Float64Array([0,0,0]),this._indices=new Int32Array(3),this._localPos=new Float64Array([0,0,0]),this._worldPos=new Float64Array([0,0,0]),this._viewPos=new Float64Array([0,0,0]),this._canvasPos=new Int16Array([0,0]),this._snappedCanvasPos=new Int16Array([0,0]),this._bary=new Float64Array([0,0,0]),this._worldNormal=new Float64Array([0,0,0]),this._uv=new Float64Array([0,0]),this.reset()}return P(e,[{key:"canvasPos",get:function(){return this._gotCanvasPos?this._canvasPos:null},set:function(e){e?(this._canvasPos[0]=e[0],this._canvasPos[1]=e[1],this._gotCanvasPos=!0):this._gotCanvasPos=!1}},{key:"origin",get:function(){return this._gotOrigin?this._origin:null},set:function(e){e?(this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this._gotOrigin=!0):this._gotOrigin=!1}},{key:"direction",get:function(){return this._gotDirection?this._direction:null},set:function(e){e?(this._direction[0]=e[0],this._direction[1]=e[1],this._direction[2]=e[2],this._gotDirection=!0):this._gotDirection=!1}},{key:"indices",get:function(){return this.entity&&this._gotIndices?this._indices:null},set:function(e){e?(this._indices[0]=e[0],this._indices[1]=e[1],this._indices[2]=e[2],this._gotIndices=!0):this._gotIndices=!1}},{key:"localPos",get:function(){return this.entity&&this._gotLocalPos?this._localPos:null},set:function(e){e?(this._localPos[0]=e[0],this._localPos[1]=e[1],this._localPos[2]=e[2],this._gotLocalPos=!0):this._gotLocalPos=!1}},{key:"snappedCanvasPos",get:function(){return this._gotSnappedCanvasPos?this._snappedCanvasPos:null},set:function(e){e?(this._snappedCanvasPos[0]=e[0],this._snappedCanvasPos[1]=e[1],this._gotSnappedCanvasPos=!0):this._gotSnappedCanvasPos=!1}},{key:"worldPos",get:function(){return this._gotWorldPos?this._worldPos:null},set:function(e){e?(this._worldPos[0]=e[0],this._worldPos[1]=e[1],this._worldPos[2]=e[2],this._gotWorldPos=!0):this._gotWorldPos=!1}},{key:"viewPos",get:function(){return this.entity&&this._gotViewPos?this._viewPos:null},set:function(e){e?(this._viewPos[0]=e[0],this._viewPos[1]=e[1],this._viewPos[2]=e[2],this._gotViewPos=!0):this._gotViewPos=!1}},{key:"bary",get:function(){return this.entity&&this._gotBary?this._bary:null},set:function(e){e?(this._bary[0]=e[0],this._bary[1]=e[1],this._bary[2]=e[2],this._gotBary=!0):this._gotBary=!1}},{key:"worldNormal",get:function(){return this.entity&&this._gotWorldNormal?this._worldNormal:null},set:function(e){e?(this._worldNormal[0]=e[0],this._worldNormal[1]=e[1],this._worldNormal[2]=e[2],this._gotWorldNormal=!0):this._gotWorldNormal=!1}},{key:"uv",get:function(){return this.entity&&this._gotUV?this._uv:null},set:function(e){e?(this._uv[0]=e[0],this._uv[1]=e[1],this._gotUV=!0):this._gotUV=!1}},{key:"reset",value:function(){this.entity=null,this.primIndex=-1,this.primitive=null,this.pickSurfacePrecision=!1,this._gotCanvasPos=!1,this._gotSnappedCanvasPos=!1,this._gotOrigin=!1,this._gotDirection=!1,this._gotIndices=!1,this._gotLocalPos=!1,this._gotWorldPos=!1,this._gotViewPos=!1,this._gotBary=!1,this._gotWorldNormal=!1,this._gotUV=!1,this.touchInput=!1,this.snappedToEdge=!1,this.snappedToVertex=!1}}]),e}(),yt=function(){function e(t,n,r){if(b(this,e),this.allocated=!1,this.compiled=!1,this.handle=t.createShader(n),this.handle){if(this.allocated=!0,t.shaderSource(this.handle,r),t.compileShader(this.handle),this.compiled=t.getShaderParameter(this.handle,t.COMPILE_STATUS),!this.compiled&&!t.isContextLost()){for(var i=r.split("\n"),a=[],s=0;s0&&"/"===t.charAt(n+1)&&(t=t.substring(0,n)),r.push(t);return r.join("\n")}function Tt(e){console.error(e.join("\n"))}var bt=function(){function e(t,n){b(this,e),this.id=gt.addItem({}),this.source=n,this.init(t)}return P(e,[{key:"init",value:function(e){if(this.gl=e,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new yt(e,e.VERTEX_SHADER,Et(this.source.vertex)),this._fragmentShader=new yt(e,e.FRAGMENT_SHADER,Et(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Tt(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Tt(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Tt(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Tt(this.errors);var t,n,r,i,a;if(this.compiled=!0,this.handle=e.createProgram(),this.handle){if(e.attachShader(this.handle,this._vertexShader.handle),e.attachShader(this.handle,this._fragmentShader.handle),e.linkProgram(this.handle),this.linked=e.getProgramParameter(this.handle,e.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(e.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void Tt(this.errors);var s=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(n=0;nthis.dataLength?e.slice(0,this.dataLength):e,this.usage),this._gl.bindBuffer(this.type,null),this.length=e.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}},{key:"setData",value:function(e,t){this.allocated&&(e.length+(t||0)>this.length?(this.destroy(),this._allocate(e)):(this._gl.bindBuffer(this.type,this._handle),t||0===t?this._gl.bufferSubData(this.type,t*this.itemByteSize,e):this._gl.bufferData(this.type,e,this.usage),this._gl.bindBuffer(this.type,null)))}},{key:"bind",value:function(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}},{key:"unbind",value:function(){this.allocated&&this._gl.bindBuffer(this.type,null)}},{key:"destroy",value:function(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}]),e}(),Pt=function(){function e(t,n){b(this,e),this.scene=t,this.aabb=$.AABB3(),this.origin=$.vec3(n),this.originHash=this.origin.join(),this.numMarkers=0,this.markers={},this.markerList=[],this.markerIndices={},this.positions=[],this.indices=[],this.positionsBuf=null,this.lenPositionsBuf=0,this.indicesBuf=null,this.sectionPlanesActive=[],this.culledBySectionPlanes=!1,this.occlusionTestList=[],this.lenOcclusionTestList=0,this.pixels=[],this.aabbDirty=!1,this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!1}return P(e,[{key:"addMarker",value:function(e){this.markers[e.id]=e,this.markerListDirty=!0,this.numMarkers++}},{key:"markerWorldPosUpdated",value:function(e){if(this.markers[e.id]){var t=this.markerIndices[e.id];this.positions[3*t+0]=e.worldPos[0],this.positions[3*t+1]=e.worldPos[1],this.positions[3*t+2]=e.worldPos[2],this.positionsDirty=!0}}},{key:"removeMarker",value:function(e){delete this.markers[e.id],this.markerListDirty=!0,this.numMarkers--}},{key:"update",value:function(){this.markerListDirty&&(this._buildMarkerList(),this.markerListDirty=!1,this.positionsDirty=!0,this.occlusionTestListDirty=!0),this.positionsDirty&&(this._buildPositions(),this.positionsDirty=!1,this.aabbDirty=!0,this.vbosDirty=!0),this.aabbDirty&&(this._buildAABB(),this.aabbDirty=!1),this.vbosDirty&&(this._buildVBOs(),this.vbosDirty=!1),this.occlusionTestListDirty&&this._buildOcclusionTestList(),this._updateActiveSectionPlanes()}},{key:"_buildMarkerList",value:function(){for(var e in this.numMarkers=0,this.markers)this.markers.hasOwnProperty(e)&&(this.markerList[this.numMarkers]=this.markers[e],this.markerIndices[e]=this.numMarkers,this.numMarkers++);this.markerList.length=this.numMarkers}},{key:"_buildPositions",value:function(){for(var e=0,t=0;t-t)o._setVisible(!1);else{var l=o.canvasPos,u=l[0],c=l[1];u+10<0||c+10<0||u-10>r||c-10>i?o._setVisible(!1):!o.entity||o.entity.visible?o.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=o,this.pixels[a++]=u,this.pixels[a++]=c):o._setVisible(!0):o._setVisible(!1)}}}},{key:"_updateActiveSectionPlanes",value:function(){var e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(var n=0;n0,n=[];return n.push("#version 300 es"),n.push("// OcclusionTester vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&n.push("out vec4 vWorldPosition;"),n.push("void main(void) {"),n.push("vec4 worldPosition = vec4(position, 1.0); "),n.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&n.push(" vWorldPosition = worldPosition;"),n.push(" vec4 clipPos = projMatrix * viewPosition;"),n.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?n.push("vFragDepth = 1.0 + clipPos.w;"):n.push("clipPos.z += -0.001;"),n.push(" gl_Position = clipPos;"),n.push("}"),n}},{key:"_buildFragmentShaderSource",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.sectionPlanes.length>0,r=[];if(r.push("#version 300 es"),r.push("// OcclusionTester fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;");for(var i=0;i 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),r.push("}"),r}},{key:"_buildProgram",value:function(){this._program&&this._program.destroy();var e=this._scene,t=e.canvas.gl,n=e._sectionPlanesState;if(this._program=new bt(t,this._shaderSource),this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uViewMatrix=r.getLocation("viewMatrix"),this._uProjMatrix=r.getLocation("projMatrix"),this._uSectionPlanes=[];for(var i=0,a=n.sectionPlanes.length;i0)for(var p=r.sectionPlanes,A=0;A= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }")]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);var r=new Float32Array([1,1,0,1,0,0,1,0]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),a=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Dt(n,n.ARRAY_BUFFER,i,i.length,3,n.STATIC_DRAW),this._uvBuf=new Dt(n,n.ARRAY_BUFFER,r,r.length,2,n.STATIC_DRAW),this._indicesBuf=new Dt(n,n.ELEMENT_ARRAY_BUFFER,a,a.length,1,n.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}}},{key:"destroy",value:function(){this._program&&(this._program.destroy(),this._program=null)}}]),e}(),St=new Float32Array(Ht(17,[0,1])),Nt=new Float32Array(Ht(17,[1,0])),Lt=new Float32Array(function(e,t){for(var n=[],r=0;r<=e;r++)n.push(Ft(r,t));return n}(17,4)),Mt=new Float32Array(2),xt=function(){function e(t){b(this,e),this._scene=t,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}return P(e,[{key:"init",value:function(){var e=this._scene.canvas.gl;if(this._program=new bt(e,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS ".concat(16,"\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }")]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);var t=new Float32Array([1,1,0,1,0,0,1,0]),n=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),r=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Dt(e,e.ARRAY_BUFFER,n,n.length,3,e.STATIC_DRAW),this._uvBuf=new Dt(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Dt(e,e.ELEMENT_ARRAY_BUFFER,r,r.length,1,e.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=e.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=e.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}},{key:"render",value:function(e,t,n){var r=this;if(!this._programError){this._getInverseProjectMat||(this._getInverseProjectMat=function(){var e=!0;r._scene.camera.on("projMatrix",(function(){e=!0}));var t=$.mat4();return function(){return e&&$.inverseMat4(s.camera.projMatrix,t),t}}());var i=this._scene.canvas.gl,a=this._program,s=this._scene,o=i.drawingBufferWidth,l=i.drawingBufferHeight,u=s.camera.project._state,c=u.near,f=u.far;i.viewport(0,0,o,l),i.clearColor(0,0,0,1),i.enable(i.DEPTH_TEST),i.disable(i.BLEND),i.frontFace(i.CCW),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT),a.bind(),Mt[0]=o,Mt[1]=l,i.uniform2fv(this._uViewport,Mt),i.uniform1f(this._uCameraNear,c),i.uniform1f(this._uCameraFar,f),i.uniform1f(this._uDepthCutoff,.01),0===n?i.uniform2fv(this._uSampleOffsets,Nt):i.uniform2fv(this._uSampleOffsets,St),i.uniform1fv(this._uSampleWeights,Lt);var p=e.getDepthTexture(),A=t.getTexture();a.bindTexture(this._uDepthTexture,p,0),a.bindTexture(this._uOcclusionTexture,A,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),i.drawElements(i.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}}},{key:"destroy",value:function(){this._program.destroy()}}]),e}();function Ft(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Ht(e,t){for(var n=[],r=0;r<=e;r++)n.push(t[0]*r),n.push(t[1]*r);return n}var Ut=function(){function e(t,n,r){b(this,e),r=r||{},this.gl=n,this.allocated=!1,this.canvas=t,this.buffer=null,this.bound=!1,this.size=r.size,this._hasDepthTexture=!!r.depthTexture}return P(e,[{key:"setSize",value:function(e){this.size=e}},{key:"webglContextRestored",value:function(e){this.gl=e,this.buffer=null,this.allocated=!1,this.bound=!1}},{key:"bind",value:function(){if(this._touch.apply(this,arguments),!this.bound){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,this.buffer.framebuf),this.bound=!0}}},{key:"createTexture",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.gl,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),n?r.texStorage2D(r.TEXTURE_2D,1,n,e,t):r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e,t,0,r.RGBA,r.UNSIGNED_BYTE,null),i}},{key:"_touch",value:function(){var e,t,n=this,r=this.gl;if(this.size?(e=this.size[0],t=this.size[1]):(e=r.drawingBufferWidth,t=r.drawingBufferHeight),this.buffer){if(this.buffer.width===e&&this.buffer.height===t)return;this.buffer.textures.forEach((function(e){return r.deleteTexture(e)})),r.deleteFramebuffer(this.buffer.framebuf),r.deleteRenderbuffer(this.buffer.renderbuf)}for(var i,a=[],s=arguments.length,o=new Array(s),l=0;l0?a.push.apply(a,c(o.map((function(r){return n.createTexture(e,t,r)})))):a.push(this.createTexture(e,t)),this._hasDepthTexture&&(i=r.createTexture(),r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texImage2D(r.TEXTURE_2D,0,r.DEPTH_COMPONENT32F,e,t,0,r.DEPTH_COMPONENT,r.FLOAT,null));var u=r.createRenderbuffer();r.bindRenderbuffer(r.RENDERBUFFER,u),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_COMPONENT32F,e,t);var f=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,f);for(var p=0;p0&&r.drawBuffers(a.map((function(e,t){return r.COLOR_ATTACHMENT0+t}))),this._hasDepthTexture?r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,i,0):r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,u),r.bindTexture(r.TEXTURE_2D,null),r.bindRenderbuffer(r.RENDERBUFFER,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.bindFramebuffer(r.FRAMEBUFFER,f),!r.isFramebuffer(f))throw"Invalid framebuffer";r.bindFramebuffer(r.FRAMEBUFFER,null);var A=r.checkFramebufferStatus(r.FRAMEBUFFER);switch(A){case r.FRAMEBUFFER_COMPLETE:break;case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+A}this.buffer={framebuf:f,renderbuf:u,texture:a[0],textures:a,depthTexture:i,width:e,height:t},this.bound=!1}},{key:"clear",value:function(){if(!this.bound)throw"Render buffer not bound";var e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}},{key:"read",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Uint8Array,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:4,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,o=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,u=new i(a),c=this.gl;return c.readBuffer(c.COLOR_ATTACHMENT0+s),c.readPixels(o,l,1,1,n||c.RGBA,r||c.UNSIGNED_BYTE,u,0),u}},{key:"readArray",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Uint8Array,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=new n(this.buffer.width*this.buffer.height*r),s=this.gl;return s.readBuffer(s.COLOR_ATTACHMENT0+i),s.readPixels(0,0,this.buffer.width,this.buffer.height,e||s.RGBA,t||s.UNSIGNED_BYTE,a,0),a}},{key:"readImageAsCanvas",value:function(){var e=this.gl,t=this._getImageDataCache(),n=t.pixelData,r=t.canvas,i=t.imageData,a=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,n);for(var s=this.buffer.width,o=this.buffer.height,l=o/2|0,u=4*s,c=new Uint8Array(4*s),f=0;f0&&void 0!==arguments[0]?arguments[0]:Uint8Array,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=this.buffer.width,r=this.buffer.height,i=this._imageDataCache;if(i&&(i.width===n&&i.height===r||(this._imageDataCache=null,i=null)),!i){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=n,a.height=r,i={pixelData:new e(n*r*t),canvas:a,context:s,imageData:s.createImageData(n,r),width:n,height:r},this._imageDataCache=i}return i.context.resetTransform(),i}},{key:"unbind",value:function(){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,null),this.bound=!1}},{key:"getTexture",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this;return this._texture||(this._texture={renderBuffer:this,bind:function(n){return!(!t.buffer||!t.buffer.textures[e])&&(t.gl.activeTexture(t.gl["TEXTURE"+n]),t.gl.bindTexture(t.gl.TEXTURE_2D,t.buffer.textures[e]),!0)},unbind:function(n){t.buffer&&t.buffer.textures[e]&&(t.gl.activeTexture(t.gl["TEXTURE"+n]),t.gl.bindTexture(t.gl.TEXTURE_2D,null))}})}},{key:"hasDepthTexture",value:function(){return this._hasDepthTexture}},{key:"getDepthTexture",value:function(){if(!this._hasDepthTexture)return null;var e=this;return this._depthTexture||(this._dethTexture={renderBuffer:this,bind:function(t){return!(!e.buffer||!e.buffer.depthTexture)&&(e.gl.activeTexture(e.gl["TEXTURE"+t]),e.gl.bindTexture(e.gl.TEXTURE_2D,e.buffer.depthTexture),!0)},unbind:function(t){e.buffer&&e.buffer.depthTexture&&(e.gl.activeTexture(e.gl["TEXTURE"+t]),e.gl.bindTexture(e.gl.TEXTURE_2D,null))}})}},{key:"destroy",value:function(){if(this.allocated){var e=this.gl;this.buffer.textures.forEach((function(t){return e.deleteTexture(t)})),e.deleteTexture(this.buffer.depthTexture),e.deleteFramebuffer(this.buffer.framebuf),e.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}]),e}(),Gt=function(){function e(t){b(this,e),this.scene=t,this._renderBuffersBasic={},this._renderBuffersScaled={}}return P(e,[{key:"getRenderBuffer",value:function(e,t){var n=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled,r=n[e];return r||(r=new Ut(this.scene.canvas.canvas,this.scene.canvas.gl,t),n[e]=r),r}},{key:"destroy",value:function(){for(var e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(var t in this._renderBuffersScaled)this._renderBuffersScaled[t].destroy()}}]),e}();function kt(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];var n;switch(t){case"WEBGL_depth_texture":n=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:n=e.getExtension(t)}return e._cachedExtensions[t]=n,n}var jt=function(e,t){t=t||{};var n=new At(e),r=e.canvas.canvas,i=e.canvas.gl,a=!!t.transparent,s=t.alphaDepthMask,o=new G({}),l={},u={},c=!0,f=!0,p=!0,A=!0,d=!0,v=!0,h=!0,I=!0,y=new Gt(e),m=!1,w=new Ot(e),g=new xt(e);function E(){c&&(!function(){for(var e in l)if(l.hasOwnProperty(e)){var t=l[e],n=t.drawableMap,r=t.drawableListPreCull,i=0;for(var a in n)n.hasOwnProperty(a)&&(r[i++]=n[a]);r.length=i}}(),c=!1,f=!0),f&&(!function(){for(var e in l)if(l.hasOwnProperty(e)){var t=l[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),f=!1,p=!0),p&&function(){for(var e in l)if(l.hasOwnProperty(e)){for(var t=l[e],n=t.drawableListPreCull,r=t.drawableList,i=0,a=0,s=n.length;a0)for(n.withSAO=!0,O=0;O0)for(O=0;O0)for(O=0;O0)for(O=0;O0||Q>0||U>0||G>0){if(i.enable(i.CULL_FACE),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):(i.blendEquation(i.FUNC_ADD),i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA)),n.backfaces=!1,s||i.depthMask(!1),(U>0||G>0)&&i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),G>0)for(O=0;O0)for(O=0;O0)for(O=0;O0)for(O=0;O0||z>0){if(n.lastProgramId=null,e.highlightMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),z>0)for(O=0;O0)for(O=0;O0||Y>0||W>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),i.enable(i.CULL_FACE),Y>0)for(O=0;O0)for(O=0;O0||q>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),q>0)for(O=0;O0)for(O=0;O0||Z>0){if(n.lastProgramId=null,e.selectedMaterial.glowThrough&&i.clear(i.DEPTH_BUFFER_BIT),i.enable(i.CULL_FACE),i.enable(i.BLEND),a?(i.blendEquation(i.FUNC_ADD),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)):i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),Z>0)for(O=0;O0)for(O=0;O1&&void 0!==arguments[1]?arguments[1]:s;d.reset(),E();var v=null,h=null;for(var I in d.pickSurface=p.pickSurface,p.canvasPos?(u[0]=p.canvasPos[0],u[1]=p.canvasPos[1],v=e.camera.viewMatrix,h=e.camera.projMatrix,d.canvasPos=p.canvasPos):(p.matrix?(v=p.matrix,h=e.camera.projMatrix):(c.set(p.origin||[0,0,0]),f.set(p.direction||[0,0,1]),A=$.addVec3(c,f,t),i[0]=Math.random(),i[1]=Math.random(),i[2]=Math.random(),$.normalizeVec3(i),$.cross3Vec3(f,i,a),v=$.lookAtMat4v(c,A,a,n),h=e.camera.ortho.matrix,d.origin=c,d.direction=f),u[0]=.5*r.clientWidth,u[1]=.5*r.clientHeight),l)if(l.hasOwnProperty(I))for(var m=l[I].drawableList,w=0,g=m.length;w4&&void 0!==arguments[4]?arguments[4]:P;if(!a&&!s)return this.pick({canvasPos:t,pickSurface:!0});var c=e.canvas.resolutionScale;n.reset(),n.backfaces=!0,n.frontface=!0,n.pickZNear=e.camera.project.near,n.pickZFar=e.camera.project.far,r=r||30;var f=y.getRenderBuffer("uniquePickColors-aabs",{depthTexture:!0,size:[2*r+1,2*r+1]});n.snapVectorA=[B(t[0]*c,i.drawingBufferWidth),O(t[1]*c,i.drawingBufferHeight)],n.snapInvVectorAB=[i.drawingBufferWidth/(2*r),i.drawingBufferHeight/(2*r)],f.bind(i.RGBA32I,i.RGBA32I,i.RGBA8UI),i.viewport(0,0,f.size[0],f.size[1]),i.enable(i.DEPTH_TEST),i.frontFace(i.CCW),i.disable(i.CULL_FACE),i.depthMask(!0),i.disable(i.BLEND),i.depthFunc(i.LEQUAL),i.clear(i.DEPTH_BUFFER_BIT),i.clearBufferiv(i.COLOR,0,new Int32Array([0,0,0,0])),i.clearBufferiv(i.COLOR,1,new Int32Array([0,0,0,0])),i.clearBufferuiv(i.COLOR,2,new Uint32Array([0,0,0,0]));var p=e.camera.viewMatrix,A=e.camera.projMatrix;for(var d in l)if(l.hasOwnProperty(d))for(var v=l[d].drawableList,h=0,I=v.length;h0){var V=Math.floor(j/4),Q=f.size[0],W=V%Q-Math.floor(Q/2),z=Math.floor(V/Q)-Math.floor(Q/2),K=Math.sqrt(Math.pow(W,2)+Math.pow(z,2));k.push({x:W,y:z,dist:K,isVertex:a&&s?E[j+3]>g.length/2:a,result:[E[j+0],E[j+1],E[j+2],E[j+3]],normal:[T[j+0],T[j+1],T[j+2],T[j+3]],id:[b[j+0],b[j+1],b[j+2],b[j+3]]})}var Y=null,X=null,q=null,J=null;if(k.length>0){k.sort((function(e,t){return e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist})),J=k[0].isVertex?"vertex":"edge";var Z=k[0].result,ee=k[0].normal,te=k[0].id,ne=g[Z[3]],re=ne.origin,ie=ne.coordinateScale;X=$.normalizeVec3([ee[0]/$.MAX_INT,ee[1]/$.MAX_INT,ee[2]/$.MAX_INT]),Y=[Z[0]*ie[0]+re[0],Z[1]*ie[1]+re[1],Z[2]*ie[2]+re[2]],q=o.items[te[0]+(te[1]<<8)+(te[2]<<16)+(te[3]<<24)]}if(null===D&&null==Y)return null;var ae=null;null!==Y&&(ae=e.camera.projectWorldPos(Y));var se=q&&q.delegatePickedEntity?q.delegatePickedEntity():q;return u.reset(),u.snappedToEdge="edge"===J,u.snappedToVertex="vertex"===J,u.worldPos=Y,u.worldNormal=X,u.entity=se,u.canvasPos=t,u.snappedCanvasPos=ae||t,u}),this.addMarker=function(t){this._occlusionTester=this._occlusionTester||new _t(e,y),this._occlusionTester.addMarker(t),e.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(e){this._occlusionTester.markerWorldPosUpdated(e)},this.removeMarker=function(e){this._occlusionTester.removeMarker(e)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){for(var e in E(),this._occlusionTester.bindRenderBuf(),n.reset(),n.backfaces=!0,n.frontface=!0,i.viewport(0,0,i.drawingBufferWidth,i.drawingBufferHeight),i.clearColor(0,0,0,0),i.enable(i.DEPTH_TEST),i.disable(i.CULL_FACE),i.disable(i.BLEND),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT),l)if(l.hasOwnProperty(e))for(var t=l[e].drawableList,r=0,a=t.length;r0&&void 0!==arguments[0]?arguments[0]:{},t=y.getRenderBuffer("snapshot");e.width&&e.height&&t.setSize([e.width,e.height]),t.bind(),t.clear(),m=!0},this.renderSnapshot=function(){m&&(y.getRenderBuffer("snapshot").clear(),this.render({force:!0,opaqueOnly:!1}),p=!0)},this.readSnapshot=function(e){return y.getRenderBuffer("snapshot").readImage(e)},this.readSnapshotAsCanvas=function(){return y.getRenderBuffer("snapshot").readImageAsCanvas()},this.endSnapshot=function(){m&&(y.getRenderBuffer("snapshot").unbind(),m=!1)},this.destroy=function(){l={},u={},y.destroy(),w.destroy(),g.destroy(),this._occlusionTester&&this._occlusionTester.destroy()}},Vt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).KEY_BACKSPACE=8,r.KEY_TAB=9,r.KEY_ENTER=13,r.KEY_SHIFT=16,r.KEY_CTRL=17,r.KEY_ALT=18,r.KEY_PAUSE_BREAK=19,r.KEY_CAPS_LOCK=20,r.KEY_ESCAPE=27,r.KEY_PAGE_UP=33,r.KEY_PAGE_DOWN=34,r.KEY_END=35,r.KEY_HOME=36,r.KEY_LEFT_ARROW=37,r.KEY_UP_ARROW=38,r.KEY_RIGHT_ARROW=39,r.KEY_DOWN_ARROW=40,r.KEY_INSERT=45,r.KEY_DELETE=46,r.KEY_NUM_0=48,r.KEY_NUM_1=49,r.KEY_NUM_2=50,r.KEY_NUM_3=51,r.KEY_NUM_4=52,r.KEY_NUM_5=53,r.KEY_NUM_6=54,r.KEY_NUM_7=55,r.KEY_NUM_8=56,r.KEY_NUM_9=57,r.KEY_A=65,r.KEY_B=66,r.KEY_C=67,r.KEY_D=68,r.KEY_E=69,r.KEY_F=70,r.KEY_G=71,r.KEY_H=72,r.KEY_I=73,r.KEY_J=74,r.KEY_K=75,r.KEY_L=76,r.KEY_M=77,r.KEY_N=78,r.KEY_O=79,r.KEY_P=80,r.KEY_Q=81,r.KEY_R=82,r.KEY_S=83,r.KEY_T=84,r.KEY_U=85,r.KEY_V=86,r.KEY_W=87,r.KEY_X=88,r.KEY_Y=89,r.KEY_Z=90,r.KEY_LEFT_WINDOW=91,r.KEY_RIGHT_WINDOW=92,r.KEY_SELECT_KEY=93,r.KEY_NUMPAD_0=96,r.KEY_NUMPAD_1=97,r.KEY_NUMPAD_2=98,r.KEY_NUMPAD_3=99,r.KEY_NUMPAD_4=100,r.KEY_NUMPAD_5=101,r.KEY_NUMPAD_6=102,r.KEY_NUMPAD_7=103,r.KEY_NUMPAD_8=104,r.KEY_NUMPAD_9=105,r.KEY_MULTIPLY=106,r.KEY_ADD=107,r.KEY_SUBTRACT=109,r.KEY_DECIMAL_POINT=110,r.KEY_DIVIDE=111,r.KEY_F1=112,r.KEY_F2=113,r.KEY_F3=114,r.KEY_F4=115,r.KEY_F5=116,r.KEY_F6=117,r.KEY_F7=118,r.KEY_F8=119,r.KEY_F9=120,r.KEY_F10=121,r.KEY_F11=122,r.KEY_F12=123,r.KEY_NUM_LOCK=144,r.KEY_SCROLL_LOCK=145,r.KEY_SEMI_COLON=186,r.KEY_EQUAL_SIGN=187,r.KEY_COMMA=188,r.KEY_DASH=189,r.KEY_PERIOD=190,r.KEY_FORWARD_SLASH=191,r.KEY_GRAVE_ACCENT=192,r.KEY_OPEN_BRACKET=219,r.KEY_BACK_SLASH=220,r.KEY_CLOSE_BRACKET=221,r.KEY_SINGLE_QUOTE=222,r.KEY_SPACE=32,r.element=i.element,r.altDown=!1,r.ctrlDown=!1,r.mouseDownLeft=!1,r.mouseDownMiddle=!1,r.mouseDownRight=!1,r.keyDown=[],r.enabled=!0,r.keyboardEnabled=!0,r.mouseover=!1,r.mouseCanvasPos=$.vec2(),r._keyboardEventsElement=i.keyboardEventsElement||document,r._bindEvents(),r}return P(n,[{key:"_bindEvents",value:function(){var e=this;if(!this._eventsBound){this._keyboardEventsElement.addEventListener("keydown",this._keyDownListener=function(t){e.enabled&&e.keyboardEnabled&&"INPUT"!==t.target.tagName&&"TEXTAREA"!==t.target.tagName&&(t.keyCode===e.KEY_CTRL?e.ctrlDown=!0:t.keyCode===e.KEY_ALT?e.altDown=!0:t.keyCode===e.KEY_SHIFT&&(e.shiftDown=!0),e.keyDown[t.keyCode]=!0,e.fire("keydown",t.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=function(t){e.enabled&&e.keyboardEnabled&&"INPUT"!==t.target.tagName&&"TEXTAREA"!==t.target.tagName&&(t.keyCode===e.KEY_CTRL?e.ctrlDown=!1:t.keyCode===e.KEY_ALT?e.altDown=!1:t.keyCode===e.KEY_SHIFT&&(e.shiftDown=!1),e.keyDown[t.keyCode]=!1,e.fire("keyup",t.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=function(t){e.enabled&&(e.mouseover=!0,e._getMouseCanvasPos(t),e.fire("mouseenter",e.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=function(t){e.enabled&&(e.mouseover=!1,e._getMouseCanvasPos(t),e.fire("mouseleave",e.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=function(t){if(e.enabled){switch(t.which){case 1:e.mouseDownLeft=!0;break;case 2:e.mouseDownMiddle=!0;break;case 3:e.mouseDownRight=!0}e._getMouseCanvasPos(t),e.element.focus(),e.fire("mousedown",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=function(t){if(e.enabled){switch(t.which){case 1:e.mouseDownLeft=!1;break;case 2:e.mouseDownMiddle=!1;break;case 3:e.mouseDownRight=!1}e.fire("mouseup",e.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=function(t){if(e.enabled){switch(t.which){case 1:case 3:e.mouseDownLeft=!1,e.mouseDownRight=!1;break;case 2:e.mouseDownMiddle=!1}e._getMouseCanvasPos(t),e.fire("click",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=function(t){if(e.enabled){switch(t.which){case 1:case 3:e.mouseDownLeft=!1,e.mouseDownRight=!1;break;case 2:e.mouseDownMiddle=!1}e._getMouseCanvasPos(t),e.fire("dblclick",e.mouseCanvasPos,!0),e.mouseover&&t.preventDefault()}});var t=this.scene.tickify((function(){return e.fire("mousemove",e.mouseCanvasPos,!0)}));this.element.addEventListener("mousemove",this._mouseMoveListener=function(n){e.enabled&&(e._getMouseCanvasPos(n),t(),e.mouseover&&n.preventDefault())});var n=this.scene.tickify((function(t){e.fire("mousewheel",t,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=function(t,r){if(e.enabled){var i=Math.max(-1,Math.min(1,40*-t.deltaY));n(i)}},{passive:!0});var r,i;this.on("mousedown",(function(e){r=e[0],i=e[1]})),this.on("mouseup",(function(t){r>=t[0]-2&&r<=t[0]+2&&i>=t[1]-2&&i<=t[1]+2&&e.fire("mouseclicked",t,!0)})),this._eventsBound=!0}}},{key:"_unbindEvents",value:function(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("wheel",this._mouseWheelListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}},{key:"_getMouseCanvasPos",value:function(e){if(e){for(var t=e.target,n=0,r=0;t.offsetParent;)n+=t.offsetLeft,r+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-n,this.mouseCanvasPos[1]=e.pageY-r}else e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}},{key:"setEnabled",value:function(e){this.enabled!==e&&this.fire("enabled",this.enabled=e)}},{key:"getEnabled",value:function(){return this.enabled}},{key:"setKeyboardEnabled",value:function(e){this.keyboardEnabled=e}},{key:"getKeyboardEnabled",value:function(){return this.keyboardEnabled}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._unbindEvents()}}]),n}(),Qt=new G({}),Wt=function(){function e(t){for(var n in b(this,e),this.id=Qt.addItem({}),t)t.hasOwnProperty(n)&&(this[n]=t[n])}return P(e,[{key:"destroy",value:function(){Qt.removeItem(this.id)}}]),e}(),zt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({boundary:[0,0,100,100]}),r.boundary=i.boundary,r.autoBoundary=i.autoBoundary,r}return P(n,[{key:"type",get:function(){return"Viewport"}},{key:"boundary",get:function(){return this._state.boundary},set:function(e){if(!this._autoBoundary){if(!e){var t=this.scene.canvas.boundary;e=[0,0,t[2],t[3]]}this._state.boundary=e,this.glRedraw(),this.fire("boundary",this._state.boundary)}}},{key:"autoBoundary",get:function(){return this._autoBoundary},set:function(e){(e=!!e)!==this._autoBoundary&&(this._autoBoundary=e,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(e){var t=e[2],n=e[3];this._state.boundary=[0,0,t,n],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Kt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:2e3}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r._fov=60,r._canvasResized=r.scene.canvas.on("boundary",r._needUpdate,g(r)),r.fov=i.fov,r.fovAxis=i.fovAxis,r.near=i.near,r.far=i.far,r}return P(n,[{key:"type",get:function(){return"Perspective"}},{key:"_update",value:function(){var e=this.scene.canvas.boundary,t=e[2]/e[3],n=this._fovAxis,r=this._fov;("x"===n||"min"===n&&t<1||"max"===n&&t>1)&&(r/=t),r=Math.min(r,120),$.perspectiveMat4(r*(Math.PI/180),t,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}},{key:"fov",get:function(){return this._fov},set:function(e){(e=null!=e?e:60)!==this._fov&&(this._fov=e,this._needUpdate(0),this.fire("fov",this._fov))}},{key:"fovAxis",get:function(){return this._fovAxis},set:function(e){e=e||"min",this._fovAxis!==e&&("x"!==e&&"y"!==e&&"min"!==e&&(this.error("Unsupported value for 'fovAxis': "+e+" - defaulting to 'min'"),e="min"),this._fovAxis=e,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}},{key:"near",get:function(){return this._state.near},set:function(e){var t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}},{key:"far",get:function(){return this._state.far},set:function(e){var t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}]),n}(),Yt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:2e3}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r.scale=i.scale,r.near=i.near,r.far=i.far,r._onCanvasBoundary=r.scene.canvas.on("boundary",r._needUpdate,g(r)),r}return P(n,[{key:"type",get:function(){return"Ortho"}},{key:"_update",value:function(){var e,t,n,r,i=this.scene,a=.5*this._scale,s=i.canvas.boundary,o=s[2],l=s[3],u=o/l;o>l?(e=-a,t=a,n=a/u,r=-a/u):(e=-a*u,t=a*u,n=a,r=-a),$.orthoMat4c(e,t,r,n,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"scale",get:function(){return this._scale},set:function(e){null==e&&(e=1),e<=0&&(e=.01),this._scale=e,this._needUpdate(0),this.fire("scale",this._scale)}},{key:"near",get:function(){return this._state.near},set:function(e){var t=null!=e?e:.1;this._state.near!==t&&(this._state.near=t,this._needUpdate(0),this.fire("near",this._state.near))}},{key:"far",get:function(){return this._state.far},set:function(e){var t=null!=e?e:2e3;this._state.far!==t&&(this._state.far=t,this._needUpdate(0),this.fire("far",this._state.far))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}]),n}(),Xt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4(),near:.1,far:1e4}),r._left=-1,r._right=1,r._bottom=-1,r._top=1,r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!0,r.left=i.left,r.right=i.right,r.bottom=i.bottom,r.top=i.top,r.near=i.near,r.far=i.far,r}return P(n,[{key:"type",get:function(){return"Frustum"}},{key:"_update",value:function(){$.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"left",get:function(){return this._left},set:function(e){this._left=null!=e?e:-1,this._needUpdate(0),this.fire("left",this._left)}},{key:"right",get:function(){return this._right},set:function(e){this._right=null!=e?e:1,this._needUpdate(0),this.fire("right",this._right)}},{key:"top",get:function(){return this._top},set:function(e){this._top=null!=e?e:1,this._needUpdate(0),this.fire("top",this._top)}},{key:"bottom",get:function(){return this._bottom},set:function(e){this._bottom=null!=e?e:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}},{key:"near",get:function(){return this._state.near},set:function(e){this._state.near=null!=e?e:.1,this._needUpdate(0),this.fire("near",this._state.near)}},{key:"far",get:function(){return this._state.far},set:function(e){this._state.far=null!=e?e:1e4,this._needUpdate(0),this.fire("far",this._state.far)}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),qt=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).camera=e,r._state=new Wt({matrix:$.mat4(),inverseMatrix:$.mat4(),transposedMatrix:$.mat4()}),r._inverseMatrixDirty=!0,r._transposedMatrixDirty=!1,r.matrix=i.matrix,r}return P(n,[{key:"type",get:function(){return"CustomProjection"}},{key:"matrix",get:function(){return this._state.matrix},set:function(e){this._state.matrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}},{key:"inverseMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&($.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}},{key:"transposedMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&($.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}},{key:"unproject",value:function(e,t,n,r,i){var a=this.scene.canvas.canvas,s=a.offsetWidth/2,o=a.offsetHeight/2;return n[0]=(e[0]-s)/s,n[1]=(e[1]-o)/o,n[2]=t,n[3]=1,$.mulMat4v4(this.inverseMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1,$.mulMat4v4(this.camera.inverseViewMatrix,r,i),i}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Jt=$.vec3(),Zt=$.vec3(),$t=$.vec3(),en=$.vec3(),tn=$.vec3(),nn=$.vec3(),rn=$.vec4(),an=$.vec4(),sn=$.vec4(),on=$.mat4(),ln=$.mat4(),un=$.vec3(),cn=$.vec3(),fn=$.vec3(),pn=$.vec3(),An=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({deviceMatrix:$.mat4(),hasDeviceMatrix:!1,matrix:$.mat4(),normalMatrix:$.mat4(),inverseMatrix:$.mat4()}),r._perspective=new Kt(g(r)),r._ortho=new Yt(g(r)),r._frustum=new Xt(g(r)),r._customProjection=new qt(g(r)),r._project=r._perspective,r._eye=$.vec3([0,0,10]),r._look=$.vec3([0,0,0]),r._up=$.vec3([0,1,0]),r._worldUp=$.vec3([0,1,0]),r._worldRight=$.vec3([1,0,0]),r._worldForward=$.vec3([0,0,-1]),r.deviceMatrix=i.deviceMatrix,r.eye=i.eye,r.look=i.look,r.up=i.up,r.worldAxis=i.worldAxis,r.gimbalLock=i.gimbalLock,r.constrainPitch=i.constrainPitch,r.projection=i.projection,r._perspective.on("matrix",(function(){"perspective"===r._projectionType&&r.fire("projMatrix",r._perspective.matrix)})),r._ortho.on("matrix",(function(){"ortho"===r._projectionType&&r.fire("projMatrix",r._ortho.matrix)})),r._frustum.on("matrix",(function(){"frustum"===r._projectionType&&r.fire("projMatrix",r._frustum.matrix)})),r._customProjection.on("matrix",(function(){"customProjection"===r._projectionType&&r.fire("projMatrix",r._customProjection.matrix)})),r}return P(n,[{key:"type",get:function(){return"Camera"}},{key:"_update",value:function(){var e,t=this._state;"ortho"===this.projection?($.subVec3(this._eye,this._look,un),$.normalizeVec3(un,cn),$.mulVec3Scalar(cn,1e3,fn),$.addVec3(this._look,fn,pn),e=pn):e=this._eye,t.hasDeviceMatrix?($.lookAtMat4v(e,this._look,this._up,ln),$.mulMat4(t.deviceMatrix,ln,t.matrix)):$.lookAtMat4v(e,this._look,this._up,t.matrix),$.inverseMat4(this._state.matrix,this._state.inverseMatrix),$.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}},{key:"orbitYaw",value:function(e){var t=$.subVec3(this._eye,this._look,Jt);$.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,on),t=$.transformPoint3(on,t,Zt),this.eye=$.addVec3(this._look,t,$t),this.up=$.transformPoint3(on,this._up,en)}},{key:"orbitPitch",value:function(e){if(!(this._constrainPitch&&(e=$.dotVec3(this._up,this._worldUp)/$.DEGTORAD)<1)){var t=$.subVec3(this._eye,this._look,Jt),n=$.cross3Vec3($.normalizeVec3(t,Zt),$.normalizeVec3(this._up,$t));$.rotationMat4v(.0174532925*e,n,on),t=$.transformPoint3(on,t,en),this.up=$.transformPoint3(on,this._up,tn),this.eye=$.addVec3(t,this._look,nn)}}},{key:"yaw",value:function(e){var t=$.subVec3(this._look,this._eye,Jt);$.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,on),t=$.transformPoint3(on,t,Zt),this.look=$.addVec3(t,this._eye,$t),this._gimbalLock&&(this.up=$.transformPoint3(on,this._up,en))}},{key:"pitch",value:function(e){if(!(this._constrainPitch&&(e=$.dotVec3(this._up,this._worldUp)/$.DEGTORAD)<1)){var t=$.subVec3(this._look,this._eye,Jt),n=$.cross3Vec3($.normalizeVec3(t,Zt),$.normalizeVec3(this._up,$t));$.rotationMat4v(.0174532925*e,n,on),this.up=$.transformPoint3(on,this._up,nn),t=$.transformPoint3(on,t,en),this.look=$.addVec3(t,this._eye,tn)}}},{key:"pan",value:function(e){var t,n=$.subVec3(this._eye,this._look,Jt),r=[0,0,0];if(0!==e[0]){var i=$.cross3Vec3($.normalizeVec3(n,[]),$.normalizeVec3(this._up,Zt));t=$.mulVec3Scalar(i,e[0]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]}0!==e[1]&&(t=$.mulVec3Scalar($.normalizeVec3(this._up,$t),e[1]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]),0!==e[2]&&(t=$.mulVec3Scalar($.normalizeVec3(n,en),e[2]),r[0]+=t[0],r[1]+=t[1],r[2]+=t[2]),this.eye=$.addVec3(this._eye,r,tn),this.look=$.addVec3(this._look,r,nn)}},{key:"zoom",value:function(e){var t=$.subVec3(this._eye,this._look,Jt),n=Math.abs($.lenVec3(t,Zt)),r=Math.abs(n+e);if(!(r<.5)){var i=$.normalizeVec3(t,$t);this.eye=$.addVec3(this._look,$.mulVec3Scalar(i,r),en)}}},{key:"eye",get:function(){return this._eye},set:function(e){this._eye.set(e||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}},{key:"look",get:function(){return this._look},set:function(e){this._look.set(e||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}},{key:"up",get:function(){return this._up},set:function(e){this._up.set(e||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}},{key:"deviceMatrix",get:function(){return this._state.deviceMatrix},set:function(e){this._state.deviceMatrix.set(e||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!e,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}},{key:"worldAxis",get:function(){return this._worldAxis},set:function(e){e=e||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(e):this._worldAxis=$.vec3(e),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}},{key:"worldUp",get:function(){return this._worldUp}},{key:"xUp",get:function(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}},{key:"yUp",get:function(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}},{key:"zUp",get:function(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}},{key:"worldRight",get:function(){return this._worldRight}},{key:"worldForward",get:function(){return this._worldForward}},{key:"gimbalLock",get:function(){return this._gimbalLock},set:function(e){this._gimbalLock=!1!==e,this.fire("gimbalLock",this._gimbalLock)}},{key:"constrainPitch",set:function(e){this._constrainPitch=!!e,this.fire("constrainPitch",this._constrainPitch)}},{key:"eyeLookDist",get:function(){return $.lenVec3($.subVec3(this._look,this._eye,Jt))}},{key:"matrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"viewMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}},{key:"normalMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}},{key:"viewNormalMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}},{key:"inverseViewMatrix",get:function(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}},{key:"projMatrix",get:function(){return this[this.projection].matrix}},{key:"perspective",get:function(){return this._perspective}},{key:"ortho",get:function(){return this._ortho}},{key:"frustum",get:function(){return this._frustum}},{key:"customProjection",get:function(){return this._customProjection}},{key:"projection",get:function(){return this._projectionType},set:function(e){e=e||"perspective",this._projectionType!==e&&("perspective"===e?this._project=this._perspective:"ortho"===e?this._project=this._ortho:"frustum"===e?this._project=this._frustum:"customProjection"===e?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+e+" defaulting to 'perspective'"),this._project=this._perspective,e="perspective"),this._project._update(),this._projectionType=e,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}},{key:"project",get:function(){return this._project}},{key:"projectWorldPos",value:function(e){var t=rn,n=an,r=sn;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,$.mulMat4v4(this.viewMatrix,t,n),$.mulMat4v4(this.projMatrix,n,r),$.mulVec3Scalar(r,1/r[3]),r[3]=1,r[1]*=-1;var i=this.scene.canvas.canvas,a=i.offsetWidth/2,s=i.offsetHeight/2;return[r[0]*a+a,r[1]*s+s]}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),dn=function(e){I(n,ye);var t=m(n);function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),t.call(this,e,r)}return P(n,[{key:"type",get:function(){return"Light"}},{key:"isLight",get:function(){return!0}}]),n}(),vn=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._shadowRenderBuf=null,r._shadowViewMatrix=null,r._shadowProjMatrix=null,r._shadowViewMatrixDirty=!0,r._shadowProjMatrixDirty=!0;var a=r.scene.camera,s=r.scene.canvas;return r._onCameraViewMatrix=a.on("viewMatrix",(function(){r._shadowViewMatrixDirty=!0})),r._onCameraProjMatrix=a.on("projMatrix",(function(){r._shadowProjMatrixDirty=!0})),r._onCanvasBoundary=s.on("boundary",(function(){r._shadowProjMatrixDirty=!0})),r._state=new Wt({type:"dir",dir:$.vec3([1,1,1]),color:$.vec3([.7,.7,.8]),intensity:1,space:i.space||"view",castsShadow:!1,getShadowViewMatrix:function(){if(r._shadowViewMatrixDirty){r._shadowViewMatrix||(r._shadowViewMatrix=$.identityMat4());var e=r.scene.camera,t=r._state.dir,n=e.look,i=[n[0]-t[0],n[1]-t[1],n[2]-t[2]];$.lookAtMat4v(i,n,[0,1,0],r._shadowViewMatrix),r._shadowViewMatrixDirty=!1}return r._shadowViewMatrix},getShadowProjMatrix:function(){return r._shadowProjMatrixDirty&&(r._shadowProjMatrix||(r._shadowProjMatrix=$.identityMat4()),$.orthoMat4c(-40,40,-40,40,-40,80,r._shadowProjMatrix),r._shadowProjMatrixDirty=!1),r._shadowProjMatrix},getShadowRenderBuf:function(){return r._shadowRenderBuf||(r._shadowRenderBuf=new Ut(r.scene.canvas.canvas,r.scene.canvas.gl,{size:[1024,1024]})),r._shadowRenderBuf}}),r.dir=i.dir,r.color=i.color,r.intensity=i.intensity,r.castsShadow=i.castsShadow,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"DirLight"}},{key:"dir",get:function(){return this._state.dir},set:function(e){this._state.dir.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}},{key:"destroy",value:function(){var e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}]),n}(),hn=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state={type:"ambient",color:$.vec3([.7,.7,.7]),intensity:1},r.color=i.color,r.intensity=i.intensity,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"AmbientLight"}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){this._state.intensity=void 0!==e?e:1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._lightDestroyed(this)}}]),n}(),In=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),r=t.call(this,e,i),re.memory.meshes++,r}return P(n,[{key:"type",get:function(){return"Geometry"}},{key:"isGeometry",get:function(){return!0}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),re.memory.meshes--}}]),n}(),yn=function(){var e=[],t=[],n=[],r=[],i=[],a=0,s=new Uint16Array(3),o=new Uint16Array(3),l=new Uint16Array(3),u=$.vec3(),c=$.vec3(),f=$.vec3(),p=$.vec3(),A=$.vec3(),d=$.vec3(),v=$.vec3();return function(h,I,y,m){!function(i,a){var s,o,l,u,c,f,p={},A=Math.pow(10,4),d=0;for(c=0,f=i.length;cO)||(C=n[D.index1],_=n[D.index2],(!N&&C>65535||_>65535)&&(N=!0),B.push(C),B.push(_));return N?new Uint32Array(B):new Uint16Array(B)}}();var mn=function(){var e=$.mat4(),t=$.mat4();return function(n,r){r=r||$.mat4();var i=n[0],a=n[1],s=n[2],o=n[3]-i,l=n[4]-a,u=n[5]-s,c=65535;return $.identityMat4(e),$.translationMat4v(n,e),$.identityMat4(t),$.scalingMat4v([o/c,l/c,u/c],t),$.mulMat4(e,t,r),r}}(),wn=function(){var e=$.mat4(),t=$.mat4();return function(n,r,i){var a,s=new Uint16Array(n.length),o=new Float32Array([i[0]!==r[0]?65535/(i[0]-r[0]):0,i[1]!==r[1]?65535/(i[1]-r[1]):0,i[2]!==r[2]?65535/(i[2]-r[2]):0]);for(a=0;a=0?1:-1),o=(1-Math.abs(i))*(a>=0?1:-1);i=s,a=o}return new Int8Array([Math[n](127.5*i+(i<0?-1:0)),Math[r](127.5*a+(a<0?-1:0))])}function Tn(e){var t=e[0],n=e[1];t/=t<0?127:128,n/=n<0?127:128;var r=1-Math.abs(t)-Math.abs(n);r<0&&(t=(1-Math.abs(n))*(t>=0?1:-1),n=(1-Math.abs(t))*(n>=0?1:-1));var i=Math.sqrt(t*t+n*n+r*r);return[t/i,n/i,r/i]}function bn(e,t,n){return e[t]*n[0]+e[t+1]*n[1]+e[t+2]*n[2]}var Dn={getPositionsBounds:function(e){var t,n,r=new Float32Array(3),i=new Float32Array(3);for(t=0;t<3;t++)r[t]=Number.MAX_VALUE,i[t]=-Number.MAX_VALUE;for(t=0;t2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;r2&&void 0!==arguments[2]?arguments[2]:e;return n[0]=e[0]*t[0]+t[12],n[1]=e[1]*t[5]+t[13],n[2]=e[2]*t[10]+t[14],n[3]=e[3]*t[0]+t[12],n[4]=e[4]*t[5]+t[13],n[5]=e[5]*t[10]+t[14],n},getUVBounds:function(e){var t,n,r=new Float32Array(2),i=new Float32Array(2);for(t=0;t<2;t++)r[t]=Number.MAX_VALUE,i[t]=-Number.MAX_VALUE;for(t=0;t2&&void 0!==arguments[2]?arguments[2]:new Float32Array(e.length),r=0,i=e.length;ri&&(n=t,i=r),(r=bn(e,s,Tn(t=En(e,s,"floor","ceil"))))>i&&(n=t,i=r),(r=bn(e,s,Tn(t=En(e,s,"ceil","ceil"))))>i&&(n=t,i=r),a[s]=n[0],a[s+1]=n[1];return a},decompressNormals:function(e,t){for(var n=0,r=0,i=e.length;n=0?1:-1),s=(1-Math.abs(a))*(s>=0?1:-1));var l=Math.sqrt(a*a+s*s+o*o);t[r+0]=a/l,t[r+1]=s/l,t[r+2]=o/l,r+=3}return t},decompressNormal:function(e,t){var n=e[0],r=e[1];n=(2*n+1)/255,r=(2*r+1)/255;var i=1-Math.abs(n)-Math.abs(r);i<0&&(n=(1-Math.abs(r))*(n>=0?1:-1),r=(1-Math.abs(n))*(r>=0?1:-1));var a=Math.sqrt(n*n+r*r+i*i);return t[0]=n/a,t[1]=r/a,t[2]=i/a,t}},Pn=re.memory,Rn=$.AABB3(),Cn=function(e){I(n,In);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._state=new Wt({compressGeometry:!!i.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),r._numTriangles=0,r._edgeThreshold=i.edgeThreshold||10,r._edgeIndicesBuf=null,r._pickTrianglePositionsBuf=null,r._pickTriangleColorsBuf=null,r._aabbDirty=!0,r._boundingSphere=!0,r._aabb=null,r._aabbDirty=!0,r._obb=null,r._obbDirty=!0;var a=r._state,s=r.scene.canvas.gl;switch(i.primitive=i.primitive||"triangles",i.primitive){case"points":a.primitive=s.POINTS,a.primitiveName=i.primitive;break;case"lines":a.primitive=s.LINES,a.primitiveName=i.primitive;break;case"line-loop":a.primitive=s.LINE_LOOP,a.primitiveName=i.primitive;break;case"line-strip":a.primitive=s.LINE_STRIP,a.primitiveName=i.primitive;break;case"triangles":a.primitive=s.TRIANGLES,a.primitiveName=i.primitive;break;case"triangle-strip":a.primitive=s.TRIANGLE_STRIP,a.primitiveName=i.primitive;break;case"triangle-fan":a.primitive=s.TRIANGLE_FAN,a.primitiveName=i.primitive;break;default:r.error("Unsupported value for 'primitive': '"+i.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),a.primitive=s.TRIANGLES,a.primitiveName=i.primitive}if(i.positions)if(r._state.compressGeometry){var o=Dn.getPositionsBounds(i.positions),l=Dn.compressPositions(i.positions,o.min,o.max);a.positions=l.quantized,a.positionsDecodeMatrix=l.decodeMatrix}else a.positions=i.positions.constructor===Float32Array?i.positions:new Float32Array(i.positions);if(i.colors&&(a.colors=i.colors.constructor===Float32Array?i.colors:new Float32Array(i.colors)),i.uv)if(r._state.compressGeometry){var u=Dn.getUVBounds(i.uv),c=Dn.compressUVs(i.uv,u.min,u.max);a.uv=c.quantized,a.uvDecodeMatrix=c.decodeMatrix}else a.uv=i.uv.constructor===Float32Array?i.uv:new Float32Array(i.uv);return i.normals&&(r._state.compressGeometry?a.normals=Dn.compressNormals(i.normals):a.normals=i.normals.constructor===Float32Array?i.normals:new Float32Array(i.normals)),i.indices&&(a.indices=i.indices.constructor===Uint32Array||i.indices.constructor===Uint16Array?i.indices:new Uint32Array(i.indices),"triangles"===r._state.primitiveName&&(r._numTriangles=i.indices.length/3)),r._buildHash(),Pn.meshes++,r._buildVBOs(),r}return P(n,[{key:"type",get:function(){return"ReadableGeometry"}},{key:"isReadableGeometry",get:function(){return!0}},{key:"_buildVBOs",value:function(){var e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Pn.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Pn.positions+=e.positionsBuf.numItems),e.normals){var n=e.compressGeometry;e.normalsBuf=new Dt(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,n),Pn.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Pn.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Dt(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Pn.uvs+=e.uvBuf.numItems)}},{key:"_buildHash",value:function(){var e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positions&&t.push("p"),e.colors&&t.push("c"),(e.normals||e.autoVertexNormals)&&t.push("n"),e.uv&&t.push("u"),e.compressGeometry&&t.push("cp"),t.push(";"),e.hash=t.join("")}},{key:"_getEdgeIndices",value:function(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}},{key:"_getPickTrianglePositions",value:function(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}},{key:"_getPickTriangleColors",value:function(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}},{key:"_buildEdgeIndices",value:function(){var e=this._state;if(e.positions&&e.indices){var t=this.scene.canvas.gl,n=yn(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,n,n.length,1,t.STATIC_DRAW),Pn.indices+=this._edgeIndicesBuf.numItems}}},{key:"_buildPickTriangleVBOs",value:function(){var e=this._state;if(e.positions&&e.indices){var t=this.scene.canvas.gl,n=$.buildPickTriangles(e.positions,e.indices,e.compressGeometry),r=n.positions,i=n.colors;this._pickTrianglePositionsBuf=new Dt(t,t.ARRAY_BUFFER,r,r.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Dt(t,t.ARRAY_BUFFER,i,i.length,4,t.STATIC_DRAW,!0),Pn.positions+=this._pickTrianglePositionsBuf.numItems,Pn.colors+=this._pickTriangleColorsBuf.numItems}}},{key:"_buildPickVertexVBOs",value:function(){}},{key:"_webglContextLost",value:function(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}},{key:"_webglContextRestored",value:function(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}},{key:"primitive",get:function(){return this._state.primitiveName}},{key:"compressGeometry",get:function(){return this._state.compressGeometry}},{key:"positions",get:function(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),Dn.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null},set:function(e){var t=this._state,n=t.positions;if(n)if(n.length===e.length){if(this._state.compressGeometry){var r=Dn.getPositionsBounds(e),i=Dn.compressPositions(e,r.min,r.max);e=i.quantized,t.positionsDecodeMatrix=i.decodeMatrix}n.set(e),t.positionsBuf&&t.positionsBuf.setData(n),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}},{key:"normals",get:function(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){var e=this._state.normals.length,t=e+e/2;this._decompressedNormals=new Float32Array(t),Dn.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry normals - quantized geometry is immutable");else{var t=this._state,n=t.normals;n?n.length===e.length?(n.set(e),t.normalsBuf&&t.normalsBuf.setData(n),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}}},{key:"uv",get:function(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),Dn.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry UVs - quantized geometry is immutable");else{var t=this._state,n=t.uv;n?n.length===e.length?(n.set(e),t.uvBuf&&t.uvBuf.setData(n),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}}},{key:"colors",get:function(){return this._state.colors},set:function(e){if(this._state.compressGeometry)this.error("can't update geometry colors - quantized geometry is immutable");else{var t=this._state,n=t.colors;n?n.length===e.length?(n.set(e),t.colorsBuf&&t.colorsBuf.setData(n),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}}},{key:"indices",get:function(){return this._state.indices}},{key:"aabb",get:function(){return this._aabbDirty&&(this._aabb||(this._aabb=$.AABB3()),$.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}},{key:"obb",get:function(){return this._obbDirty&&(this._obb||(this._obb=$.OBB3()),$.positions3ToAABB3(this._state.positions,Rn,this._state.positionsDecodeMatrix),$.AABB3ToOBB3(Rn,this._obb),this._obbDirty=!1),this._obb}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"_setAABBDirty",value:function(){this._aabbDirty||(this._aabbDirty=!0,this._aabbDirty=!0,this._obbDirty=!0)}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this);var e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),this._pickTrianglePositionsBuf&&this._pickTrianglePositionsBuf.destroy(),this._pickTriangleColorsBuf&&this._pickTriangleColorsBuf.destroy(),this._pickVertexPositionsBuf&&this._pickVertexPositionsBuf.destroy(),this._pickVertexColorsBuf&&this._pickVertexColorsBuf.destroy(),e.destroy(),Pn.meshes--}}]),n}();function _n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.ySize||1;n<0&&(console.error("negative ySize not allowed - will invert"),n*=-1);var r=e.zSize||1;r<0&&(console.error("negative zSize not allowed - will invert"),r*=-1);var i=e.center,a=i?i[0]:0,s=i?i[1]:0,o=i?i[2]:0,l=-t+a,u=-n+s,c=-r+o,f=t+a,p=n+s,A=r+o;return le.apply(e,{positions:[f,p,A,l,p,A,l,u,A,f,u,A,f,p,A,f,u,A,f,u,c,f,p,c,f,p,A,f,p,c,l,p,c,l,p,A,l,p,A,l,p,c,l,u,c,l,u,A,l,u,c,f,u,c,f,u,A,l,u,A,f,u,c,l,u,c,l,p,c,f,p,c],normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],uv:[1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]})}var Bn=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),r=t.call(this,e,i),re.memory.materials++,r}return P(n,[{key:"type",get:function(){return"Material"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),re.memory.materials--}}]),n}(),On={opaque:0,mask:1,blend:2},Sn=["opaque","mask","blend"],Nn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"PhongMaterial",ambient:$.vec3([1,1,1]),diffuse:$.vec3([1,1,1]),specular:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.ambient=i.ambient,r.diffuse=i.diffuse,r.specular=i.specular,r.emissive=i.emissive,r.alpha=i.alpha,r.shininess=i.shininess,r.reflectivity=i.reflectivity,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,i.ambientMap&&(r._ambientMap=r._checkComponent("Texture",i.ambientMap)),i.diffuseMap&&(r._diffuseMap=r._checkComponent("Texture",i.diffuseMap)),i.specularMap&&(r._specularMap=r._checkComponent("Texture",i.specularMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.reflectivityMap&&(r._reflectivityMap=r._checkComponent("Texture",i.reflectivityMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.diffuseFresnel&&(r._diffuseFresnel=r._checkComponent("Fresnel",i.diffuseFresnel)),i.specularFresnel&&(r._specularFresnel=r._checkComponent("Fresnel",i.specularFresnel)),i.emissiveFresnel&&(r._emissiveFresnel=r._checkComponent("Fresnel",i.emissiveFresnel)),i.alphaFresnel&&(r._alphaFresnel=r._checkComponent("Fresnel",i.alphaFresnel)),i.reflectivityFresnel&&(r._reflectivityFresnel=r._checkComponent("Fresnel",i.reflectivityFresnel)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"PhongMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/p"];this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._ambientMap&&(t.push("/am"),this._ambientMap.hasMatrix&&t.push("/mat"),t.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat"),t.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),this._reflectivityMap&&(t.push("/rm"),this._reflectivityMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._diffuseFresnel&&t.push("/df"),this._specularFresnel&&t.push("/sf"),this._emissiveFresnel&&t.push("/ef"),this._alphaFresnel&&t.push("/of"),this._reflectivityFresnel&&t.push("/rf"),t.push(";"),e.hash=t.join("")}},{key:"ambient",get:function(){return this._state.ambient},set:function(e){var t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"diffuse",get:function(){return this._state.diffuse},set:function(e){var t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"specular",get:function(){return this._state.specular},set:function(e){var t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"shininess",get:function(){return this._state.shininess},set:function(e){this._state.shininess=void 0!==e?e:80,this.glRedraw()}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"reflectivity",get:function(){return this._state.reflectivity},set:function(e){this._state.reflectivity=void 0!==e?e:1,this.glRedraw()}},{key:"normalMap",get:function(){return this._normalMap}},{key:"ambientMap",get:function(){return this._ambientMap}},{key:"diffuseMap",get:function(){return this._diffuseMap}},{key:"specularMap",get:function(){return this._specularMap}},{key:"emissiveMap",get:function(){return this._emissiveMap}},{key:"alphaMap",get:function(){return this._alphaMap}},{key:"reflectivityMap",get:function(){return this._reflectivityMap}},{key:"occlusionMap",get:function(){return this._occlusionMap}},{key:"diffuseFresnel",get:function(){return this._diffuseFresnel}},{key:"specularFresnel",get:function(){return this._specularFresnel}},{key:"emissiveFresnel",get:function(){return this._emissiveFresnel}},{key:"alphaFresnel",get:function(){return this._alphaFresnel}},{key:"reflectivityFresnel",get:function(){return this._reflectivityFresnel}},{key:"alphaMode",get:function(){return Sn[this._state.alphaMode]},set:function(e){var t=On[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" - defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Ln={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}},Mn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),r._preset="default",i.preset?(r.preset=i.preset,void 0!==i.fill&&(r.fill=i.fill),i.fillColor&&(r.fillColor=i.fillColor),void 0!==i.fillAlpha&&(r.fillAlpha=i.fillAlpha),void 0!==i.edges&&(r.edges=i.edges),i.edgeColor&&(r.edgeColor=i.edgeColor),void 0!==i.edgeAlpha&&(r.edgeAlpha=i.edgeAlpha),void 0!==i.edgeWidth&&(r.edgeWidth=i.edgeWidth),void 0!==i.backfaces&&(r.backfaces=i.backfaces),void 0!==i.glowThrough&&(r.glowThrough=i.glowThrough)):(r.fill=i.fill,r.fillColor=i.fillColor,r.fillAlpha=i.fillAlpha,r.edges=i.edges,r.edgeColor=i.edgeColor,r.edgeAlpha=i.edgeAlpha,r.edgeWidth=i.edgeWidth,r.backfaces=i.backfaces,r.glowThrough=i.glowThrough),r}return P(n,[{key:"type",get:function(){return"EmphasisMaterial"}},{key:"presets",get:function(){return Ln}},{key:"fill",get:function(){return this._state.fill},set:function(e){e=!1!==e,this._state.fill!==e&&(this._state.fill=e,this.glRedraw())}},{key:"fillColor",get:function(){return this._state.fillColor},set:function(e){var t=this._state.fillColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.fillColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.4,t[1]=.4,t[2]=.4),this.glRedraw()}},{key:"fillAlpha",get:function(){return this._state.fillAlpha},set:function(e){e=null!=e?e:.2,this._state.fillAlpha!==e&&(this._state.fillAlpha=e,this.glRedraw())}},{key:"edges",get:function(){return this._state.edges},set:function(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){var t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"edgeAlpha",get:function(){return this._state.edgeAlpha},set:function(e){e=null!=e?e:.5,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}},{key:"edgeWidth",get:function(){return this._state.edgeWidth},set:function(e){this._state.edgeWidth=e||1,this.glRedraw()}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"glowThrough",get:function(){return this._state.glowThrough},set:function(e){e=!1!==e,this._state.glowThrough!==e&&(this._state.glowThrough=e,this.glRedraw())}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=Ln[e];t?(this.fill=t.fill,this.fillColor=t.fillColor,this.fillAlpha=t.fillAlpha,this.edges=t.edges,this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this.glowThrough=t.glowThrough,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Ln).join(", "))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),xn={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}},Fn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),r._preset="default",i.preset?(r.preset=i.preset,i.edgeColor&&(r.edgeColor=i.edgeColor),void 0!==i.edgeAlpha&&(r.edgeAlpha=i.edgeAlpha),void 0!==i.edgeWidth&&(r.edgeWidth=i.edgeWidth)):(r.edgeColor=i.edgeColor,r.edgeAlpha=i.edgeAlpha,r.edgeWidth=i.edgeWidth),r.edges=!1!==i.edges,r}return P(n,[{key:"type",get:function(){return"EdgeMaterial"}},{key:"presets",get:function(){return xn}},{key:"edges",get:function(){return this._state.edges},set:function(e){e=!1!==e,this._state.edges!==e&&(this._state.edges=e,this.glRedraw())}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){var t=this._state.edgeColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.edgeColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"edgeAlpha",get:function(){return this._state.edgeAlpha},set:function(e){e=null!=e?e:1,this._state.edgeAlpha!==e&&(this._state.edgeAlpha=e,this.glRedraw())}},{key:"edgeWidth",get:function(){return this._state.edgeWidth},set:function(e){this._state.edgeWidth=e||1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=xn[e];t?(this.edgeColor=t.edgeColor,this.edgeAlpha=t.edgeAlpha,this.edgeWidth=t.edgeWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(xn).join(", "))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Hn={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}},Un=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._units="meters",r._scale=1,r._origin=$.vec3([0,0,0]),r.units=i.units,r.scale=i.scale,r.origin=i.origin,r}return P(n,[{key:"unitsInfo",get:function(){return Hn}},{key:"units",get:function(){return this._units},set:function(e){e||(e="meters"),Hn[e]||(this.error("Unsupported value for 'units': "+e+" defaulting to 'meters'"),e="meters"),this._units=e,this.fire("units",this._units)}},{key:"scale",get:function(){return this._scale},set:function(e){(e=e||1)<=0?this.error("scale value should be larger than zero"):(this._scale=e,this.fire("scale",this._scale))}},{key:"origin",get:function(){return this._origin},set:function(e){if(!e)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=e[0],this._origin[1]=e[1],this._origin[2]=e[2],this.fire("origin",this._origin)}},{key:"worldToRealPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(3);t[0]=this._origin[0]+this._scale*e[0],t[1]=this._origin[1]+this._scale*e[1],t[2]=this._origin[2]+this._scale*e[2]}},{key:"realToWorldPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.vec3(3);return t[0]=(e[0]-this._origin[0])/this._scale,t[1]=(e[1]-this._origin[1])/this._scale,t[2]=(e[2]-this._origin[2])/this._scale,t}}]),n}(),Gn=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._supported=dt.SUPPORTED_EXTENSIONS.OES_standard_derivatives,r.enabled=i.enabled,r.kernelRadius=i.kernelRadius,r.intensity=i.intensity,r.bias=i.bias,r.scale=i.scale,r.minResolution=i.minResolution,r.numSamples=i.numSamples,r.blur=i.blur,r.blendCutoff=i.blendCutoff,r.blendFactor=i.blendFactor,r}return P(n,[{key:"supported",get:function(){return this._supported}},{key:"enabled",get:function(){return this._enabled},set:function(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.glRedraw())}},{key:"possible",get:function(){if(!this._supported)return!1;if(!this._enabled)return!1;var e=this.scene.camera.projection;return"customProjection"!==e&&"frustum"!==e}},{key:"active",get:function(){return this._active}},{key:"kernelRadius",get:function(){return this._kernelRadius},set:function(e){null==e&&(e=100),this._kernelRadius!==e&&(this._kernelRadius=e,this.glRedraw())}},{key:"intensity",get:function(){return this._intensity},set:function(e){null==e&&(e=.15),this._intensity!==e&&(this._intensity=e,this.glRedraw())}},{key:"bias",get:function(){return this._bias},set:function(e){null==e&&(e=.5),this._bias!==e&&(this._bias=e,this.glRedraw())}},{key:"scale",get:function(){return this._scale},set:function(e){null==e&&(e=1),this._scale!==e&&(this._scale=e,this.glRedraw())}},{key:"minResolution",get:function(){return this._minResolution},set:function(e){null==e&&(e=0),this._minResolution!==e&&(this._minResolution=e,this.glRedraw())}},{key:"numSamples",get:function(){return this._numSamples},set:function(e){null==e&&(e=10),this._numSamples!==e&&(this._numSamples=e,this.glRedraw())}},{key:"blur",get:function(){return this._blur},set:function(e){e=!1!==e,this._blur!==e&&(this._blur=e,this.glRedraw())}},{key:"blendCutoff",get:function(){return this._blendCutoff},set:function(e){null==e&&(e=.3),this._blendCutoff!==e&&(this._blendCutoff=e,this.glRedraw())}},{key:"blendFactor",get:function(){return this._blendFactor},set:function(e){null==e&&(e=1),this._blendFactor!==e&&(this._blendFactor=e,this.glRedraw())}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}}]),n}(),kn={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}},jn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),i.preset?(r.preset=i.preset,void 0!==i.pointSize&&(r.pointSize=i.pointSize),void 0!==i.roundPoints&&(r.roundPoints=i.roundPoints),void 0!==i.perspectivePoints&&(r.perspectivePoints=i.perspectivePoints),void 0!==i.minPerspectivePointSize&&(r.minPerspectivePointSize=i.minPerspectivePointSize),void 0!==i.maxPerspectivePointSize&&(r.maxPerspectivePointSize=i.minPerspectivePointSize)):(r._preset="default",r.pointSize=i.pointSize,r.roundPoints=i.roundPoints,r.perspectivePoints=i.perspectivePoints,r.minPerspectivePointSize=i.minPerspectivePointSize,r.maxPerspectivePointSize=i.maxPerspectivePointSize),r.filterIntensity=i.filterIntensity,r.minIntensity=i.minIntensity,r.maxIntensity=i.maxIntensity,r}return P(n,[{key:"type",get:function(){return"PointsMaterial"}},{key:"presets",get:function(){return kn}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||2,this.glRedraw()}},{key:"roundPoints",get:function(){return this._state.roundPoints},set:function(e){e=!1!==e,this._state.roundPoints!==e&&(this._state.roundPoints=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"perspectivePoints",get:function(){return this._state.perspectivePoints},set:function(e){e=!1!==e,this._state.perspectivePoints!==e&&(this._state.perspectivePoints=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"minPerspectivePointSize",get:function(){return this._state.minPerspectivePointSize},set:function(e){this._state.minPerspectivePointSize=e||1,this.scene._needRecompile=!0,this.glRedraw()}},{key:"maxPerspectivePointSize",get:function(){return this._state.maxPerspectivePointSize},set:function(e){this._state.maxPerspectivePointSize=e||6,this.scene._needRecompile=!0,this.glRedraw()}},{key:"filterIntensity",get:function(){return this._state.filterIntensity},set:function(e){e=!1!==e,this._state.filterIntensity!==e&&(this._state.filterIntensity=e,this.scene._needRecompile=!0,this.glRedraw())}},{key:"minIntensity",get:function(){return this._state.minIntensity},set:function(e){this._state.minIntensity=null!=e?e:0,this.glRedraw()}},{key:"maxIntensity",get:function(){return this._state.maxIntensity},set:function(e){this._state.maxIntensity=null!=e?e:1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=kn[e];t?(this.pointSize=t.pointSize,this.roundPoints=t.roundPoints,this.perspectivePoints=t.perspectivePoints,this.minPerspectivePointSize=t.minPerspectivePointSize,this.maxPerspectivePointSize=t.maxPerspectivePointSize,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(kn).join(", "))}}},{key:"hash",get:function(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Vn={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}},Qn=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"LinesMaterial",lineWidth:null}),i.preset?(r.preset=i.preset,void 0!==i.lineWidth&&(r.lineWidth=i.lineWidth)):(r._preset="default",r.lineWidth=i.lineWidth),r}return P(n,[{key:"type",get:function(){return"LinesMaterial"}},{key:"presets",get:function(){return Vn}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"preset",get:function(){return this._preset},set:function(e){if(e=e||"default",this._preset!==e){var t=Vn[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Vn).join(", "))}}},{key:"hash",get:function(){return[""+this.lineWidth].join(";")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}();function Wn(e,t){for(var n,r,i={},a=0,s=t.length;a1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),r=t.call(this,null,i);var a=i.canvasElement||document.getElementById(i.canvasId);if(!(a instanceof HTMLCanvasElement))throw"Mandatory config expected: valid canvasId or canvasElement";r._tickifiedFunctions={};var s=!!i.transparent,o=!!i.alphaDepthMask;return r._aabbDirty=!0,r.viewer=e,r.occlusionTestCountdown=0,r.loading=0,r.startTime=(new Date).getTime(),r.models={},r.objects={},r._numObjects=0,r.visibleObjects={},r._numVisibleObjects=0,r.xrayedObjects={},r._numXRayedObjects=0,r.highlightedObjects={},r._numHighlightedObjects=0,r.selectedObjects={},r._numSelectedObjects=0,r.colorizedObjects={},r._numColorizedObjects=0,r.opacityObjects={},r._numOpacityObjects=0,r.offsetObjects={},r._numOffsetObjects=0,r._modelIds=null,r._objectIds=null,r._visibleObjectIds=null,r._xrayedObjectIds=null,r._highlightedObjectIds=null,r._selectedObjectIds=null,r._colorizedObjectIds=null,r._opacityObjectIds=null,r._offsetObjectIds=null,r._collidables={},r._compilables={},r._needRecompile=!1,r.types={},r.components={},r.sectionPlanes={},r.lights={},r.lightMaps={},r.reflectionMaps={},r.bitmaps={},r.lineSets={},r.realWorldOffset=i.realWorldOffset||new Float64Array([0,0,0]),r.canvas=new pt(g(r),{dontClear:!0,canvas:a,spinnerElementId:i.spinnerElementId,transparent:s,webgl2:!1!==i.webgl2,contextAttr:i.contextAttr||{},backgroundColor:i.backgroundColor,backgroundColorFromAmbientLight:i.backgroundColorFromAmbientLight,premultipliedAlpha:i.premultipliedAlpha}),r.canvas.on("boundary",(function(){r.glRedraw()})),r.canvas.on("webglContextFailed",(function(){alert("xeokit failed to find WebGL!")})),r._renderer=new jt(g(r),{transparent:s,alphaDepthMask:o}),r._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;var e=null;this.getHash=function(){if(e)return e;var t=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===t)return this.hash=";";for(var n=[],r=0,i=t;rthis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},r._sectionPlanesState.setNumCachedSectionPlanes(i.numCachedSectionPlanes||0),r._lightsState=new function(){var e=$.vec4([0,0,0,0]),t=$.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];var n=null,r=null;this.getHash=function(){if(n)return n;for(var e,t=[],r=this.lights,i=0,a=r.length;i0&&t.push("/lm"),this.reflectionMaps.length>0&&t.push("/rm"),t.push(";"),n=t.join("")},this.addLight=function(e){this.lights.push(e),r=null,n=null},this.removeLight=function(e){for(var t=0,i=this.lights.length;t1&&void 0!==arguments[1])||arguments[1];e.visible?(this.visibleObjects[e.id]=e,this._numVisibleObjects++):(delete this.visibleObjects[e.id],this._numVisibleObjects--),this._visibleObjectIds=null,t&&this.fire("objectVisibility",e,!0)}},{key:"_objectXRayedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.xrayed?(this.xrayedObjects[e.id]=e,this._numXRayedObjects++):(delete this.xrayedObjects[e.id],this._numXRayedObjects--),this._xrayedObjectIds=null,t&&this.fire("objectXRayed",e,!0)}},{key:"_objectHighlightedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null,t&&this.fire("objectHighlighted",e,!0)}},{key:"_objectSelectedUpdated",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.selected?(this.selectedObjects[e.id]=e,this._numSelectedObjects++):(delete this.selectedObjects[e.id],this._numSelectedObjects--),this._selectedObjectIds=null,t&&this.fire("objectSelected",e,!0)}},{key:"_objectColorizeUpdated",value:function(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}},{key:"_objectOpacityUpdated",value:function(e,t){t?(this.opacityObjects[e.id]=e,this._numOpacityObjects++):(delete this.opacityObjects[e.id],this._numOpacityObjects--),this._opacityObjectIds=null}},{key:"_objectOffsetUpdated",value:function(e,t){!t||0===t[0]&&0===t[1]&&0===t[2]?(this.offsetObjects[e.id]=e,this._numOffsetObjects++):(delete this.offsetObjects[e.id],this._numOffsetObjects--),this._offsetObjectIds=null}},{key:"_webglContextLost",value:function(){for(var e in this.canvas.spinner.processes++,this.components)if(this.components.hasOwnProperty(e)){var t=this.components[e];t._webglContextLost&&t._webglContextLost()}this._renderer.webglContextLost()}},{key:"_webglContextRestored",value:function(){var e=this.canvas.gl;for(var t in this.components)if(this.components.hasOwnProperty(t)){var n=this.components[t];n._webglContextRestored&&n._webglContextRestored(e)}this._renderer.webglContextRestored(e),this.canvas.spinner.processes--}},{key:"capabilities",get:function(){return this._renderer.capabilities}},{key:"entityOffsetsEnabled",get:function(){return this._entityOffsetsEnabled}},{key:"pickSurfacePrecisionEnabled",get:function(){return!1}},{key:"logarithmicDepthBufferEnabled",get:function(){return this._logarithmicDepthBufferEnabled}},{key:"numCachedSectionPlanes",get:function(){return this._sectionPlanesState.getNumCachedSectionPlanes()},set:function(e){e=e||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==e&&(this._sectionPlanesState.setNumCachedSectionPlanes(e),this._needRecompile=!0,this.glRedraw())}},{key:"pbrEnabled",get:function(){return this._pbrEnabled},set:function(e){this._pbrEnabled=!!e,this.glRedraw()}},{key:"dtxEnabled",get:function(){return this._dtxEnabled},set:function(e){e=!!e,this._dtxEnabled!==e&&(this._dtxEnabled=e)}},{key:"colorTextureEnabled",get:function(){return this._colorTextureEnabled},set:function(e){this._colorTextureEnabled=!!e,this.glRedraw()}},{key:"doOcclusionTest",value:function(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}},{key:"render",value:function(e){e&&he.runTasks();var t={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),e||this._renderer.needsRender()){t.sceneId=this.id;var n,r,i=this._passes,a=this._clearEachPass;for(n=0;na&&(a=e[3]),e[4]>s&&(s=e[4]),e[5]>o&&(o=e[5]),u=!0}u||(n=-100,r=-100,i=-100,a=100,s=100,o=100),this._aabb[0]=n,this._aabb[1]=r,this._aabb[2]=i,this._aabb[3]=a,this._aabb[4]=s,this._aabb[5]=o,this._aabbDirty=!1}return this._aabb}},{key:"_setAABBDirty",value:function(){this._aabbDirty=!0,this.fire("boundary")}},{key:"pick",value:function(e,t){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(e=e||{}).pickSurface=e.pickSurface||e.rayPick,e.canvasPos||e.matrix||e.origin&&e.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");var n=e.includeEntities||e.include;n&&(e.includeEntityIds=Wn(this,n));var r=e.excludeEntities||e.exclude;return r&&(e.excludeEntityIds=Wn(this,r)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(t=e.snapToEdge||e.snapToVertex?this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge,t):this._renderer.pick(e,t))&&t.entity&&t.entity.fire&&t.entity.fire("picked",t),t}},{key:"snapPick",value:function(e){return void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),this._renderer.snapPick(e.canvasPos,e.snapRadius||30,e.snapToVertex,e.snapToEdge)}},{key:"clear",value:function(){var e;for(var t in this.components)this.components.hasOwnProperty(t)&&((e=this.components[t])._dontClear||e.destroy())}},{key:"clearLights",value:function(){for(var e=Object.keys(this.lights),t=0,n=e.length;ts&&(s=t[3]),t[4]>o&&(o=t[4]),t[5]>l&&(l=t[5]),n=!0}})),n){var u=$.AABB3();return u[0]=r,u[1]=i,u[2]=a,u[3]=s,u[4]=o,u[5]=l,u}return this.aabb}},{key:"setObjectsVisible",value:function(e,t){return this.withObjects(e,(function(e){var n=e.visible!==t;return e.visible=t,n}))}},{key:"setObjectsCollidable",value:function(e,t){return this.withObjects(e,(function(e){var n=e.collidable!==t;return e.collidable=t,n}))}},{key:"setObjectsCulled",value:function(e,t){return this.withObjects(e,(function(e){var n=e.culled!==t;return e.culled=t,n}))}},{key:"setObjectsSelected",value:function(e,t){return this.withObjects(e,(function(e){var n=e.selected!==t;return e.selected=t,n}))}},{key:"setObjectsHighlighted",value:function(e,t){return this.withObjects(e,(function(e){var n=e.highlighted!==t;return e.highlighted=t,n}))}},{key:"setObjectsXRayed",value:function(e,t){return this.withObjects(e,(function(e){var n=e.xrayed!==t;return e.xrayed=t,n}))}},{key:"setObjectsEdges",value:function(e,t){return this.withObjects(e,(function(e){var n=e.edges!==t;return e.edges=t,n}))}},{key:"setObjectsColorized",value:function(e,t){return this.withObjects(e,(function(e){e.colorize=t}))}},{key:"setObjectsOpacity",value:function(e,t){return this.withObjects(e,(function(e){var n=e.opacity!==t;return e.opacity=t,n}))}},{key:"setObjectsPickable",value:function(e,t){return this.withObjects(e,(function(e){var n=e.pickable!==t;return e.pickable=t,n}))}},{key:"setObjectsOffset",value:function(e,t){this.withObjects(e,(function(e){e.offset=t}))}},{key:"withObjects",value:function(e,t){le.isString(e)&&(e=[e]);for(var n=!1,r=0,i=e.length;rr&&(r=i,e.apply(void 0,c(n)))}));return this._tickifiedFunctions[t]={tickSubId:s,wrapperFunc:a},a}},{key:"destroy",value:function(){for(var e in v(E(n.prototype),"destroy",this).call(this),this.components)this.components.hasOwnProperty(e)&&this.components[e].destroy();this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}]),n}(),Kn=1e3,Yn=1001,Xn=1002,qn=1003,Jn=1004,Zn=1004,$n=1005,er=1005,tr=1006,nr=1007,rr=1007,ir=1008,ar=1008,sr=1009,or=1010,lr=1011,ur=1012,cr=1013,fr=1014,pr=1015,Ar=1016,dr=1017,vr=1018,hr=1020,Ir=1021,yr=1022,mr=1023,wr=1024,gr=1025,Er=1026,Tr=1027,br=1028,Dr=1029,Pr=1030,Rr=1031,Cr=1033,_r=33776,Br=33777,Or=33778,Sr=33779,Nr=35840,Lr=35841,Mr=35842,xr=35843,Fr=36196,Hr=37492,Ur=37496,Gr=37808,kr=37809,jr=37810,Vr=37811,Qr=37812,Wr=37813,zr=37814,Kr=37815,Yr=37816,Xr=37817,qr=37818,Jr=37819,Zr=37820,$r=37821,ei=36492,ti=3e3,ni=3001,ri=1e4,ii=10001,ai=10002,si=10003,oi=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){var t=e.scene,n=e.scene._sectionPlanesState,r=e.scene._lightsState,i=e._geometry._state,a=e._state.billboard,s=e._state.stationary,o=n.getNumAllocatedSectionPlanes()>0,l=!!i.compressGeometry,u=[];u.push("#version 300 es"),u.push("// Lambertian drawing vertex shader"),u.push("in vec3 position;"),u.push("uniform mat4 modelMatrix;"),u.push("uniform mat4 viewMatrix;"),u.push("uniform mat4 projMatrix;"),u.push("uniform vec4 colorize;"),u.push("uniform vec3 offset;"),l&&u.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(u.push("uniform float logDepthBufFC;"),u.push("out float vFragDepth;"),u.push("bool isPerspectiveMatrix(mat4 m) {"),u.push(" return (m[2][3] == - 1.0);"),u.push("}"),u.push("out float isPerspective;"));o&&u.push("out vec4 vWorldPosition;");if(u.push("uniform vec4 lightAmbient;"),u.push("uniform vec4 materialColor;"),u.push("uniform vec3 materialEmissive;"),i.normalsBuf){u.push("in vec3 normal;"),u.push("uniform mat4 modelNormalMatrix;"),u.push("uniform mat4 viewNormalMatrix;");for(var c=0,f=r.lights.length;c= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),u.push(" }"),u.push(" return normalize(v);"),u.push("}"))}u.push("out vec4 vColor;"),"points"===i.primitiveName&&u.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(u.push("void billboard(inout mat4 mat) {"),u.push(" mat[0][0] = 1.0;"),u.push(" mat[0][1] = 0.0;"),u.push(" mat[0][2] = 0.0;"),"spherical"===a&&(u.push(" mat[1][0] = 0.0;"),u.push(" mat[1][1] = 1.0;"),u.push(" mat[1][2] = 0.0;")),u.push(" mat[2][0] = 0.0;"),u.push(" mat[2][1] = 0.0;"),u.push(" mat[2][2] =1.0;"),u.push("}"));u.push("void main(void) {"),u.push("vec4 localPosition = vec4(position, 1.0); "),u.push("vec4 worldPosition;"),l&&u.push("localPosition = positionsDecodeMatrix * localPosition;");i.normalsBuf&&(l?u.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):u.push("vec4 localNormal = vec4(normal, 0.0); "),u.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),u.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));u.push("mat4 viewMatrix2 = viewMatrix;"),u.push("mat4 modelMatrix2 = modelMatrix;"),s&&u.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===a||"cylindrical"===a?(u.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),u.push("billboard(modelMatrix2);"),u.push("billboard(viewMatrix2);"),u.push("billboard(modelViewMatrix);"),i.normalsBuf&&(u.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),u.push("billboard(modelNormalMatrix2);"),u.push("billboard(viewNormalMatrix2);"),u.push("billboard(modelViewNormalMatrix);")),u.push("worldPosition = modelMatrix2 * localPosition;"),u.push("worldPosition.xyz = worldPosition.xyz + offset;"),u.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(u.push("worldPosition = modelMatrix2 * localPosition;"),u.push("worldPosition.xyz = worldPosition.xyz + offset;"),u.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i.normalsBuf&&u.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(u.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),u.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),u.push("float lambertian = 1.0;"),i.normalsBuf)for(var A=0,d=r.lights.length;A0,a=t.gammaOutput,s=[];s.push("#version 300 es"),s.push("// Lambertian drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),t.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"));if(i){s.push("in vec4 vWorldPosition;"),s.push("uniform bool clippable;");for(var o=0,l=n.getNumAllocatedSectionPlanes();o 0.0) { discard; }"),s.push("}")}"points"===r.primitiveName&&(s.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),s.push("float r = dot(cxy, cxy);"),s.push("if (r > 1.0) {"),s.push(" discard;"),s.push("}"));t.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");a?s.push("outColor = linearToGamma(vColor, gammaFactor);"):s.push("outColor = vColor;");return s.push("}"),s}(e)):(this.vertex=function(e){var t=e.scene;e._material;var n,r=e._state,i=t._sectionPlanesState,a=e._geometry._state,s=t._lightsState,o=r.billboard,l=r.background,u=r.stationary,c=function(e){if(!e._geometry._state.uvBuf)return!1;var t=e._material;return!!(t._ambientMap||t._occlusionMap||t._baseColorMap||t._diffuseMap||t._alphaMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._reflectivityMap||t._normalMap)}(e),f=ci(e),p=i.getNumAllocatedSectionPlanes()>0,A=ui(e),d=!!a.compressGeometry,v=[];v.push("#version 300 es"),v.push("// Drawing vertex shader"),v.push("in vec3 position;"),d&&v.push("uniform mat4 positionsDecodeMatrix;");v.push("uniform mat4 modelMatrix;"),v.push("uniform mat4 viewMatrix;"),v.push("uniform mat4 projMatrix;"),v.push("out vec3 vViewPosition;"),v.push("uniform vec3 offset;"),p&&v.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(v.push("uniform float logDepthBufFC;"),v.push("out float vFragDepth;"),v.push("bool isPerspectiveMatrix(mat4 m) {"),v.push(" return (m[2][3] == - 1.0);"),v.push("}"),v.push("out float isPerspective;"));s.lightMaps.length>0&&v.push("out vec3 vWorldNormal;");if(f){v.push("in vec3 normal;"),v.push("uniform mat4 modelNormalMatrix;"),v.push("uniform mat4 viewNormalMatrix;"),v.push("out vec3 vViewNormal;");for(var h=0,I=s.lights.length;h= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),v.push(" }"),v.push(" return normalize(v);"),v.push("}"))}c&&(v.push("in vec2 uv;"),v.push("out vec2 vUV;"),d&&v.push("uniform mat3 uvDecodeMatrix;"));a.colors&&(v.push("in vec4 color;"),v.push("out vec4 vColor;"));"points"===a.primitiveName&&v.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(v.push("void billboard(inout mat4 mat) {"),v.push(" mat[0][0] = 1.0;"),v.push(" mat[0][1] = 0.0;"),v.push(" mat[0][2] = 0.0;"),"spherical"===o&&(v.push(" mat[1][0] = 0.0;"),v.push(" mat[1][1] = 1.0;"),v.push(" mat[1][2] = 0.0;")),v.push(" mat[2][0] = 0.0;"),v.push(" mat[2][1] = 0.0;"),v.push(" mat[2][2] =1.0;"),v.push("}"));if(A){v.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(var y=0,m=s.lights.length;y0&&v.push("vWorldNormal = worldNormal;"),v.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),v.push("vec3 tmpVec3;"),v.push("float lightDist;");for(var w=0,g=s.lights.length;w0,l=ci(e),u=r.uvBuf,c="PhongMaterial"===s.type,f="MetallicMaterial"===s.type,p="SpecularMaterial"===s.type,A=ui(e);t.gammaInput;var d=t.gammaOutput,v=[];v.push("#version 300 es"),v.push("// Drawing fragment shader"),v.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),v.push("precision highp float;"),v.push("precision highp int;"),v.push("#else"),v.push("precision mediump float;"),v.push("precision mediump int;"),v.push("#endif"),t.logarithmicDepthBufferEnabled&&(v.push("in float isPerspective;"),v.push("uniform float logDepthBufFC;"),v.push("in float vFragDepth;"));A&&(v.push("float unpackDepth (vec4 color) {"),v.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),v.push(" return dot(color, bitShift);"),v.push("}"));v.push("uniform float gammaFactor;"),v.push("vec4 linearToLinear( in vec4 value ) {"),v.push(" return value;"),v.push("}"),v.push("vec4 sRGBToLinear( in vec4 value ) {"),v.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),v.push("}"),v.push("vec4 gammaToLinear( in vec4 value) {"),v.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),v.push("}"),d&&(v.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),v.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),v.push("}"));if(o){v.push("in vec4 vWorldPosition;"),v.push("uniform bool clippable;");for(var h=0;h0&&(v.push("uniform samplerCube lightMap;"),v.push("uniform mat4 viewNormalMatrix;")),a.reflectionMaps.length>0&&v.push("uniform samplerCube reflectionMap;"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("uniform mat4 viewMatrix;"),v.push("#define PI 3.14159265359"),v.push("#define RECIPROCAL_PI 0.31830988618"),v.push("#define RECIPROCAL_PI2 0.15915494"),v.push("#define EPSILON 1e-6"),v.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),v.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),v.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),v.push("}"),v.push("struct IncidentLight {"),v.push(" vec3 color;"),v.push(" vec3 direction;"),v.push("};"),v.push("struct ReflectedLight {"),v.push(" vec3 diffuse;"),v.push(" vec3 specular;"),v.push("};"),v.push("struct Geometry {"),v.push(" vec3 position;"),v.push(" vec3 viewNormal;"),v.push(" vec3 worldNormal;"),v.push(" vec3 viewEyeDir;"),v.push("};"),v.push("struct Material {"),v.push(" vec3 diffuseColor;"),v.push(" float specularRoughness;"),v.push(" vec3 specularColor;"),v.push(" float shine;"),v.push("};"),c&&((a.lightMaps.length>0||a.reflectionMaps.length>0)&&(v.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(v.push(" vec3 irradiance = "+li[a.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),v.push(" irradiance *= PI;"),v.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(v.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),v.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),v.push(" radiance *= PI;"),v.push(" reflectedLight.specular += radiance;")),v.push("}")),v.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),v.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),v.push(" vec3 irradiance = dotNL * directLight.color * PI;"),v.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),v.push("}")),(f||p)&&(v.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),v.push(" float r = ggxRoughness + 0.0001;"),v.push(" return (2.0 / (r * r) - 2.0);"),v.push("}"),v.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),v.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),v.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),v.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),v.push("}"),a.reflectionMaps.length>0&&(v.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),v.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),v.push(" vec3 envMapColor = "+li[a.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),v.push(" return envMapColor;"),v.push("}")),v.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),v.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),v.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),v.push("}"),v.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),v.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),v.push(" return 1.0 / ( gl * gv );"),v.push("}"),v.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),v.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),v.push(" return 0.5 / max( gv + gl, EPSILON );"),v.push("}"),v.push("float D_GGX(const in float alpha, const in float dotNH) {"),v.push(" float a2 = ( alpha * alpha );"),v.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),v.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),v.push("}"),v.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),v.push(" float alpha = ( roughness * roughness );"),v.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),v.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),v.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),v.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),v.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),v.push(" vec3 F = F_Schlick( specularColor, dotLH );"),v.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),v.push(" float D = D_GGX( alpha, dotNH );"),v.push(" return F * (G * D);"),v.push("}"),v.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),v.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),v.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),v.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),v.push(" vec4 r = roughness * c0 + c1;"),v.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),v.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),v.push(" return specularColor * AB.x + AB.y;"),v.push("}"),(a.lightMaps.length>0||a.reflectionMaps.length>0)&&(v.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),a.lightMaps.length>0&&(v.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),v.push(" irradiance *= PI;"),v.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),a.reflectionMaps.length>0&&(v.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),v.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),v.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),v.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),v.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),v.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),v.push("}")),v.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),v.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),v.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),v.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),v.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),v.push("}")));v.push("in vec3 vViewPosition;"),r.colors&&v.push("in vec4 vColor;");u&&(l&&n._normalMap||n._ambientMap||n._baseColorMap||n._diffuseMap||n._emissiveMap||n._metallicMap||n._roughnessMap||n._metallicRoughnessMap||n._specularMap||n._glossinessMap||n._specularGlossinessMap||n._occlusionMap||n._alphaMap)&&v.push("in vec2 vUV;");l&&(a.lightMaps.length>0&&v.push("in vec3 vWorldNormal;"),v.push("in vec3 vViewNormal;"));s.ambient&&v.push("uniform vec3 materialAmbient;");s.baseColor&&v.push("uniform vec3 materialBaseColor;");void 0!==s.alpha&&null!==s.alpha&&v.push("uniform vec4 materialAlphaModeCutoff;");s.emissive&&v.push("uniform vec3 materialEmissive;");s.diffuse&&v.push("uniform vec3 materialDiffuse;");void 0!==s.glossiness&&null!==s.glossiness&&v.push("uniform float materialGlossiness;");void 0!==s.shininess&&null!==s.shininess&&v.push("uniform float materialShininess;");s.specular&&v.push("uniform vec3 materialSpecular;");void 0!==s.metallic&&null!==s.metallic&&v.push("uniform float materialMetallic;");void 0!==s.roughness&&null!==s.roughness&&v.push("uniform float materialRoughness;");void 0!==s.specularF0&&null!==s.specularF0&&v.push("uniform float materialSpecularF0;");u&&n._ambientMap&&(v.push("uniform sampler2D ambientMap;"),n._ambientMap._state.matrix&&v.push("uniform mat4 ambientMapMatrix;"));u&&n._baseColorMap&&(v.push("uniform sampler2D baseColorMap;"),n._baseColorMap._state.matrix&&v.push("uniform mat4 baseColorMapMatrix;"));u&&n._diffuseMap&&(v.push("uniform sampler2D diffuseMap;"),n._diffuseMap._state.matrix&&v.push("uniform mat4 diffuseMapMatrix;"));u&&n._emissiveMap&&(v.push("uniform sampler2D emissiveMap;"),n._emissiveMap._state.matrix&&v.push("uniform mat4 emissiveMapMatrix;"));l&&u&&n._metallicMap&&(v.push("uniform sampler2D metallicMap;"),n._metallicMap._state.matrix&&v.push("uniform mat4 metallicMapMatrix;"));l&&u&&n._roughnessMap&&(v.push("uniform sampler2D roughnessMap;"),n._roughnessMap._state.matrix&&v.push("uniform mat4 roughnessMapMatrix;"));l&&u&&n._metallicRoughnessMap&&(v.push("uniform sampler2D metallicRoughnessMap;"),n._metallicRoughnessMap._state.matrix&&v.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&n._normalMap&&(v.push("uniform sampler2D normalMap;"),n._normalMap._state.matrix&&v.push("uniform mat4 normalMapMatrix;"),v.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),v.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),v.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),v.push(" vec2 st0 = dFdx( uv.st );"),v.push(" vec2 st1 = dFdy( uv.st );"),v.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),v.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),v.push(" vec3 N = normalize( surf_norm );"),v.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),v.push(" mat3 tsn = mat3( S, T, N );"),v.push(" return normalize( tsn * mapN );"),v.push("}"));u&&n._occlusionMap&&(v.push("uniform sampler2D occlusionMap;"),n._occlusionMap._state.matrix&&v.push("uniform mat4 occlusionMapMatrix;"));u&&n._alphaMap&&(v.push("uniform sampler2D alphaMap;"),n._alphaMap._state.matrix&&v.push("uniform mat4 alphaMapMatrix;"));l&&u&&n._specularMap&&(v.push("uniform sampler2D specularMap;"),n._specularMap._state.matrix&&v.push("uniform mat4 specularMapMatrix;"));l&&u&&n._glossinessMap&&(v.push("uniform sampler2D glossinessMap;"),n._glossinessMap._state.matrix&&v.push("uniform mat4 glossinessMapMatrix;"));l&&u&&n._specularGlossinessMap&&(v.push("uniform sampler2D materialSpecularGlossinessMap;"),n._specularGlossinessMap._state.matrix&&v.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(n._diffuseFresnel||n._specularFresnel||n._alphaFresnel||n._emissiveFresnel||n._reflectivityFresnel)&&(v.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),v.push(" float fr = abs(dot(eyeDir, normal));"),v.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),v.push(" return pow(finalFr, power);"),v.push("}"),n._diffuseFresnel&&(v.push("uniform float diffuseFresnelCenterBias;"),v.push("uniform float diffuseFresnelEdgeBias;"),v.push("uniform float diffuseFresnelPower;"),v.push("uniform vec3 diffuseFresnelCenterColor;"),v.push("uniform vec3 diffuseFresnelEdgeColor;")),n._specularFresnel&&(v.push("uniform float specularFresnelCenterBias;"),v.push("uniform float specularFresnelEdgeBias;"),v.push("uniform float specularFresnelPower;"),v.push("uniform vec3 specularFresnelCenterColor;"),v.push("uniform vec3 specularFresnelEdgeColor;")),n._alphaFresnel&&(v.push("uniform float alphaFresnelCenterBias;"),v.push("uniform float alphaFresnelEdgeBias;"),v.push("uniform float alphaFresnelPower;"),v.push("uniform vec3 alphaFresnelCenterColor;"),v.push("uniform vec3 alphaFresnelEdgeColor;")),n._reflectivityFresnel&&(v.push("uniform float materialSpecularF0FresnelCenterBias;"),v.push("uniform float materialSpecularF0FresnelEdgeBias;"),v.push("uniform float materialSpecularF0FresnelPower;"),v.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),v.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),n._emissiveFresnel&&(v.push("uniform float emissiveFresnelCenterBias;"),v.push("uniform float emissiveFresnelEdgeBias;"),v.push("uniform float emissiveFresnelPower;"),v.push("uniform vec3 emissiveFresnelCenterColor;"),v.push("uniform vec3 emissiveFresnelEdgeColor;")));if(v.push("uniform vec4 lightAmbient;"),l)for(var I=0,y=a.lights.length;I 0.0) { discard; }"),v.push("}")}"points"===r.primitiveName&&(v.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),v.push("float r = dot(cxy, cxy);"),v.push("if (r > 1.0) {"),v.push(" discard;"),v.push("}"));v.push("float occlusion = 1.0;"),s.ambient?v.push("vec3 ambientColor = materialAmbient;"):v.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");s.diffuse?v.push("vec3 diffuseColor = materialDiffuse;"):s.baseColor?v.push("vec3 diffuseColor = materialBaseColor;"):v.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");r.colors&&v.push("diffuseColor *= vColor.rgb;");s.emissive?v.push("vec3 emissiveColor = materialEmissive;"):v.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");s.specular?v.push("vec3 specular = materialSpecular;"):v.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==s.alpha?v.push("float alpha = materialAlphaModeCutoff[0];"):v.push("float alpha = 1.0;");r.colors&&v.push("alpha *= vColor.a;");void 0!==s.glossiness?v.push("float glossiness = materialGlossiness;"):v.push("float glossiness = 1.0;");void 0!==s.metallic?v.push("float metallic = materialMetallic;"):v.push("float metallic = 1.0;");void 0!==s.roughness?v.push("float roughness = materialRoughness;"):v.push("float roughness = 1.0;");void 0!==s.specularF0?v.push("float specularF0 = materialSpecularF0;"):v.push("float specularF0 = 1.0;");u&&(l&&n._normalMap||n._ambientMap||n._baseColorMap||n._diffuseMap||n._occlusionMap||n._emissiveMap||n._metallicMap||n._roughnessMap||n._metallicRoughnessMap||n._specularMap||n._glossinessMap||n._specularGlossinessMap||n._alphaMap)&&(v.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),v.push("vec2 textureCoord;"));u&&n._ambientMap&&(n._ambientMap._state.matrix?v.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),v.push("ambientTexel = "+li[n._ambientMap._state.encoding]+"(ambientTexel);"),v.push("ambientColor *= ambientTexel.rgb;"));u&&n._diffuseMap&&(n._diffuseMap._state.matrix?v.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),v.push("diffuseTexel = "+li[n._diffuseMap._state.encoding]+"(diffuseTexel);"),v.push("diffuseColor *= diffuseTexel.rgb;"),v.push("alpha *= diffuseTexel.a;"));u&&n._baseColorMap&&(n._baseColorMap._state.matrix?v.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),v.push("baseColorTexel = "+li[n._baseColorMap._state.encoding]+"(baseColorTexel);"),v.push("diffuseColor *= baseColorTexel.rgb;"),v.push("alpha *= baseColorTexel.a;"));u&&n._emissiveMap&&(n._emissiveMap._state.matrix?v.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),v.push("emissiveTexel = "+li[n._emissiveMap._state.encoding]+"(emissiveTexel);"),v.push("emissiveColor = emissiveTexel.rgb;"));u&&n._alphaMap&&(n._alphaMap._state.matrix?v.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("alpha *= texture(alphaMap, textureCoord).r;"));u&&n._occlusionMap&&(n._occlusionMap._state.matrix?v.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(l&&(a.lights.length>0||a.lightMaps.length>0||a.reflectionMaps.length>0)){u&&n._normalMap?(n._normalMap._state.matrix?v.push("textureCoord = (normalMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):v.push("vec3 viewNormal = normalize(vViewNormal);"),u&&n._specularMap&&(n._specularMap._state.matrix?v.push("textureCoord = (specularMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("specular *= texture(specularMap, textureCoord).rgb;")),u&&n._glossinessMap&&(n._glossinessMap._state.matrix?v.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("glossiness *= texture(glossinessMap, textureCoord).r;")),u&&n._specularGlossinessMap&&(n._specularGlossinessMap._state.matrix?v.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),v.push("specular *= specGlossRGB.rgb;"),v.push("glossiness *= specGlossRGB.a;")),u&&n._metallicMap&&(n._metallicMap._state.matrix?v.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("metallic *= texture(metallicMap, textureCoord).r;")),u&&n._roughnessMap&&(n._roughnessMap._state.matrix?v.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("roughness *= texture(roughnessMap, textureCoord).r;")),u&&n._metallicRoughnessMap&&(n._metallicRoughnessMap._state.matrix?v.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):v.push("textureCoord = texturePos.xy;"),v.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),v.push("metallic *= metalRoughRGB.b;"),v.push("roughness *= metalRoughRGB.g;")),v.push("vec3 viewEyeDir = normalize(-vViewPosition);"),n._diffuseFresnel&&(v.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),v.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),n._specularFresnel&&(v.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),v.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),n._alphaFresnel&&(v.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),v.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),n._emissiveFresnel&&(v.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),v.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),v.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),v.push(" discard;"),v.push("}"),v.push("IncidentLight light;"),v.push("Material material;"),v.push("Geometry geometry;"),v.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),v.push("vec3 viewLightDir;"),c&&(v.push("material.diffuseColor = diffuseColor;"),v.push("material.specularColor = specular;"),v.push("material.shine = materialShininess;")),p&&(v.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),v.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),v.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),v.push("material.specularColor = specular;")),f&&(v.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),v.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),v.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),v.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),v.push("geometry.position = vViewPosition;"),a.lightMaps.length>0&&v.push("geometry.worldNormal = normalize(vWorldNormal);"),v.push("geometry.viewNormal = viewNormal;"),v.push("geometry.viewEyeDir = viewEyeDir;"),c&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("computePhongLightMapping(geometry, material, reflectedLight);"),(p||f)&&(a.lightMaps.length>0||a.reflectionMaps.length>0)&&v.push("computePBRLightMapping(geometry, material, reflectedLight);"),v.push("float shadow = 1.0;"),v.push("float shadowAcneRemover = 0.007;"),v.push("vec3 fragmentDepth;"),v.push("float texelSize = 1.0 / 1024.0;"),v.push("float amountInLight = 0.0;"),v.push("vec3 shadowCoord;"),v.push("vec4 rgbaDepth;"),v.push("float depth;");for(var E=0,T=a.lights.length;E0)for(var v=r._sectionPlanesState.sectionPlanes,h=t.renderFlags,I=0;I0&&(this._uLightMap="lightMap"),i.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(c=0,f=a.sectionPlanes.length;c0&&a.lightMaps[0].texture&&this._uLightMap&&(o.bindTexture(this._uLightMap,a.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%n,e.bindTexture++),a.reflectionMaps.length>0&&a.reflectionMaps[0].texture&&this._uReflectionMap&&(o.bindTexture(this._uReflectionMap,a.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%n,e.bindTexture++),this._uGammaFactor&&i.uniform1f(this._uGammaFactor,r.gammaFactor),this._baseTextureUnit=e.textureUnit};var vi=P((function e(t){b(this,e),this.vertex=function(e){var t=e.scene,n=t._lightsState,r=function(e){var t=e._geometry._state.primitiveName;if((e._geometry._state.autoVertexNormals||e._geometry._state.normalsBuf)&&("triangles"===t||"triangle-strip"===t||"triangle-fan"===t))return!0;return!1}(e),i=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,a=!!e._geometry._state.compressGeometry,s=e._state.billboard,o=e._state.stationary,l=[];l.push("#version 300 es"),l.push("// EmphasisFillShaderSource vertex shader"),l.push("in vec3 position;"),l.push("uniform mat4 modelMatrix;"),l.push("uniform mat4 viewMatrix;"),l.push("uniform mat4 projMatrix;"),l.push("uniform vec4 colorize;"),l.push("uniform vec3 offset;"),a&&l.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(l.push("uniform float logDepthBufFC;"),l.push("out float vFragDepth;"),l.push("bool isPerspectiveMatrix(mat4 m) {"),l.push(" return (m[2][3] == - 1.0);"),l.push("}"),l.push("out float isPerspective;"));i&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),r){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.push("uniform mat4 viewNormalMatrix;");for(var u=0,c=n.lights.length;u= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"))}l.push("out vec4 vColor;"),("spherical"===s||"cylindrical"===s)&&(l.push("void billboard(inout mat4 mat) {"),l.push(" mat[0][0] = 1.0;"),l.push(" mat[0][1] = 0.0;"),l.push(" mat[0][2] = 0.0;"),"spherical"===s&&(l.push(" mat[1][0] = 0.0;"),l.push(" mat[1][1] = 1.0;"),l.push(" mat[1][2] = 0.0;")),l.push(" mat[2][0] = 0.0;"),l.push(" mat[2][1] = 0.0;"),l.push(" mat[2][2] =1.0;"),l.push("}"));l.push("void main(void) {"),l.push("vec4 localPosition = vec4(position, 1.0); "),l.push("vec4 worldPosition;"),a&&l.push("localPosition = positionsDecodeMatrix * localPosition;");r&&(a?l.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):l.push("vec4 localNormal = vec4(normal, 0.0); "),l.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),l.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));l.push("mat4 viewMatrix2 = viewMatrix;"),l.push("mat4 modelMatrix2 = modelMatrix;"),o&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===s||"cylindrical"===s?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),r&&(l.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),l.push("billboard(modelNormalMatrix2);"),l.push("billboard(viewNormalMatrix2);"),l.push("billboard(modelViewNormalMatrix);")),l.push("worldPosition = modelMatrix2 * localPosition;"),l.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(l.push("worldPosition = modelMatrix2 * localPosition;"),l.push("worldPosition.xyz = worldPosition.xyz + offset;"),l.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r&&l.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(l.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),l.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),l.push("float lambertian = 1.0;"),r)for(var p=0,A=n.lights.length;p0,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));r&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(var s=0,o=n.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}"points"===e._geometry._state.primitiveName&&(a.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),a.push("float r = dot(cxy, cxy);"),a.push("if (r > 1.0) {"),a.push(" discard;"),a.push("}"));t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");r?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(t)}));var hi=new G({}),Ii=$.vec3(),yi=function(e,t){this.id=hi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new vi(t),this._allocate(t)},mi={};yi.get=function(e){var t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.normalsBuf?"n":"",e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=mi[t];return n||(n=new yi(t,e),mi[t]=n,re.memory.programs++),n._useCount++,n},yi.prototype.put=function(){0==--this._useCount&&(hi.removeItem(this.id),this._program&&this._program.destroy(),delete mi[this._hash],re.memory.programs--)},yi.prototype.webglContextRestored=function(){this._program=null},yi.prototype.drawMesh=function(e,t,n){this._program||this._allocate(t);var r=this._scene,i=r.camera,a=r.canvas.gl,s=0===n?t._xrayMaterial._state:1===n?t._highlightMaterial._state:t._selectedMaterial._state,o=t._state,l=t._geometry._state,u=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),a.uniformMatrix4fv(this._uViewMatrix,!1,u?e.getRTCViewMatrix(o.originHash,u):i.viewMatrix),a.uniformMatrix4fv(this._uViewNormalMatrix,!1,i.viewNormalMatrix),o.clippable){var c=r._sectionPlanesState.getNumAllocatedSectionPlanes(),f=r._sectionPlanesState.sectionPlanes.length;if(c>0)for(var p=r._sectionPlanesState.sectionPlanes,A=t.renderFlags,d=0;d0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Edges drawing vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform vec4 edgeColor;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));n&&s.push("out vec4 vWorldPosition;");s.push("out vec4 vColor;"),("spherical"===i||"cylindrical"===i)&&(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"),s.push("billboard(modelViewMatrix);"),s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s.push("vColor = edgeColor;"),n&&s.push("vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = clipPos;"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=e.scene._sectionPlanesState,r=e.scene.gammaOutput,i=n.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Edges drawing fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),t.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;"));r&&(a.push("uniform float gammaFactor;"),a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}"));if(i){a.push("in vec4 vWorldPosition;"),a.push("uniform bool clippable;");for(var s=0,o=n.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),a.push("}")}t.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");r?a.push("outColor = linearToGamma(vColor, gammaFactor);"):a.push("outColor = vColor;");return a.push("}"),a}(t)}));var gi=new G({}),Ei=$.vec3(),Ti=function(e,t){this.id=gi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new wi(t),this._allocate(t)},bi={};Ti.get=function(e){var t=[e.scene.id,e.scene.gammaOutput?"go":"",e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=bi[t];return n||(n=new Ti(t,e),bi[t]=n,re.memory.programs++),n._useCount++,n},Ti.prototype.put=function(){0==--this._useCount&&(gi.removeItem(this.id),this._program&&this._program.destroy(),delete bi[this._hash],re.memory.programs--)},Ti.prototype.webglContextRestored=function(){this._program=null},Ti.prototype.drawMesh=function(e,t,n){this._program||this._allocate(t);var r,i,a=this._scene,s=a.camera,o=a.canvas.gl,l=t._state,u=t._geometry,c=u._state,f=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,f?e.getRTCViewMatrix(l.originHash,f):s.viewMatrix),l.clippable){var p=a._sectionPlanesState.getNumAllocatedSectionPlanes(),A=a._sectionPlanesState.sectionPlanes.length;if(p>0)for(var d=a._sectionPlanesState.sectionPlanes,v=t.renderFlags,h=0;h0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Mesh picking vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("out vec4 vViewPosition;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");n&&s.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("uniform vec2 pickClipPos;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy -= pickClipPos;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==i&&"cylindrical"!==i||(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"));s.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),n&&s.push(" vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(i.push("uniform vec4 pickColor;"),r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = pickColor; "),i.push("}"),i}(t)}));var Pi=$.vec3(),Ri=function(e,t){this._hash=e,this._shaderSource=new Di(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ci={};Ri.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";"),n=Ci[t];if(!n){if((n=new Ri(t,e)).errors)return console.log(n.errors.join("\n")),null;Ci[t]=n,re.memory.programs++}return n._useCount++,n},Ri.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ci[this._hash],re.memory.programs--)},Ri.prototype.webglContextRestored=function(){this._program=null},Ri.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._state,a=t._material._state,s=t._geometry._state,o=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCPickViewMatrix(i.originHash,o):e.pickViewMatrix),i.clippable){var l=n._sectionPlanesState.getNumAllocatedSectionPlanes(),u=n._sectionPlanesState.sectionPlanes.length;if(l>0)for(var c=n._sectionPlanesState.sectionPlanes,f=t.renderFlags,p=0;p>24&255,g=m>>16&255,E=m>>8&255,T=255&m;r.uniform4f(this._uPickColor,T/255,E/255,g/255,w/255),r.uniform2fv(this._uPickClipPos,e.pickClipPos),s.indicesBuf?(r.drawElements(s.primitive,s.indicesBuf.numItems,s.indicesBuf.itemType,0),e.drawElements++):s.positions&&r.drawArrays(r.TRIANGLES,0,s.positions.numItems)},Ri.prototype._allocate=function(e){var t=e.scene,n=t.canvas.gl;if(this._program=new bt(n,this._shaderSource),this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uPositionsDecodeMatrix=r.getLocation("positionsDecodeMatrix"),this._uModelMatrix=r.getLocation("modelMatrix"),this._uViewMatrix=r.getLocation("viewMatrix"),this._uProjMatrix=r.getLocation("projMatrix"),this._uSectionPlanes=[];for(var i=0,a=t._sectionPlanesState.sectionPlanes.length;i0,r=!!e._geometry._state.compressGeometry,i=[];i.push("#version 300 es"),i.push("// Surface picking vertex shader"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform vec3 offset;"),n&&(i.push("uniform bool clippable;"),i.push("out vec4 vWorldPosition;"));t.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out float isPerspective;"));i.push("uniform vec2 pickClipPos;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy -= pickClipPos;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("out vec4 vColor;"),r&&i.push("uniform mat4 positionsDecodeMatrix;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),r&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push(" vec4 worldPosition = modelMatrix * localPosition; "),i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),n&&i.push(" vWorldPosition = worldPosition;");i.push(" vColor = color;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Surface picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),i.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push(" outColor = vColor;"),i.push("}"),i}(t)}));var Bi=$.vec3(),Oi=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new _i(t),this._allocate(t)},Si={};Oi.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";"),n=Si[t];if(!n){if((n=new Oi(t,e)).errors)return console.log(n.errors.join("\n")),null;Si[t]=n,re.memory.programs++}return n._useCount++,n},Oi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Si[this._hash],re.memory.programs--)},Oi.prototype.webglContextRestored=function(){this._program=null},Oi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._state,a=t._material._state,s=t._geometry,o=t._geometry._state,l=t.origin,u=a.backfaces,c=a.frontface,f=n.camera.project,p=s._getPickTrianglePositions(),A=s._getPickTriangleColors();if(this._program.bind(),e.useProgram++,n.logarithmicDepthBufferEnabled){var d=2/(Math.log(f.far+1)/Math.LN2);r.uniform1f(this._uLogDepthBufFC,d)}if(r.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(i.originHash,l):e.pickViewMatrix),i.clippable){var v=n._sectionPlanesState.getNumAllocatedSectionPlanes(),h=n._sectionPlanesState.sectionPlanes.length;if(v>0)for(var I=n._sectionPlanesState.sectionPlanes,y=t.renderFlags,m=0;m0,r=!!e._geometry._state.compressGeometry,i=e._state.billboard,a=e._state.stationary,s=[];s.push("#version 300 es"),s.push("// Mesh occlusion vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform vec3 offset;"),r&&s.push("uniform mat4 positionsDecodeMatrix;");n&&s.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));"spherical"!==i&&"cylindrical"!==i||(s.push("void billboard(inout mat4 mat) {"),s.push(" mat[0][0] = 1.0;"),s.push(" mat[0][1] = 0.0;"),s.push(" mat[0][2] = 0.0;"),"spherical"===i&&(s.push(" mat[1][0] = 0.0;"),s.push(" mat[1][1] = 1.0;"),s.push(" mat[1][2] = 0.0;")),s.push(" mat[2][0] = 0.0;"),s.push(" mat[2][1] = 0.0;"),s.push(" mat[2][2] =1.0;"),s.push("}"));s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),r&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("mat4 viewMatrix2 = viewMatrix;"),s.push("mat4 modelMatrix2 = modelMatrix;"),a&&s.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===i||"cylindrical"===i?(s.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),s.push("billboard(modelMatrix2);"),s.push("billboard(viewMatrix2);"),s.push("billboard(modelViewMatrix);"),s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(s.push("worldPosition = modelMatrix2 * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n&&s.push(" vWorldPosition = worldPosition;");s.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = clipPos;"),s.push("}"),s}(t),this.fragment=function(e){var t=e.scene,n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];i.push("#version 300 es"),i.push("// Mesh occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),t.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"));if(r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return i.push("}"),i}(t)}));var Li=$.vec3(),Mi=function(e,t){this._hash=e,this._shaderSource=new Ni(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},xi={};Mi.get=function(e){var t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";"),n=xi[t];if(!n){if((n=new Mi(t,e)).errors)return console.log(n.errors.join("\n")),null;xi[t]=n,re.memory.programs++}return n._useCount++,n},Mi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete xi[this._hash],re.memory.programs--)},Mi.prototype.webglContextRestored=function(){this._program=null},Mi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene,r=n.canvas.gl,i=t._material._state,a=t._state,s=t._geometry._state,o=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.id!==this._lastMaterialId){var l=i.backfaces;e.backfaces!==l&&(l?r.disable(r.CULL_FACE):r.enable(r.CULL_FACE),e.backfaces=l);var u=i.frontface;e.frontface!==u&&(u?r.frontFace(r.CCW):r.frontFace(r.CW),e.frontface=u),this._lastMaterialId=i.id}var c=n.camera;if(r.uniformMatrix4fv(this._uViewMatrix,!1,o?e.getRTCViewMatrix(a.originHash,o):c.viewMatrix),a.clippable){var f=n._sectionPlanesState.getNumAllocatedSectionPlanes(),p=n._sectionPlanesState.sectionPlanes.length;if(f>0)for(var A=n._sectionPlanesState.sectionPlanes,d=t.renderFlags,v=0;v0,n=!!e._geometry._state.compressGeometry,r=[];r.push("// Mesh shadow vertex shader"),r.push("in vec3 position;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 shadowViewMatrix;"),r.push("uniform mat4 shadowProjMatrix;"),r.push("uniform vec3 offset;"),n&&r.push("uniform mat4 positionsDecodeMatrix;");t&&r.push("out vec4 vWorldPosition;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),r.push("vec4 worldPosition;"),n&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push("worldPosition = modelMatrix * localPosition;"),r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&r.push("vWorldPosition = worldPosition;");return r.push(" gl_Position = shadowProjMatrix * viewPosition;"),r.push("}"),r}(t),this.fragment=function(e){var t=e.scene;t.canvas.gl;var n=t._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("// Mesh shadow fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),r){i.push("uniform bool clippable;"),i.push("in vec4 vWorldPosition;");for(var a=0;a 0.0) { discard; }"),i.push("}")}return i.push("outColor = encodeFloat(gl_FragCoord.z);"),i.push("}"),i}(t)}));var Hi=function(e,t){this._hash=e,this._shaderSource=new Fi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ui={};Hi.get=function(e){var t=e.scene,n=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";"),r=Ui[n];if(!r){if((r=new Hi(n,e)).errors)return console.log(r.errors.join("\n")),null;Ui[n]=r,re.memory.programs++}return r._useCount++,r},Hi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ui[this._hash],re.memory.programs--)},Hi.prototype.webglContextRestored=function(){this._program=null},Hi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);var n=this._scene.canvas.gl,r=t._material._state,i=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){var a=r.backfaces;e.backfaces!==a&&(a?n.disable(n.CULL_FACE):n.enable(n.CULL_FACE),e.backfaces=a);var s=r.frontface;e.frontface!==s&&(s?n.frontFace(n.CCW):n.frontFace(n.CW),e.frontface=s),e.lineWidth!==r.lineWidth&&(n.lineWidth(r.lineWidth),e.lineWidth=r.lineWidth),this._uPointSize&&n.uniform1i(this._uPointSize,r.pointSize),this._lastMaterialId=r.id}if(n.uniformMatrix4fv(this._uModelMatrix,n.FALSE,t.worldMatrix),i.combineGeometry){var o=t.vertexBufs;o.id!==this._lastVertexBufsId&&(o.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(o.positionsBuf,o.compressGeometry?n.UNSIGNED_SHORT:n.FLOAT),e.bindArray++),this._lastVertexBufsId=o.id)}this._uClippable&&n.uniform1i(this._uClippable,t._state.clippable),n.uniform3fv(this._uOffset,t._state.offset),i.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&n.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,i.positionsDecodeMatrix),i.combineGeometry?i.indicesBufCombined&&(i.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?n.UNSIGNED_SHORT:n.FLOAT),e.bindArray++),i.indicesBuf&&(i.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=i.id),i.combineGeometry?i.indicesBufCombined&&(n.drawElements(i.primitive,i.indicesBufCombined.numItems,i.indicesBufCombined.itemType,0),e.drawElements++):i.indicesBuf?(n.drawElements(i.primitive,i.indicesBuf.numItems,i.indicesBuf.itemType,0),e.drawElements++):i.positions&&(n.drawArrays(n.TRIANGLES,0,i.positions.numItems),e.drawArrays++)},Hi.prototype._allocate=function(e){var t=e.scene,n=t.canvas.gl;if(this._program=new bt(n,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)this.errors=this._program.errors;else{var r=this._program;this._uPositionsDecodeMatrix=r.getLocation("positionsDecodeMatrix"),this._uModelMatrix=r.getLocation("modelMatrix"),this._uShadowViewMatrix=r.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=r.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(var i=0,a=t._sectionPlanesState.sectionPlanes.length;i0)for(var i,a,s,o=0,l=this._uSectionPlanes.length;o1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i)).originalSystemId=i.originalSystemId||r.id,r.renderFlags=new Gi,r._state=new Wt({visible:!0,culled:!1,pickable:null,clippable:null,collidable:null,occluder:!1!==i.occluder,castsShadow:null,receivesShadow:null,xrayed:!1,highlighted:!1,selected:!1,edges:!1,stationary:!!i.stationary,background:!!i.background,billboard:r._checkBillboard(i.billboard),layer:null,colorize:null,pickID:r.scene._renderer.getPickID(g(r)),drawHash:"",pickHash:"",offset:$.vec3(),origin:null,originHash:null}),r._drawRenderer=null,r._shadowRenderer=null,r._emphasisFillRenderer=null,r._emphasisEdgesRenderer=null,r._pickMeshRenderer=null,r._pickTriangleRenderer=null,r._occlusionRenderer=null,r._geometry=i.geometry?r._checkComponent2(["ReadableGeometry","VBOGeometry"],i.geometry):r.scene.geometry,r._material=i.material?r._checkComponent2(["PhongMaterial","MetallicMaterial","SpecularMaterial","LambertMaterial"],i.material):r.scene.material,r._xrayMaterial=i.xrayMaterial?r._checkComponent("EmphasisMaterial",i.xrayMaterial):r.scene.xrayMaterial,r._highlightMaterial=i.highlightMaterial?r._checkComponent("EmphasisMaterial",i.highlightMaterial):r.scene.highlightMaterial,r._selectedMaterial=i.selectedMaterial?r._checkComponent("EmphasisMaterial",i.selectedMaterial):r.scene.selectedMaterial,r._edgeMaterial=i.edgeMaterial?r._checkComponent("EdgeMaterial",i.edgeMaterial):r.scene.edgeMaterial,r._parentNode=null,r._aabb=null,r._aabbDirty=!0,r._numTriangles=r._geometry?r._geometry.numTriangles:0,r.scene._aabbDirty=!0,r._scale=$.vec3(),r._quaternion=$.identityQuaternion(),r._rotation=$.vec3(),r._position=$.vec3(),r._worldMatrix=$.identityMat4(),r._worldNormalMatrix=$.identityMat4(),r._localMatrixDirty=!0,r._worldMatrixDirty=!0,r._worldNormalMatrixDirty=!0;var a=i.origin||i.rtcCenter;if(a&&(r._state.origin=$.vec3(a),r._state.originHash=a.join()),i.matrix?r.matrix=i.matrix:(r.scale=i.scale,r.position=i.position,i.quaternion||(r.rotation=i.rotation)),r._isObject=i.isObject,r._isObject&&r.scene._registerObject(g(r)),r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.layer=i.layer,r.colorize=i.colorize,r.opacity=i.opacity,r.offset=i.offset,i.parentId){var s=r.scene.components[i.parentId];s?s.isNode?s.addChild(g(r)):r.error("Parent is not a Node: '"+i.parentId+"'"):r.error("Parent not found: '"+i.parentId+"'"),r._parentNode=s}else i.parent&&(i.parent.isNode||r.error("Parent is not a Node"),i.parent.addChild(g(r)),r._parentNode=i.parent);return r.compile(),r}return P(n,[{key:"type",get:function(){return"Mesh"}},{key:"isMesh",get:function(){return!0}},{key:"parent",get:function(){return this._parentNode}},{key:"geometry",get:function(){return this._geometry}},{key:"material",get:function(){return this._material}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"matrix",get:function(){return this._localMatrixDirty&&(this.__localMatrix||(this.__localMatrix=$.identityMat4()),$.composeMat4(this._position,this._quaternion,this._scale,this.__localMatrix),this._localMatrixDirty=!1),this.__localMatrix},set:function(e){this.__localMatrix||(this.__localMatrix=$.identityMat4()),this.__localMatrix.set(e||qi),$.decomposeMat4(this.__localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._setWorldMatrixDirty(),this._setAABBDirty(),this.glRedraw()}},{key:"worldMatrix",get:function(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}},{key:"worldNormalMatrix",get:function(){return this._worldNormalMatrixDirty&&this._buildWorldNormalMatrix(),this._worldNormalMatrix}},{key:"isEntity",get:function(){return!0}},{key:"isModel",get:function(){return this._isModel}},{key:"isObject",get:function(){return this._isObject}},{key:"aabb",get:function(){return this._aabbDirty&&this._updateAABB(),this._aabb}},{key:"origin",get:function(){return this._state.origin},set:function(e){e?(this._state.origin||(this._state.origin=$.vec3()),this._state.origin.set(e),this._state.originHash=e.join(),this._setAABBDirty(),this.scene._aabbDirty=!0):this._state.origin&&(this._state.origin=null,this._state.originHash=null,this._setAABBDirty(),this.scene._aabbDirty=!0)}},{key:"rtcCenter",get:function(){return this.origin},set:function(e){this.origin=e}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"visible",get:function(){return this._state.visible},set:function(e){e=!1!==e,this._state.visible=e,this._isObject&&this.scene._objectVisibilityUpdated(this,e),this.glRedraw()}},{key:"xrayed",get:function(){return this._state.xrayed},set:function(e){e=!!e,this._state.xrayed!==e&&(this._state.xrayed=e,this._isObject&&this.scene._objectXRayedUpdated(this,e),this.glRedraw())}},{key:"highlighted",get:function(){return this._state.highlighted},set:function(e){(e=!!e)!==this._state.highlighted&&(this._state.highlighted=e,this._isObject&&this.scene._objectHighlightedUpdated(this,e),this.glRedraw())}},{key:"selected",get:function(){return this._state.selected},set:function(e){(e=!!e)!==this._state.selected&&(this._state.selected=e,this._isObject&&this.scene._objectSelectedUpdated(this,e),this.glRedraw())}},{key:"edges",get:function(){return this._state.edges},set:function(e){(e=!!e)!==this._state.edges&&(this._state.edges=e,this.glRedraw())}},{key:"culled",get:function(){return this._state.culled},set:function(e){this._state.culled=!!e,this.glRedraw()}},{key:"clippable",get:function(){return this._state.clippable},set:function(e){e=!1!==e,this._state.clippable!==e&&(this._state.clippable=e,this.glRedraw())}},{key:"collidable",get:function(){return this._state.collidable},set:function(e){(e=!1!==e)!==this._state.collidable&&(this._state.collidable=e,this._setAABBDirty(),this.scene._aabbDirty=!0)}},{key:"pickable",get:function(){return this._state.pickable},set:function(e){e=!1!==e,this._state.pickable!==e&&(this._state.pickable=e)}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){(e=!1!==e)!==this._state.castsShadow&&(this._state.castsShadow=e,this.glRedraw())}},{key:"receivesShadow",get:function(){return this._state.receivesShadow},set:function(e){(e=!1!==e)!==this._state.receivesShadow&&(this._state.receivesShadow=e,this._state.hash=e?"/mod/rs;":"/mod;",this.fire("dirty",this))}},{key:"saoEnabled",get:function(){return!1}},{key:"colorize",get:function(){return this._state.colorize},set:function(e){var t=this._state.colorize;t||((t=this._state.colorize=new Float32Array(4))[3]=1),e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1);var n=!!e;this.scene._objectColorizeUpdated(this,n),this.glRedraw()}},{key:"opacity",get:function(){return this._state.colorize[3]},set:function(e){var t=this._state.colorize;t||((t=this._state.colorize=new Float32Array(4))[0]=1,t[1]=1,t[2]=1);var n=null!=e;t[3]=n?e:1,this.scene._objectOpacityUpdated(this,n),this.glRedraw()}},{key:"transparent",get:function(){return 2===this._material.alphaMode||this._state.colorize[3]<1}},{key:"layer",get:function(){return this._state.layer},set:function(e){e=e||0,(e=Math.round(e))!==this._state.layer&&(this._state.layer=e,this._renderer.needStateSort())}},{key:"stationary",get:function(){return this._state.stationary}},{key:"billboard",get:function(){return this._state.billboard}},{key:"offset",get:function(){return this._state.offset},set:function(e){this._state.offset.set(e||[0,0,0]),this._setAABBDirty(),this.glRedraw()}},{key:"isDrawable",get:function(){return!0}},{key:"isStateSortable",get:function(){return!0}},{key:"xrayMaterial",get:function(){return this._xrayMaterial}},{key:"highlightMaterial",get:function(){return this._highlightMaterial}},{key:"selectedMaterial",get:function(){return this._selectedMaterial}},{key:"edgeMaterial",get:function(){return this._edgeMaterial}},{key:"_checkBillboard",value:function(e){return"spherical"!==(e=e||"none")&&"cylindrical"!==e&&"none"!==e&&(this.error("Unsupported value for 'billboard': "+e+" - accepted values are 'spherical', 'cylindrical' and 'none' - defaulting to 'none'."),e="none"),e}},{key:"compile",value:function(){var e=this._makeDrawHash();this._state.drawHash!==e&&(this._state.drawHash=e,this._putDrawRenderers(),this._drawRenderer=Ai.get(this),this._emphasisFillRenderer=yi.get(this),this._emphasisEdgesRenderer=Ti.get(this));var t=this._makePickHash();if(this._state.pickHash!==t&&(this._state.pickHash=t,this._putPickRenderers(),this._pickMeshRenderer=Ri.get(this)),this._state.occluder){var n=this._makeOcclusionHash();this._state.occlusionHash!==n&&(this._state.occlusionHash=n,this._putOcclusionRenderer(),this._occlusionRenderer=Mi.get(this))}}},{key:"_setLocalMatrixDirty",value:function(){this._localMatrixDirty=!0,this._setWorldMatrixDirty()}},{key:"_setWorldMatrixDirty",value:function(){this._worldMatrixDirty=!0,this._worldNormalMatrixDirty=!0}},{key:"_buildWorldMatrix",value:function(){var e=this.matrix;if(this._parentNode)$.mulMat4(this._parentNode.worldMatrix,e,this._worldMatrix);else for(var t=0,n=e.length;t0)for(var n=0;n-1){var M=B.geometry._state,x=B.scene,F=x.camera,H=x.canvas;if("triangles"===M.primitiveName){N.primitive="triangle";var U,G,k,j=L,V=M.indices,Q=M.positions;if(V){var W=V[j+0],z=V[j+1],K=V[j+2];a[0]=W,a[1]=z,a[2]=K,N.indices=a,U=3*W,G=3*z,k=3*K}else k=(G=(U=3*j)+3)+3;if(n[0]=Q[U+0],n[1]=Q[U+1],n[2]=Q[U+2],r[0]=Q[G+0],r[1]=Q[G+1],r[2]=Q[G+2],i[0]=Q[k+0],i[1]=Q[k+1],i[2]=Q[k+2],M.compressGeometry){var Y=M.positionsDecodeMatrix;Y&&(Dn.decompressPosition(n,Y,n),Dn.decompressPosition(r,Y,r),Dn.decompressPosition(i,Y,i))}N.canvasPos?$.canvasPosToLocalRay(H.canvas,B.origin?Be(O,B.origin):O,S,B.worldMatrix,N.canvasPos,e,t):N.origin&&N.direction&&$.worldRayToLocalRay(B.worldMatrix,N.origin,N.direction,e,t),$.normalizeVec3(t),$.rayPlaneIntersect(e,t,n,r,i,s),N.localPos=s,N.position=s,h[0]=s[0],h[1]=s[1],h[2]=s[2],h[3]=1,$.transformVec4(B.worldMatrix,h,I),o[0]=I[0],o[1]=I[1],o[2]=I[2],N.canvasPos&&B.origin&&(o[0]+=B.origin[0],o[1]+=B.origin[1],o[2]+=B.origin[2]),N.worldPos=o,$.transformVec4(F.matrix,I,y),l[0]=y[0],l[1]=y[1],l[2]=y[2],N.viewPos=l,$.cartesianToBarycentric(s,n,r,i,u),N.bary=u;var X=M.normals;if(X){if(M.compressGeometry){var q=3*W,J=3*z,Z=3*K;Dn.decompressNormal(X.subarray(q,q+2),c),Dn.decompressNormal(X.subarray(J,J+2),f),Dn.decompressNormal(X.subarray(Z,Z+2),p)}else c[0]=X[U],c[1]=X[U+1],c[2]=X[U+2],f[0]=X[G],f[1]=X[G+1],f[2]=X[G+2],p[0]=X[k],p[1]=X[k+1],p[2]=X[k+2];var ee=$.addVec3($.addVec3($.mulVec3Scalar(c,u[0],m),$.mulVec3Scalar(f,u[1],w),g),$.mulVec3Scalar(p,u[2],E),T);N.worldNormal=$.normalizeVec3($.transformVec3(B.worldNormalMatrix,ee,b))}var te=M.uv;if(te){if(A[0]=te[2*W],A[1]=te[2*W+1],d[0]=te[2*z],d[1]=te[2*z+1],v[0]=te[2*K],v[1]=te[2*K+1],M.compressGeometry){var ne=M.uvDecodeMatrix;ne&&(Dn.decompressUV(A,ne,A),Dn.decompressUV(d,ne,d),Dn.decompressUV(v,ne,v))}N.uv=$.addVec3($.addVec3($.mulVec2Scalar(A,u[0],D),$.mulVec2Scalar(d,u[1],P),R),$.mulVec2Scalar(v,u[2],C),_)}}}}}();function $i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);var n=e.radiusBottom||1;n<0&&(console.error("negative radiusBottom not allowed - will invert"),n*=-1);var r=e.height||1;r<0&&(console.error("negative height not allowed - will invert"),r*=-1);var i=e.radialSegments||32;i<0&&(console.error("negative radialSegments not allowed - will invert"),i*=-1),i<3&&(i=3);var a=e.heightSegments||1;a<0&&(console.error("negative heightSegments not allowed - will invert"),a*=-1),a<1&&(a=1);var s,o,l,u,c,f,p,A,d,v,h,I=!!e.openEnded,y=e.center,m=y?y[0]:0,w=y?y[1]:0,g=y?y[2]:0,E=r/2,T=r/a,b=2*Math.PI/i,D=1/i,P=(t-n)/a,R=[],C=[],_=[],B=[],O=(90-180*Math.atan(r/(n-t))/Math.PI)/90;for(s=0;s<=a;s++)for(c=t-s*P,f=E-s*T,o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),C.push(c*l),C.push(O),C.push(c*u),_.push(o*D),_.push(1*s/a),R.push(c*l+m),R.push(f+w),R.push(c*u+g);for(s=0;s0){for(d=R.length/3,C.push(0),C.push(1),C.push(0),_.push(.5),_.push(.5),R.push(0+m),R.push(E+w),R.push(0+g),o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),v=.5*Math.sin(o*b)+.5,h=.5*Math.cos(o*b)+.5,C.push(t*l),C.push(1),C.push(t*u),_.push(v),_.push(h),R.push(t*l+m),R.push(E+w),R.push(t*u+g);for(o=0;o0){for(d=R.length/3,C.push(0),C.push(-1),C.push(0),_.push(.5),_.push(.5),R.push(0+m),R.push(0-E+w),R.push(0+g),o=0;o<=i;o++)l=Math.sin(o*b),u=Math.cos(o*b),v=.5*Math.sin(o*b)+.5,h=.5*Math.cos(o*b)+.5,C.push(n*l),C.push(-1),C.push(n*u),_.push(v),_.push(h),R.push(n*l+m),R.push(0-E+w),R.push(n*u+g);for(o=0;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.lod||1,n=e.center?e.center[0]:0,r=e.center?e.center[1]:0,i=e.center?e.center[2]:0,a=e.radius||1;a<0&&(console.error("negative radius not allowed - will invert"),a*=-1);var s=e.heightSegments||18;s<0&&(console.error("negative heightSegments not allowed - will invert"),s*=-1),(s=Math.floor(t*s))<18&&(s=18);var o=e.widthSegments||18;o<0&&(console.error("negative widthSegments not allowed - will invert"),o*=-1),(o=Math.floor(t*o))<18&&(o=18);var l,u,c,f,p,A,d,v,h,I,y,m,w,g,E=[],T=[],b=[],D=[];for(l=0;l<=s;l++)for(c=l*Math.PI/s,f=Math.sin(c),p=Math.cos(c),u=0;u<=o;u++)A=2*u*Math.PI/o,d=Math.sin(A),v=Math.cos(A)*f,h=p,I=d*f,y=1-u/o,m=l/s,T.push(v),T.push(h),T.push(I),b.push(y),b.push(m),E.push(n+a*v),E.push(r+a*h),E.push(i+a*I);for(l=0;l":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function na(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.origin||[0,0,0],n=t[0],r=t[1],i=t[2],a=e.size||1,s=[],o=[],l=e.text;le.isNumeric(l)&&(l=""+l);for(var u,c,f,p,A,d,v,h,I,y=(l||"").split("\n"),m=0,w=0,g=.04,E=0;E1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({active:!0,pos:$.vec3(),dir:$.vec3(),dist:0}),r.active=i.active,r.pos=i.pos,r.dir=i.dir,r.scene._sectionPlaneCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"SectionPlane"}},{key:"active",get:function(){return this._state.active},set:function(e){this._state.active=!1!==e,this.glRedraw(),this.fire("active",this._state.active)}},{key:"pos",get:function(){return this._state.pos},set:function(e){this._state.pos.set(e||[0,0,0]),this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.fire("pos",this._state.pos),this.scene.fire("sectionPlaneUpdated",this)}},{key:"dir",get:function(){return this._state.dir},set:function(e){this._state.dir.set(e||[0,0,-1]),this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.glRedraw(),this.fire("dir",this._state.dir),this.scene.fire("sectionPlaneUpdated",this)}},{key:"dist",get:function(){return this._state.dist}},{key:"flipDir",value:function(){var e=this._state.dir;e[0]*=-1,e[1]*=-1,e[2]*=-1,this._state.dist=-$.dotVec3(this._state.pos,this._state.dir),this.fire("dir",this._state.dir),this.glRedraw()}},{key:"destroy",value:function(){this._state.destroy(),this.scene._sectionPlaneDestroyed(this),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),aa=$.vec4(4),sa=$.vec4(),oa=$.vec4(),la=$.vec3([1,0,0]),ua=$.vec3([0,1,0]),ca=$.vec3([0,0,1]),fa=$.vec3(3),pa=$.vec3(3),Aa=$.identityMat4(),da=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e,i))._parentNode=null,r._children=[],r._aabb=null,r._aabbDirty=!0,r.scene._aabbDirty=!0,r._numTriangles=0,r._scale=$.vec3(),r._quaternion=$.identityQuaternion(),r._rotation=$.vec3(),r._position=$.vec3(),r._offset=$.vec3(),r._localMatrix=$.identityMat4(),r._worldMatrix=$.identityMat4(),r._localMatrixDirty=!0,r._worldMatrixDirty=!0,i.matrix?r.matrix=i.matrix:(r.scale=i.scale,r.position=i.position,i.quaternion||(r.rotation=i.rotation)),r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r._isObject=i.isObject,r._isObject&&r.scene._registerObject(g(r)),r.origin=i.origin,r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.colorize=i.colorize,r.opacity=i.opacity,r.offset=i.offset,i.children)for(var a=i.children,s=0,o=a.length;s1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"LambertMaterial",ambient:$.vec3([1,1,1]),color:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),alpha:null,alphaMode:0,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:"/lam;"}),r.ambient=i.ambient,r.color=i.color,r.emissive=i.emissive,r.alpha=i.alpha,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r.backfaces=i.backfaces,r.frontface=i.frontface,r}return P(n,[{key:"type",get:function(){return"LambertMaterial"}},{key:"ambient",get:function(){return this._state.ambient},set:function(e){var t=this._state.ambient;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.ambient=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=.2,t[1]=.2,t[2]=.2),this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){var t=this._state.color;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.color=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this._state.alphaMode=e<1?2:0,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),ha={opaque:0,mask:1,blend:2},Ia=["opaque","mask","blend"],ya=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"MetallicMaterial",baseColor:$.vec4([1,1,1]),emissive:$.vec4([0,0,0]),metallic:null,roughness:null,specularF0:null,alpha:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.baseColor=i.baseColor,r.metallic=i.metallic,r.roughness=i.roughness,r.specularF0=i.specularF0,r.emissive=i.emissive,r.alpha=i.alpha,i.baseColorMap&&(r._baseColorMap=r._checkComponent("Texture",i.baseColorMap)),i.metallicMap&&(r._metallicMap=r._checkComponent("Texture",i.metallicMap)),i.roughnessMap&&(r._roughnessMap=r._checkComponent("Texture",i.roughnessMap)),i.metallicRoughnessMap&&(r._metallicRoughnessMap=r._checkComponent("Texture",i.metallicRoughnessMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"MetallicMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/met"];this._baseColorMap&&(t.push("/bm"),this._baseColorMap._state.hasMatrix&&t.push("/mat"),t.push("/"+this._baseColorMap._state.encoding)),this._metallicMap&&(t.push("/mm"),this._metallicMap._state.hasMatrix&&t.push("/mat")),this._roughnessMap&&(t.push("/rm"),this._roughnessMap._state.hasMatrix&&t.push("/mat")),this._metallicRoughnessMap&&(t.push("/mrm"),this._metallicRoughnessMap._state.hasMatrix&&t.push("/mat")),this._emissiveMap&&(t.push("/em"),this._emissiveMap._state.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap._state.hasMatrix&&t.push("/mat")),this._alphaMap&&(t.push("/am"),this._alphaMap._state.hasMatrix&&t.push("/mat")),this._normalMap&&(t.push("/nm"),this._normalMap._state.hasMatrix&&t.push("/mat")),t.push(";"),e.hash=t.join("")}},{key:"baseColor",get:function(){return this._state.baseColor},set:function(e){var t=this._state.baseColor;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.baseColor=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"baseColorMap",get:function(){return this._baseColorMap}},{key:"metallic",get:function(){return this._state.metallic},set:function(e){e=null!=e?e:1,this._state.metallic!==e&&(this._state.metallic=e,this.glRedraw())}},{key:"metallicMap",get:function(){return this._attached.metallicMap}},{key:"roughness",get:function(){return this._state.roughness},set:function(e){e=null!=e?e:1,this._state.roughness!==e&&(this._state.roughness=e,this.glRedraw())}},{key:"roughnessMap",get:function(){return this._attached.roughnessMap}},{key:"metallicRoughnessMap",get:function(){return this._attached.metallicRoughnessMap}},{key:"specularF0",get:function(){return this._state.specularF0},set:function(e){e=null!=e?e:0,this._state.specularF0!==e&&(this._state.specularF0=e,this.glRedraw())}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"emissiveMap",get:function(){return this._attached.emissiveMap}},{key:"occlusionMap",get:function(){return this._attached.occlusionMap}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"alphaMap",get:function(){return this._attached.alphaMap}},{key:"normalMap",get:function(){return this._attached.normalMap}},{key:"alphaMode",get:function(){return Ia[this._state.alphaMode]},set:function(e){var t=ha[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),ma={opaque:0,mask:1,blend:2},wa=["opaque","mask","blend"],ga=function(e){I(n,Bn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({type:"SpecularMaterial",diffuse:$.vec3([1,1,1]),emissive:$.vec3([0,0,0]),specular:$.vec3([1,1,1]),glossiness:null,specularF0:null,alpha:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),r.diffuse=i.diffuse,r.specular=i.specular,r.glossiness=i.glossiness,r.specularF0=i.specularF0,r.emissive=i.emissive,r.alpha=i.alpha,i.diffuseMap&&(r._diffuseMap=r._checkComponent("Texture",i.diffuseMap)),i.emissiveMap&&(r._emissiveMap=r._checkComponent("Texture",i.emissiveMap)),i.specularMap&&(r._specularMap=r._checkComponent("Texture",i.specularMap)),i.glossinessMap&&(r._glossinessMap=r._checkComponent("Texture",i.glossinessMap)),i.specularGlossinessMap&&(r._specularGlossinessMap=r._checkComponent("Texture",i.specularGlossinessMap)),i.occlusionMap&&(r._occlusionMap=r._checkComponent("Texture",i.occlusionMap)),i.alphaMap&&(r._alphaMap=r._checkComponent("Texture",i.alphaMap)),i.normalMap&&(r._normalMap=r._checkComponent("Texture",i.normalMap)),r.alphaMode=i.alphaMode,r.alphaCutoff=i.alphaCutoff,r.backfaces=i.backfaces,r.frontface=i.frontface,r.lineWidth=i.lineWidth,r.pointSize=i.pointSize,r._makeHash(),r}return P(n,[{key:"type",get:function(){return"SpecularMaterial"}},{key:"_makeHash",value:function(){var e=this._state,t=["/spe"];this._diffuseMap&&(t.push("/dm"),this._diffuseMap.hasMatrix&&t.push("/mat"),t.push("/"+this._diffuseMap.encoding)),this._emissiveMap&&(t.push("/em"),this._emissiveMap.hasMatrix&&t.push("/mat")),this._glossinessMap&&(t.push("/gm"),this._glossinessMap.hasMatrix&&t.push("/mat")),this._specularMap&&(t.push("/sm"),this._specularMap.hasMatrix&&t.push("/mat")),this._specularGlossinessMap&&(t.push("/sgm"),this._specularGlossinessMap.hasMatrix&&t.push("/mat")),this._occlusionMap&&(t.push("/ocm"),this._occlusionMap.hasMatrix&&t.push("/mat")),this._normalMap&&(t.push("/nm"),this._normalMap.hasMatrix&&t.push("/mat")),this._alphaMap&&(t.push("/opm"),this._alphaMap.hasMatrix&&t.push("/mat")),t.push(";"),e.hash=t.join("")}},{key:"diffuse",get:function(){return this._state.diffuse},set:function(e){var t=this._state.diffuse;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.diffuse=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"diffuseMap",get:function(){return this._diffuseMap}},{key:"specular",get:function(){return this._state.specular},set:function(e){var t=this._state.specular;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.specular=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=1,t[1]=1,t[2]=1),this.glRedraw()}},{key:"specularMap",get:function(){return this._specularMap}},{key:"specularGlossinessMap",get:function(){return this._specularGlossinessMap}},{key:"glossiness",get:function(){return this._state.glossiness},set:function(e){e=null!=e?e:1,this._state.glossiness!==e&&(this._state.glossiness=e,this.glRedraw())}},{key:"glossinessMap",get:function(){return this._glossinessMap}},{key:"specularF0",get:function(){return this._state.specularF0},set:function(e){e=null!=e?e:0,this._state.specularF0!==e&&(this._state.specularF0=e,this.glRedraw())}},{key:"emissive",get:function(){return this._state.emissive},set:function(e){var t=this._state.emissive;if(t){if(e&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return}else t=this._state.emissive=new Float32Array(3);e?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=0,t[1]=0,t[2]=0),this.glRedraw()}},{key:"emissiveMap",get:function(){return this._emissiveMap}},{key:"alpha",get:function(){return this._state.alpha},set:function(e){e=null!=e?e:1,this._state.alpha!==e&&(this._state.alpha=e,this.glRedraw())}},{key:"alphaMap",get:function(){return this._alphaMap}},{key:"normalMap",get:function(){return this._normalMap}},{key:"occlusionMap",get:function(){return this._occlusionMap}},{key:"alphaMode",get:function(){return wa[this._state.alphaMode]},set:function(e){var t=ma[e=e||"opaque"];void 0===t&&(this.error("Unsupported value for 'alphaMode': "+e+" defaulting to 'opaque'"),t="opaque"),this._state.alphaMode!==t&&(this._state.alphaMode=t,this.glRedraw())}},{key:"alphaCutoff",get:function(){return this._state.alphaCutoff},set:function(e){null==e&&(e=.5),this._state.alphaCutoff!==e&&(this._state.alphaCutoff=e)}},{key:"backfaces",get:function(){return this._state.backfaces},set:function(e){e=!!e,this._state.backfaces!==e&&(this._state.backfaces=e,this.glRedraw())}},{key:"frontface",get:function(){return this._state.frontface?"ccw":"cw"},set:function(e){e="cw"!==e,this._state.frontface!==e&&(this._state.frontface=e,this.glRedraw())}},{key:"lineWidth",get:function(){return this._state.lineWidth},set:function(e){this._state.lineWidth=e||1,this.glRedraw()}},{key:"pointSize",get:function(){return this._state.pointSize},set:function(e){this._state.pointSize=e||1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}();function Ea(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t;if(1009===i)return e.UNSIGNED_BYTE;if(1017===i)return e.UNSIGNED_SHORT_4_4_4_4;if(1018===i)return e.UNSIGNED_SHORT_5_5_5_1;if(1010===i)return e.BYTE;if(1011===i)return e.SHORT;if(1012===i)return e.UNSIGNED_SHORT;if(1013===i)return e.INT;if(1014===i)return e.UNSIGNED_INT;if(1015===i)return e.FLOAT;if(1016===i)return e.HALF_FLOAT;if(1021===i)return e.ALPHA;if(1023===i)return e.RGBA;if(1024===i)return e.LUMINANCE;if(1025===i)return e.LUMINANCE_ALPHA;if(1026===i)return e.DEPTH_COMPONENT;if(1027===i)return e.DEPTH_STENCIL;if(1028===i)return e.RED;if(1022===i)return e.RGBA;if(1029===i)return e.RED_INTEGER;if(1030===i)return e.RG;if(1031===i)return e.RG_INTEGER;if(1033===i)return e.RGBA_INTEGER;if(33776===i||33777===i||33778===i||33779===i)if(3001===r){var a=kt(e,"WEBGL_compressed_texture_s3tc_srgb");if(null===a)return null;if(33776===i)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(33777===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(33778===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(33779===i)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(null===(n=kt(e,"WEBGL_compressed_texture_s3tc")))return null;if(33776===i)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===i)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===i)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===i)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===i||35841===i||35842===i||35843===i){var s=kt(e,"WEBGL_compressed_texture_pvrtc");if(null===s)return null;if(35840===i)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===i)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===i)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===i)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===i){var o=kt(e,"WEBGL_compressed_texture_etc1");return null!==o?o.COMPRESSED_RGB_ETC1_WEBGL:null}if(37492===i||37496===i){var l=kt(e,"WEBGL_compressed_texture_etc");if(null===l)return null;if(37492===i)return 3001===r?l.COMPRESSED_SRGB8_ETC2:l.COMPRESSED_RGB8_ETC2;if(37496===i)return 3001===r?l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:l.COMPRESSED_RGBA8_ETC2_EAC}if(37808===i||37809===i||37810===i||37811===i||37812===i||37813===i||37814===i||37815===i||37816===i||37817===i||37818===i||37819===i||37820===i||37821===i){var u=kt(e,"WEBGL_compressed_texture_astc");if(null===u)return null;if(37808===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:u.COMPRESSED_RGBA_ASTC_4x4_KHR;if(37809===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:u.COMPRESSED_RGBA_ASTC_5x4_KHR;if(37810===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:u.COMPRESSED_RGBA_ASTC_5x5_KHR;if(37811===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:u.COMPRESSED_RGBA_ASTC_6x5_KHR;if(37812===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:u.COMPRESSED_RGBA_ASTC_6x6_KHR;if(37813===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:u.COMPRESSED_RGBA_ASTC_8x5_KHR;if(37814===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:u.COMPRESSED_RGBA_ASTC_8x6_KHR;if(37815===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:u.COMPRESSED_RGBA_ASTC_8x8_KHR;if(37816===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:u.COMPRESSED_RGBA_ASTC_10x5_KHR;if(37817===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:u.COMPRESSED_RGBA_ASTC_10x6_KHR;if(37818===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:u.COMPRESSED_RGBA_ASTC_10x8_KHR;if(37819===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:u.COMPRESSED_RGBA_ASTC_10x10_KHR;if(37820===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:u.COMPRESSED_RGBA_ASTC_12x10_KHR;if(37821===i)return 3001===r?u.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:u.COMPRESSED_RGBA_ASTC_12x12_KHR}if(36492===i){var c=kt(e,"EXT_texture_compression_bptc");if(null===c)return null;if(36492===i)return 3001===r?c.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:c.COMPRESSED_RGBA_BPTC_UNORM_EXT}return 1020===i?e.UNSIGNED_INT_24_8:1e3===i?e.REPEAT:1001===i?e.CLAMP_TO_EDGE:1004===i||1005===i?e.NEAREST_MIPMAP_LINEAR:1007===i?e.LINEAR_MIPMAP_NEAREST:1008===i?e.LINEAR_MIPMAP_LINEAR:1003===i?e.NEAREST:1006===i?e.LINEAR:null}var Ta=new Uint8Array([0,0,0,1]),ba=function(){function e(t){var n=t.gl,r=t.target,i=t.format,a=t.type,s=t.wrapS,o=t.wrapT,l=t.wrapR,u=t.encoding,c=t.preloadColor,f=t.premultiplyAlpha,p=t.flipY;b(this,e),this.gl=n,this.target=r||n.TEXTURE_2D,this.format=i||1023,this.type=a||1009,this.internalFormat=null,this.premultiplyAlpha=!!f,this.flipY=!!p,this.unpackAlignment=4,this.wrapS=s||1e3,this.wrapT=o||1e3,this.wrapR=l||1e3,this.encoding=u||3001,this.texture=n.createTexture(),c&&this.setPreloadColor(c),this.allocated=!0}return P(e,[{key:"setPreloadColor",value:function(e){e?(Ta[0]=Math.floor(255*e[0]),Ta[1]=Math.floor(255*e[1]),Ta[2]=Math.floor(255*e[2]),Ta[3]=Math.floor(255*(void 0!==e[3]?e[3]:1))):(Ta[0]=0,Ta[1]=0,Ta[2]=0,Ta[3]=255);var t=this.gl;if(t.bindTexture(this.target,this.texture),this.target===t.TEXTURE_CUBE_MAP)for(var n=[t.TEXTURE_CUBE_MAP_POSITIVE_X,t.TEXTURE_CUBE_MAP_NEGATIVE_X,t.TEXTURE_CUBE_MAP_POSITIVE_Y,t.TEXTURE_CUBE_MAP_NEGATIVE_Y,t.TEXTURE_CUBE_MAP_POSITIVE_Z,t.TEXTURE_CUBE_MAP_NEGATIVE_Z],r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=this.gl;void 0!==t.format&&(this.format=t.format),void 0!==t.internalFormat&&(this.internalFormat=t.internalFormat),void 0!==t.encoding&&(this.encoding=t.encoding),void 0!==t.type&&(this.type=t.type),void 0!==t.flipY&&(this.flipY=t.flipY),void 0!==t.premultiplyAlpha&&(this.premultiplyAlpha=t.premultiplyAlpha),void 0!==t.unpackAlignment&&(this.unpackAlignment=t.unpackAlignment),void 0!==t.minFilter&&(this.minFilter=t.minFilter),void 0!==t.magFilter&&(this.magFilter=t.magFilter),void 0!==t.wrapS&&(this.wrapS=t.wrapS),void 0!==t.wrapT&&(this.wrapT=t.wrapT),void 0!==t.wrapR&&(this.wrapR=t.wrapR);var r=!1;n.bindTexture(this.target,this.texture);var i=n.getParameter(n.UNPACK_FLIP_Y_WEBGL);n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,this.flipY);var a=n.getParameter(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL);n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha);var s=n.getParameter(n.UNPACK_ALIGNMENT);n.pixelStorei(n.UNPACK_ALIGNMENT,this.unpackAlignment);var o=n.getParameter(n.UNPACK_COLORSPACE_CONVERSION_WEBGL);n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);var l=Ea(n,this.minFilter);n.texParameteri(this.target,n.TEXTURE_MIN_FILTER,l),l!==n.NEAREST_MIPMAP_NEAREST&&l!==n.LINEAR_MIPMAP_NEAREST&&l!==n.NEAREST_MIPMAP_LINEAR&&l!==n.LINEAR_MIPMAP_LINEAR||(r=!0);var u=Ea(n,this.magFilter);u&&n.texParameteri(this.target,n.TEXTURE_MAG_FILTER,u);var c=Ea(n,this.wrapS);c&&n.texParameteri(this.target,n.TEXTURE_WRAP_S,c);var f=Ea(n,this.wrapT);f&&n.texParameteri(this.target,n.TEXTURE_WRAP_T,f);var p=Ea(n,this.format,this.encoding),A=Ea(n,this.type),d=Da(n,this.internalFormat,p,A,this.encoding,!1);if(this.target===n.TEXTURE_CUBE_MAP){if(le.isArray(e))for(var v=e,h=[n.TEXTURE_CUBE_MAP_POSITIVE_X,n.TEXTURE_CUBE_MAP_NEGATIVE_X,n.TEXTURE_CUBE_MAP_POSITIVE_Y,n.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.TEXTURE_CUBE_MAP_POSITIVE_Z,n.TEXTURE_CUBE_MAP_NEGATIVE_Z],I=0,y=h.length;I1;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,this.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,this.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,i.NONE);var o=Ea(i,this.wrapS);o&&i.texParameteri(this.target,i.TEXTURE_WRAP_S,o);var l=Ea(i,this.wrapT);if(l&&i.texParameteri(this.target,i.TEXTURE_WRAP_T,l),this.type===i.TEXTURE_3D||this.type===i.TEXTURE_2D_ARRAY){var u=Ea(i,this.wrapR);u&&i.texParameteri(this.target,i.TEXTURE_WRAP_R,u),i.texParameteri(this.type,i.TEXTURE_WRAP_R,u)}s?(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Pa(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Pa(i,this.magFilter))):(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Ea(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Ea(i,this.magFilter)));var c=Ea(i,this.format,this.encoding),f=Ea(i,this.type),p=Da(i,this.internalFormat,c,f,this.encoding,!1);i.texStorage2D(i.TEXTURE_2D,a,p,t[0].width,t[0].height);for(var A=0,d=t.length;A5&&void 0!==arguments[5]&&arguments[5];if(null!==t){if(void 0!==e[t])return e[t];console.warn("Attempt to use non-existing WebGL internal format '"+t+"'")}var s=n;return n===e.RED&&(r===e.FLOAT&&(s=e.R32F),r===e.HALF_FLOAT&&(s=e.R16F),r===e.UNSIGNED_BYTE&&(s=e.R8)),n===e.RG&&(r===e.FLOAT&&(s=e.RG32F),r===e.HALF_FLOAT&&(s=e.RG16F),r===e.UNSIGNED_BYTE&&(s=e.RG8)),n===e.RGBA&&(r===e.FLOAT&&(s=e.RGBA32F),r===e.HALF_FLOAT&&(s=e.RGBA16F),r===e.UNSIGNED_BYTE&&(s=3001===i&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(s=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(s=e.RGB5_A1)),s!==e.R16F&&s!==e.R32F&&s!==e.RG16F&&s!==e.RG32F&&s!==e.RGBA16F&&s!==e.RGBA32F||kt(e,"EXT_color_buffer_float"),s}function Pa(e,t){return 1003===t||1004===t||1005===t?e.NEAREST:e.LINEAR}function Ra(e){if(!Ca(e.width)||!Ca(e.height)){var t=document.createElement("canvas");t.width=_a(e.width),t.height=_a(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}function Ca(e){return 0==(e&e-1)}function _a(e){--e;for(var t=1;t<32;t<<=1)e|=e>>t;return e+1}var Ba=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({texture:new ba({gl:r.scene.canvas.gl}),matrix:$.identityMat4(),hasMatrix:i.translate&&(0!==i.translate[0]||0!==i.translate[1])||!!i.rotate||i.scale&&(0!==i.scale[0]||0!==i.scale[1]),minFilter:r._checkMinFilter(i.minFilter),magFilter:r._checkMagFilter(i.magFilter),wrapS:r._checkWrapS(i.wrapS),wrapT:r._checkWrapT(i.wrapT),flipY:r._checkFlipY(i.flipY),encoding:r._checkEncoding(i.encoding)}),r._src=null,r._image=null,r._translate=$.vec2([0,0]),r._scale=$.vec2([1,1]),r._rotate=$.vec2([0,0]),r._matrixDirty=!1,r.translate=i.translate,r.scale=i.scale,r.rotate=i.rotate,i.src?r.src=i.src:i.image&&(r.image=i.image),re.memory.textures++,r}return P(n,[{key:"type",get:function(){return"Texture"}},{key:"_checkMinFilter",value:function(e){return 1006!==(e=e||1008)&&1007!==e&&1008!==e&&1005!==e&&1004!==e&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=1008),e}},{key:"_checkMagFilter",value:function(e){return 1006!==(e=e||1006)&&1003!==e&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=1006),e}},{key:"_checkWrapS",value:function(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}},{key:"_checkWrapT",value:function(e){return 1001!==(e=e||1e3)&&1002!==e&&1e3!==e&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=1e3),e}},{key:"_checkFlipY",value:function(e){return!!e}},{key:"_checkEncoding",value:function(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}},{key:"_webglContextRestored",value:function(){this._state.texture=new ba({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}},{key:"_update",value:function(){var e,t,n=this._state;this._matrixDirty&&(0===this._translate[0]&&0===this._translate[1]||(e=$.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(t=$.scalingMat4v([this._scale[0],this._scale[1],1]),e=e?$.mulMat4(e,t):t),0!==this._rotate&&(t=$.rotationMat4v(.0174532925*this._rotate,[0,0,1]),e=e?$.mulMat4(e,t):t),e&&(n.matrix=e),this._matrixDirty=!1);this.glRedraw()}},{key:"image",get:function(){return this._image},set:function(e){this._image=Ra(e),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}},{key:"src",get:function(){return this._src},set:function(e){this.scene.loading++,this.scene.canvas.spinner.processes++;var t=this,n=new Image;n.onload=function(){n=Ra(n),t._state.texture.setImage(n,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},n.src=e,this._src=e,this._image=null}},{key:"translate",get:function(){return this._translate},set:function(e){this._translate.set(e||[0,0]),this._matrixDirty=!0,this._needUpdate()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1]),this._matrixDirty=!0,this._needUpdate()}},{key:"rotate",get:function(){return this._rotate},set:function(e){e=e||0,this._rotate!==e&&(this._rotate=e,this._matrixDirty=!0,this._needUpdate())}},{key:"minFilter",get:function(){return this._state.minFilter}},{key:"magFilter",get:function(){return this._state.magFilter}},{key:"wrapS",get:function(){return this._state.wrapS}},{key:"wrapT",get:function(){return this._state.wrapT}},{key:"flipY",get:function(){return this._state.flipY}},{key:"encoding",get:function(){return this._state.encoding}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),re.memory.textures--}}]),n}(),Oa=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._state=new Wt({edgeColor:$.vec3([0,0,0]),centerColor:$.vec3([1,1,1]),edgeBias:0,centerBias:1,power:1}),r.edgeColor=i.edgeColor,r.centerColor=i.centerColor,r.edgeBias=i.edgeBias,r.centerBias=i.centerBias,r.power=i.power,r}return P(n,[{key:"type",get:function(){return"Fresnel"}},{key:"edgeColor",get:function(){return this._state.edgeColor},set:function(e){this._state.edgeColor.set(e||[0,0,0]),this.glRedraw()}},{key:"centerColor",get:function(){return this._state.centerColor},set:function(e){this._state.centerColor.set(e||[1,1,1]),this.glRedraw()}},{key:"edgeBias",get:function(){return this._state.edgeBias},set:function(e){this._state.edgeBias=e||0,this.glRedraw()}},{key:"centerBias",get:function(){return this._state.centerBias},set:function(e){this._state.centerBias=null!=e?e:1,this.glRedraw()}},{key:"power",get:function(){return this._state.power},set:function(e){this._state.power=null!=e?e:1,this.glRedraw()}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this._state.destroy()}}]),n}(),Sa=re.memory,Na=$.AABB3(),La=function(e){I(n,In);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i))._state=new Wt({compressGeometry:!0,primitive:null,primitiveName:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),r._numTriangles=0,r._edgeThreshold=i.edgeThreshold||10,r._aabb=null,r._obb=$.OBB3();var a,s=r._state,o=r.scene.canvas.gl;switch(i.primitive=i.primitive||"triangles",i.primitive){case"points":s.primitive=o.POINTS,s.primitiveName=i.primitive;break;case"lines":s.primitive=o.LINES,s.primitiveName=i.primitive;break;case"line-loop":s.primitive=o.LINE_LOOP,s.primitiveName=i.primitive;break;case"line-strip":s.primitive=o.LINE_STRIP,s.primitiveName=i.primitive;break;case"triangles":s.primitive=o.TRIANGLES,s.primitiveName=i.primitive;break;case"triangle-strip":s.primitive=o.TRIANGLE_STRIP,s.primitiveName=i.primitive;break;case"triangle-fan":s.primitive=o.TRIANGLE_FAN,s.primitiveName=i.primitive;break;default:r.error("Unsupported value for 'primitive': '"+i.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),s.primitive=o.TRIANGLES,s.primitiveName=i.primitive}if(!i.positions)return r.error("Config expected: positions"),w(r);if(!i.indices)return r.error("Config expected: indices"),w(r);var l=i.positionsDecodeMatrix;if(l);else{var u=Dn.getPositionsBounds(i.positions),c=Dn.compressPositions(i.positions,u.min,u.max);a=c.quantized,s.positionsDecodeMatrix=c.decodeMatrix,s.positionsBuf=new Dt(o,o.ARRAY_BUFFER,a,a.length,3,o.STATIC_DRAW),Sa.positions+=s.positionsBuf.numItems,$.positions3ToAABB3(i.positions,r._aabb),$.positions3ToAABB3(a,Na,s.positionsDecodeMatrix),$.AABB3ToOBB3(Na,r._obb)}if(i.colors){var f=i.colors.constructor===Float32Array?i.colors:new Float32Array(i.colors);s.colorsBuf=new Dt(o,o.ARRAY_BUFFER,f,f.length,4,o.STATIC_DRAW),Sa.colors+=s.colorsBuf.numItems}if(i.uv){var p=Dn.getUVBounds(i.uv),A=Dn.compressUVs(i.uv,p.min,p.max),d=A.quantized;s.uvDecodeMatrix=A.decodeMatrix,s.uvBuf=new Dt(o,o.ARRAY_BUFFER,d,d.length,2,o.STATIC_DRAW),Sa.uvs+=s.uvBuf.numItems}if(i.normals){var v=Dn.compressNormals(i.normals),h=s.compressGeometry;s.normalsBuf=new Dt(o,o.ARRAY_BUFFER,v,v.length,3,o.STATIC_DRAW,h),Sa.normals+=s.normalsBuf.numItems}var I=i.indices.constructor===Uint32Array||i.indices.constructor===Uint16Array?i.indices:new Uint32Array(i.indices);s.indicesBuf=new Dt(o,o.ELEMENT_ARRAY_BUFFER,I,I.length,1,o.STATIC_DRAW),Sa.indices+=s.indicesBuf.numItems;var y=yn(a,I,s.positionsDecodeMatrix,r._edgeThreshold);return r._edgeIndicesBuf=new Dt(o,o.ELEMENT_ARRAY_BUFFER,y,y.length,1,o.STATIC_DRAW),"triangles"===r._state.primitiveName&&(r._numTriangles=i.indices.length/3),r._buildHash(),Sa.meshes++,r}return P(n,[{key:"type",get:function(){return"VBOGeometry"}},{key:"isVBOGeometry",get:function(){return!0}},{key:"_buildHash",value:function(){var e=this._state,t=["/g"];t.push("/"+e.primitive+";"),e.positionsBuf&&t.push("p"),e.colorsBuf&&t.push("c"),(e.normalsBuf||e.autoVertexNormals)&&t.push("n"),e.uvBuf&&t.push("u"),t.push("cp"),t.push(";"),e.hash=t.join("")}},{key:"_getEdgeIndices",value:function(){return this._edgeIndicesBuf}},{key:"primitive",get:function(){return this._state.primitiveName}},{key:"aabb",get:function(){return this._aabb}},{key:"obb",get:function(){return this._obb}},{key:"numTriangles",get:function(){return this._numTriangles}},{key:"_getState",value:function(){return this._state}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this);var e=this._state;e.indicesBuf&&e.indicesBuf.destroy(),e.positionsBuf&&e.positionsBuf.destroy(),e.normalsBuf&&e.normalsBuf.destroy(),e.uvBuf&&e.uvBuf.destroy(),e.colorsBuf&&e.colorsBuf.destroy(),this._edgeIndicesBuf&&this._edgeIndicesBuf.destroy(),e.destroy(),Sa.meshes--}}]),n}(),Ma={};function xa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,r){t.src||(console.error("load3DSGeometry: Parameter expected: src"),r());var i=e.canvas.spinner;i.processes++,le.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("load3DSGeometry: no data loaded"),i.processes--,r());var a=Ma.parse.from3DS(e).edit.objects[0].mesh,s=a.vertices,o=a.uvt,l=a.indices;i.processes--,n(le.apply(t,{primitive:"triangles",positions:s,normals:null,uv:o,indices:l}))}),(function(e){console.error("load3DSGeometry: "+e),i.processes--,r()}))}))}function Fa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,r){t.src||(console.error("loadOBJGeometry: Parameter expected: src"),r());var i=e.canvas.spinner;i.processes++,le.loadArraybuffer(t.src,(function(e){e.byteLength||(console.error("loadOBJGeometry: no data loaded"),i.processes--,r());for(var a=Ma.parse.fromOBJ(e),s=Ma.edit.unwrap(a.i_verts,a.c_verts,3),o=Ma.edit.unwrap(a.i_norms,a.c_norms,3),l=Ma.edit.unwrap(a.i_uvt,a.c_uvt,2),u=new Int32Array(a.i_verts.length),c=0;c0?o:null,autoNormals:0===o.length,uv:l,indices:u}))}),(function(e){console.error("loadOBJGeometry: "+e),i.processes--,r()}))}))}function Ha(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.ySize||1;n<0&&(console.error("negative ySize not allowed - will invert"),n*=-1);var r=e.zSize||1;r<0&&(console.error("negative zSize not allowed - will invert"),r*=-1);var i=e.center,a=i?i[0]:0,s=i?i[1]:0,o=i?i[2]:0,l=-t+a,u=-n+s,c=-r+o,f=t+a,p=n+s,A=r+o;return le.apply(e,{primitive:"lines",positions:[l,u,c,l,u,A,l,p,c,l,p,A,f,u,c,f,u,A,f,p,c,f,p,A],indices:[0,1,1,3,3,2,2,0,4,5,5,7,7,6,6,4,0,4,1,5,2,6,3,7]})}function Ua(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.size||1;t<0&&(console.error("negative size not allowed - will invert"),t*=-1);var n=e.divisions||1;n<0&&(console.error("negative divisions not allowed - will invert"),n*=-1),n<1&&(n=1);for(var r=(t=t||10)/(n=n||10),i=t/2,a=[],s=[],o=0,l=0,u=-i;l<=n;l++,u+=r)a.push(-i),a.push(0),a.push(u),a.push(i),a.push(0),a.push(u),a.push(u),a.push(0),a.push(-i),a.push(u),a.push(0),a.push(i),s.push(o++),s.push(o++),s.push(o++),s.push(o++);return le.apply(e,{primitive:"lines",positions:a,indices:s})}function Ga(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);var n=e.zSize||1;n<0&&(console.error("negative zSize not allowed - will invert"),n*=-1);var r=e.xSegments||1;r<0&&(console.error("negative xSegments not allowed - will invert"),r*=-1),r<1&&(r=1);var i=e.xSegments||1;i<0&&(console.error("negative zSegments not allowed - will invert"),i*=-1),i<1&&(i=1);var a,s,o,l,u,c,f,p=e.center,A=p?p[0]:0,d=p?p[1]:0,v=p?p[2]:0,h=t/2,I=n/2,y=Math.floor(r)||1,m=Math.floor(i)||1,w=y+1,g=m+1,E=t/y,T=n/m,b=new Float32Array(w*g*3),D=new Float32Array(w*g*3),P=new Float32Array(w*g*2),R=0,C=0;for(a=0;a65535?Uint32Array:Uint16Array)(y*m*6);for(a=0;a0&&void 0!==arguments[0]?arguments[0]:{},t=e.radius||1;t<0&&(console.error("negative radius not allowed - will invert"),t*=-1),t*=.5;var n=e.tube||.3;n<0&&(console.error("negative tube not allowed - will invert"),n*=-1);var r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<4&&(r=4);var i=e.tubeSegments||24;i<0&&(console.error("negative tubeSegments not allowed - will invert"),i*=-1),i<4&&(i=4);var a=e.arc||2*Math.PI;a<0&&(console.warn("negative arc not allowed - will invert"),a*=-1),a>360&&(a=360);var s,o,l,u,c,f,p,A,d,v,h,I,y=e.center,m=y?y[0]:0,w=y?y[1]:0,g=y?y[2]:0,E=[],T=[],b=[],D=[];for(A=0;A<=i;A++)for(p=0;p<=r;p++)s=p/r*a,o=.785398+A/i*Math.PI*2,m=t*Math.cos(s),w=t*Math.sin(s),l=(t+n*Math.cos(o))*Math.cos(s),u=(t+n*Math.cos(o))*Math.sin(s),c=n*Math.sin(o),E.push(l+m),E.push(u+w),E.push(c+g),b.push(1-p/r),b.push(A/i),f=$.normalizeVec3($.subVec3([l,u,c],[m,w,g],[]),[]),T.push(f[0]),T.push(f[1]),T.push(f[2]);for(A=1;A<=i;A++)for(p=1;p<=r;p++)d=(r+1)*A+p-1,v=(r+1)*(A-1)+p-1,h=(r+1)*(A-1)+p,I=(r+1)*A+p,D.push(d),D.push(v),D.push(h),D.push(h),D.push(I),D.push(d);return le.apply(e,{positions:E,normals:T,uv:b,indices:D})}Ma.load=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(e){t(e.target.response)},n.send()},Ma.save=function(e,t){var n="data:application/octet-stream;base64,"+btoa(Ma.parse._buffToStr(e));window.location.href=n},Ma.clone=function(e){return JSON.parse(JSON.stringify(e))},Ma.bin={},Ma.bin.f=new Float32Array(1),Ma.bin.fb=new Uint8Array(Ma.bin.f.buffer),Ma.bin.rf=function(e,t){for(var n=Ma.bin.f,r=Ma.bin.fb,i=0;i<4;i++)r[i]=e[t+i];return n[0]},Ma.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Ma.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Ma.bin.rASCII0=function(e,t){for(var n="";0!=e[t];)n+=String.fromCharCode(e[t++]);return n},Ma.bin.wf=function(e,t,n){new Float32Array(e.buffer,t,1)[0]=n},Ma.bin.wsl=function(e,t,n){e[t]=n,e[t+1]=n>>8},Ma.bin.wil=function(e,t,n){e[t]=n,e[t+1]=n>>8,e[t+2]=n>>16,e[t+3]},Ma.parse={},Ma.parse._buffToStr=function(e){for(var t=new Uint8Array(e),n="",r=0;ri&&(i=l),ua&&(a=u),cs&&(s=c)}return{min:{x:t,y:n,z:r},max:{x:i,y:a,z:s}}};var ja=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._type=i.type||(i.src?i.src.split(".").pop():null)||"jpg",r._pos=$.vec3(i.pos||[0,0,0]),r._up=$.vec3(i.up||[0,1,0]),r._normal=$.vec3(i.normal||[0,0,1]),r._height=i.height||1,r._origin=$.vec3(),r._rtcPos=$.vec3(),r._imageSize=$.vec2(),r._texture=new Ba(g(r),{flipY:!0}),r._image=new Image,"jpg"!==r._type&&"png"!==r._type&&(r.error('Unsupported type - defaulting to "jpg"'),r._type="jpg"),r._node=new da(g(r),{matrix:$.inverseMat4($.lookAtMat4v(r._pos,$.subVec3(r._pos,r._normal,$.mat4()),r._up,$.mat4())),children:[r._bitmapMesh=new Ji(g(r),{scale:[1,1,1],rotation:[-90,0,0],collidable:i.collidable,pickable:i.pickable,opacity:i.opacity,clippable:i.clippable,geometry:new Cn(g(r),Ga({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:r._texture,emissiveMap:r._texture,backfaces:!0})})]}),i.image?r.image=i.image:i.src?r.src=i.src:i.imageData&&(r.imageData=i.imageData),r.scene._bitmapCreated(g(r)),r}return P(n,[{key:"visible",get:function(){return this._bitmapMesh.visible},set:function(e){this._bitmapMesh.visible=e}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}},{key:"src",get:function(){return this._image.src},set:function(e){var t=this;if(e)switch(this._image.onload=function(){t._texture.image=t._image,t._imageSize[0]=t._image.width,t._imageSize[1]=t._image.height,t._updateBitmapMeshScale()},this._image.src=e,e.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}},{key:"imageData",get:function(){var e=document.createElement("canvas"),t=e.getContext("2d");return e.width=this._image.width,e.height=this._image.height,t.drawImage(this._image,0,0),e.toDataURL("jpg"===this._type?"image/jpeg":"image/png")},set:function(e){var t=this;this._image.onload=function(){t._texture.image=image,t._imageSize[0]=image.width,t._imageSize[1]=image.height,t._updateBitmapMeshScale()},this._image.src=e}},{key:"type",get:function(){return this._type},set:function(e){"png"===(e=e||"jpg")&&"jpg"===e||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),e="jpg"),this._type=e}},{key:"pos",get:function(){return this._pos}},{key:"normal",get:function(){return this._normal}},{key:"up",get:function(){return this._up}},{key:"height",get:function(){return this._height},set:function(e){this._height=null==e?1:e,this._image&&this._updateBitmapMeshScale()}},{key:"collidable",get:function(){return this._bitmapMesh.collidable},set:function(e){this._bitmapMesh.collidable=!1!==e}},{key:"clippable",get:function(){return this._bitmapMesh.clippable},set:function(e){this._bitmapMesh.clippable=!1!==e}},{key:"pickable",get:function(){return this._bitmapMesh.pickable},set:function(e){this._bitmapMesh.pickable=!1!==e}},{key:"opacity",get:function(){return this._bitmapMesh.opacity},set:function(e){this._bitmapMesh.opacity=e}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._bitmapDestroyed(this)}},{key:"_updateBitmapMeshScale",value:function(){var e=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height*e,1,this._height]}}]),n}(),Va=$.OBB3(),Qa=$.OBB3(),Wa=$.OBB3(),za=function(){function e(t,n,r,i,a,s){var o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0;b(this,e),this.model=t,this.object=null,this.parent=null,this.transform=a,this.textureSet=s,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=n,this.obb=null,this._aabbLocal=null,this._aabbWorld=$.AABB3(),this._aabbWorldDirty=!1,this.layer=o,this.portionId=l,this._color=new Uint8Array([r[0],r[1],r[2],i]),this._colorize=new Uint8Array([r[0],r[1],r[2],i]),this._colorizing=!1,this._transparent=i<255,this.numTriangles=0,this.origin=null,this.entity=null,a&&a._addMesh(this)}return P(e,[{key:"_sceneModelDirty",value:function(){this._aabbWorldDirty=!0,this.layer.aabbDirty=!0}},{key:"_transformDirty",value:function(){this._matrixDirty||this._matrixUpdateScheduled||(this.model._meshMatrixDirty(this),this._matrixDirty=!0,this._matrixUpdateScheduled=!0),this._aabbWorldDirty=!0,this.layer.aabbDirty=!0,this.entity&&this.entity._transformDirty()}},{key:"_updateMatrix",value:function(){this.transform&&this._matrixDirty&&this.layer.setMatrix(this.portionId,this.transform.worldMatrix),this._matrixDirty=!1,this._matrixUpdateScheduled=!1}},{key:"_finalize",value:function(e){this.layer.initFlags(this.portionId,e,this._transparent)}},{key:"_finalize2",value:function(){this.layer.flushInitFlags&&this.layer.flushInitFlags()}},{key:"_setVisible",value:function(e){this.layer.setVisible(this.portionId,e,this._transparent)}},{key:"_setColor",value:function(e){this._color[0]=e[0],this._color[1]=e[1],this._color[2]=e[2],this._colorizing||this.layer.setColor(this.portionId,this._color,!1)}},{key:"_setColorize",value:function(e){e?(this._colorize[0]=e[0],this._colorize[1]=e[1],this._colorize[2]=e[2],this.layer.setColor(this.portionId,this._colorize,false),this._colorizing=!0):(this.layer.setColor(this.portionId,this._color,false),this._colorizing=!1)}},{key:"_setOpacity",value:function(e,t){var n=e<255,r=this._transparent!==n;this._color[3]=e,this._colorize[3]=e,this._transparent=n,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),r&&this.layer.setTransparent(this.portionId,t,n)}},{key:"_setOffset",value:function(e){this.layer.setOffset(this.portionId,e)}},{key:"_setHighlighted",value:function(e){this.layer.setHighlighted(this.portionId,e,this._transparent)}},{key:"_setXRayed",value:function(e){this.layer.setXRayed(this.portionId,e,this._transparent)}},{key:"_setSelected",value:function(e){this.layer.setSelected(this.portionId,e,this._transparent)}},{key:"_setEdges",value:function(e){this.layer.setEdges(this.portionId,e,this._transparent)}},{key:"_setClippable",value:function(e){this.layer.setClippable(this.portionId,e,this._transparent)}},{key:"_setCollidable",value:function(e){this.layer.setCollidable(this.portionId,e)}},{key:"_setPickable",value:function(e){this.layer.setPickable(this.portionId,e,this._transparent)}},{key:"_setCulled",value:function(e){this.layer.setCulled(this.portionId,e,this._transparent)}},{key:"canPickTriangle",value:function(){return!1}},{key:"drawPickTriangles",value:function(e,t){}},{key:"pickTriangleSurface",value:function(e){}},{key:"precisionRayPickSurface",value:function(e,t,n,r){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,n,r)}},{key:"canPickWorldPos",value:function(){return!0}},{key:"drawPickDepths",value:function(e){this.model.drawPickDepths(e)}},{key:"drawPickNormals",value:function(e){this.model.drawPickNormals(e)}},{key:"delegatePickedEntity",value:function(){return this.parent}},{key:"getEachVertex",value:function(e){this.layer.getEachVertex(this.portionId,e)}},{key:"aabb",get:function(){if(this._aabbWorldDirty){if($.AABB3ToOBB3(this._aabbLocal,Va),this.transform?($.transformOBB3(this.transform.worldMatrix,Va,Qa),$.transformOBB3(this.model.worldMatrix,Qa,Wa),$.OBB3ToAABB3(Wa,this._aabbWorld)):($.transformOBB3(this.model.worldMatrix,Va,Qa),$.OBB3ToAABB3(Qa,this._aabbWorld)),this.origin){var e=this.origin;this._aabbWorld[0]+=e[0],this._aabbWorld[1]+=e[1],this._aabbWorld[2]+=e[2],this._aabbWorld[3]+=e[0],this._aabbWorld[4]+=e[1],this._aabbWorld[5]+=e[2]}this._aabbWorldDirty=!1}return this._aabbWorld},set:function(e){this._aabbLocal=e}},{key:"_destroy",value:function(){this.model.scene._renderer.putPickID(this.pickId)}}]),e}(),Ka=new(function(){function e(){b(this,e),this._uint8Arrays={},this._float32Arrays={}}return P(e,[{key:"_clear",value:function(){this._uint8Arrays={},this._float32Arrays={}}},{key:"getUInt8Array",value:function(e){var t=this._uint8Arrays[e];return t||(t=new Uint8Array(e),this._uint8Arrays[e]=t),t}},{key:"getFloat32Array",value:function(e){var t=this._float32Arrays[e];return t||(t=new Float32Array(e),this._float32Arrays[e]=t),t}}]),e}()),Ya=0;function Xa(){return Ya++,Ka}var qa={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},Ja=new Float32Array([1,1,1,1]),Za=new Float32Array([0,0,0,1]),$a=$.vec4(),es=$.vec3(),ts=$.vec3(),ns=$.mat4(),rs=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.instancing,a=void 0!==i&&i,s=r.edges,o=void 0!==s&&s;b(this,e),this._scene=t,this._withSAO=n,this._instancing=a,this._edges=o,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}return P(e,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"_buildShader",value:function(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}},{key:"_buildVertexShader",value:function(){return[""]}},{key:"_buildFragmentShader",value:function(){return[""]}},{key:"_addMatricesUniformBlockLines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.push("uniform Matrices {"),e.push(" mat4 worldMatrix;"),e.push(" mat4 viewMatrix;"),e.push(" mat4 projMatrix;"),e.push(" mat4 positionsDecodeMatrix;"),t&&(e.push(" mat4 worldNormalMatrix;"),e.push(" mat4 viewNormalMatrix;")),e.push("};"),e}},{key:"_addRemapClipPosLines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.push("uniform vec2 drawingBufferSize;"),e.push("uniform vec2 pickClipPos;"),e.push("vec4 remapClipPos(vec4 clipPos) {"),e.push(" clipPos.xy /= clipPos.w;"),1===t?e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):e.push(" clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(".concat(t,"));")),e.push(" clipPos.xy *= clipPos.w;"),e.push(" return clipPos;"),e.push("}"),e}},{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"setSectionPlanesStateUniforms",value:function(e){var t=this._scene,n=t.canvas.gl,r=e.model,i=e.layerIndex,a=t._sectionPlanesState.getNumAllocatedSectionPlanes(),s=t._sectionPlanesState.sectionPlanes.length;if(a>0)for(var o=t._sectionPlanesState.sectionPlanes,l=i*s,u=r.renderFlags,c=0;c0&&(this._uReflectionMap="reflectionMap"),n.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(var o=0,l=e._sectionPlanesState.getNumAllocatedSectionPlanes();o3&&void 0!==arguments[3]?arguments[3]:{},i=r.colorUniform,a=void 0!==i&&i,s=r.incrementDrawState,o=void 0!==s&&s,l=dt.MAX_TEXTURE_IMAGE_UNITS,u=this._scene,c=u.canvas.gl,f=t._state,p=t.model,A=f.textureSet,d=f.origin,v=f.positionsDecodeMatrix,h=u._lightsState,I=u.pointsMaterial,y=p.scene.camera,m=y.viewNormalMatrix,w=y.project,g=e.pickViewMatrix||y.viewMatrix,E=p.position,T=p.rotationMatrix,b=p.rotationMatrixConjugate,D=p.worldNormalMatrix;if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),this._vaoCache.has(t)?c.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(f));var P=0,R=16;this._matricesUniformBlockBufferData.set(b,0);var C=0!==d[0]||0!==d[1]||0!==d[2],_=0!==E[0]||0!==E[1]||0!==E[2];if(C||_){var B=es;if(C){var O=$.transformPoint3(T,d,ts);B[0]=O[0],B[1]=O[1],B[2]=O[2]}else B[0]=0,B[1]=0,B[2]=0;B[0]+=E[0],B[1]+=E[1],B[2]+=E[2],this._matricesUniformBlockBufferData.set(Be(g,B,ns),P+=R)}else this._matricesUniformBlockBufferData.set(g,P+=R);if(this._matricesUniformBlockBufferData.set(e.pickProjMatrix||w.matrix,P+=R),this._matricesUniformBlockBufferData.set(v,P+=R),this._matricesUniformBlockBufferData.set(D,P+=R),this._matricesUniformBlockBufferData.set(m,P+=R),c.bindBuffer(c.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),c.bufferData(c.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,c.DYNAMIC_DRAW),c.bindBufferBase(c.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer),c.uniform1i(this._uRenderPass,n),this.setSectionPlanesStateUniforms(t),u.logarithmicDepthBufferEnabled){if(this._uLogDepthBufFC){var S=2/(Math.log(e.pickZFar+1)/Math.LN2);c.uniform1f(this._uLogDepthBufFC,S)}this._uZFar&&c.uniform1f(this._uZFar,u.camera.project.far)}if(this._uPickInvisible&&c.uniform1i(this._uPickInvisible,e.pickInvisible),this._uPickZNear&&c.uniform1f(this._uPickZNear,e.pickZNear),this._uPickZFar&&c.uniform1f(this._uPickZFar,e.pickZFar),this._uPickClipPos&&c.uniform2fv(this._uPickClipPos,e.pickClipPos),this._uDrawingBufferSize&&c.uniform2f(this._uDrawingBufferSize,c.drawingBufferWidth,c.drawingBufferHeight),this._uUVDecodeMatrix&&c.uniformMatrix3fv(this._uUVDecodeMatrix,!1,f.uvDecodeMatrix),this._uIntensityRange&&I.filterIntensity&&c.uniform2f(this._uIntensityRange,I.minIntensity,I.maxIntensity),this._uPointSize&&c.uniform1f(this._uPointSize,I.pointSize),this._uNearPlaneHeight){var N="ortho"===u.camera.projection?1:c.drawingBufferHeight/(2*Math.tan(.5*u.camera.perspective.fov*Math.PI/180));c.uniform1f(this._uNearPlaneHeight,N)}if(A){var L=A.colorTexture,M=A.metallicRoughnessTexture,x=A.emissiveTexture,F=A.normalsTexture,H=A.occlusionTexture;this._uColorMap&&L&&(this._program.bindTexture(this._uColorMap,L.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uMetallicRoughMap&&M&&(this._program.bindTexture(this._uMetallicRoughMap,M.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uEmissiveMap&&x&&(this._program.bindTexture(this._uEmissiveMap,x.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uNormalMap&&F&&(this._program.bindTexture(this._uNormalMap,F.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l),this._uAOMap&&H&&(this._program.bindTexture(this._uAOMap,H.texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l)}if(h.reflectionMaps.length>0&&h.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,h.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++),h.lightMaps.length>0&&h.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,h.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++),this._withSAO){var U=u.sao,G=U.possible;if(G){var k=c.drawingBufferWidth,j=c.drawingBufferHeight;$a[0]=k,$a[1]=j,$a[2]=U.blendCutoff,$a[3]=U.blendFactor,c.uniform4fv(this._uSAOParams,$a),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%l,e.bindTexture++}}if(a){var V=this._edges?"edgeColor":"fillColor",Q=this._edges?"edgeAlpha":"fillAlpha";if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_XRAYED")]){var W=u.xrayMaterial._state,z=W[V],K=W[Q];c.uniform4f(this._uColor,z[0],z[1],z[2],K)}else if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_HIGHLIGHTED")]){var Y=u.highlightMaterial._state,X=Y[V],q=Y[Q];c.uniform4f(this._uColor,X[0],X[1],X[2],q)}else if(n===qa["".concat(this._edges?"EDGES":"SILHOUETTE","_SELECTED")]){var J=u.selectedMaterial._state,Z=J[V],ee=J[Q];c.uniform4f(this._uColor,Z[0],Z[1],Z[2],ee)}else c.uniform4fv(this._uColor,this._edges?Za:Ja)}this._draw({state:f,frameCtx:e,incrementDrawState:o}),c.bindVertexArray(null)}}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null,re.memory.programs--}}]),e}(),is=function(e){I(n,rs);var t=m(n);function n(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.instancing,s=void 0!==a&&a,o=i.edges,l=void 0!==o&&o;return b(this,n),t.call(this,e,r,{instancing:s,edges:l})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;if(this._edges)t.drawElements(t.LINES,n.edgeIndicesBuf.numItems,n.edgeIndicesBuf.itemType,0);else{var a=r.pickElementsCount||n.indicesBuf.numItems,s=r.pickElementsOffset?r.pickElementsOffset*n.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,a,n.indicesBuf.itemType,s),i&&r.drawElements++}}}]),n}(),as=function(e){I(n,is);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!1,edges:!0})}return P(n)}(),ss=function(e){I(n,rs);var t=m(n);function n(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.edges,s=void 0!==a&&a;return b(this,n),t.call(this,e,r,{instancing:!0,edges:s})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;this._edges?t.drawElementsInstanced(t.LINES,n.edgeIndicesBuf.numItems,n.edgeIndicesBuf.itemType,0,n.numInstances):(t.drawElementsInstanced(t.TRIANGLES,n.indicesBuf.numItems,n.indicesBuf.itemType,0,n.numInstances),i&&r.drawElements++)}}]),n}(),os=function(e){I(n,ss);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0,edges:!0})}return P(n)}(),ls=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawArrays(t.POINTS,0,n.positionsBuf.numItems),i&&r.drawArrays++}}]),n}(),us=function(e){I(n,rs);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawArraysInstanced(t.POINTS,0,n.positionsBuf.numItems,n.numInstances),i&&r.drawArrays++}}]),n}(),cs=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawElements(t.LINES,n.indicesBuf.numItems,n.indicesBuf.itemType,0),i&&r.drawElements++}}]),n}(),fs=function(e){I(n,rs);var t=m(n);function n(e,r){return b(this,n),t.call(this,e,r,{instancing:!0})}return P(n,[{key:"_draw",value:function(e){var t=this._scene.canvas.gl,n=e.state,r=e.frameCtx,i=e.incrementDrawState;t.drawElementsInstanced(t.LINES,n.indicesBuf.numItems,n.indicesBuf.itemType,0,n.numInstances),i&&r.drawElements++}}]),n}(),ps=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e,t=this._scene,n=t._sectionPlanesState,r=t._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=[];a.push("#version 300 es"),a.push("// Triangles batching draw vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in float flags;"),t.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),t.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("uniform vec4 lightAmbient;");for(var s=0,o=r.lights.length;s= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),i&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;")),a.push("out vec4 vColor;"),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),t.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(var l=0,u=r.lights.length;l0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching draw fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}}]),n}(),As=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching flat-shading draw vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._lightsState,n=e._sectionPlanesState,r=n.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),r){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var a=0,s=n.getNumAllocatedSectionPlanes();a> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var c=0,f=n.getNumAllocatedSectionPlanes();c 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}i.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),i.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),i.push("float lambertian = 1.0;"),i.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),i.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),i.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(var p=0,A=t.lights.length;p0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching silhouette fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = vColor;"),a.push("}"),a}}]),n}(),vs=function(e){I(n,as);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("uniform int renderPass;"),n.push("uniform vec4 color;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),hs=function(e){I(n,as);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Is=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry picking vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),this._addRemapClipPosLines(n),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry picking fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vPickColor; "),r.push("}"),r}}]),n}(),ys=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),this._addRemapClipPosLines(n),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),ms=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vWorldNormal;"),n.push("out vec4 outColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec3 worldNormal = octDecode(normal.xy); "),n.push(" vWorldNormal = worldNormal;"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outNormal = ivec4(vWorldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),ws=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching occlusion vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching occlusion fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}]),n}(),gs=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec2 vHighPrecisionZW;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching depth fragment shader"),r.push("precision highp float;"),r.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),r.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),r.push("}"),r}}]),n}(),Es=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n,!0),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),Ts=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry shadow vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 outColor;"),n.push("void main(void) {"),n.push(" int colorFlag = int(flags) & 0xF;"),n.push(" bool visible = (colorFlag > 0);"),n.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push(" if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry shadow fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = encodeFloat( gl_FragCoord.z); "),n.push("}"),n}}]),n}(),bs=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=e._lightsState,r=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Triangles batching quality draw vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),n.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),r&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),a.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),a.push("vFragDepth = 1.0 + clipPos.w;")),r&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),n.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._sectionPlanesState,r=e._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=n.clippingCaps,s=[];s.push("#version 300 es"),s.push("// Triangles batching quality draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform sampler2D uColorMap;"),s.push("uniform sampler2D uMetallicRoughMap;"),s.push("uniform sampler2D uEmissiveMap;"),s.push("uniform sampler2D uNormalMap;"),s.push("uniform sampler2D uAOMap;"),s.push("in vec4 vViewPosition;"),s.push("in vec3 vViewNormal;"),s.push("in vec4 vColor;"),s.push("in vec2 vUV;"),s.push("in vec2 vMetallicRoughness;"),r.lightMaps.length>0&&s.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(s,!0),r.reflectionMaps.length>0&&s.push("uniform samplerCube reflectionMap;"),r.lightMaps.length>0&&s.push("uniform samplerCube lightMap;"),s.push("uniform vec4 lightAmbient;");for(var o=0,l=r.lights.length;o0&&(s.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),s.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),s.push(" return envMapColor;"),s.push("}")),s.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),s.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),s.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),s.push("}"),s.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" return 1.0 / ( gl * gv );"),s.push("}"),s.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" return 0.5 / max( gv + gl, EPSILON );"),s.push("}"),s.push("float D_GGX(const in float alpha, const in float dotNH) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),s.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float alpha = ( roughness * roughness );"),s.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),s.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),s.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),s.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),s.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),s.push(" vec3 F = F_Schlick( specularColor, dotLH );"),s.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),s.push(" float D = D_GGX( alpha, dotNH );"),s.push(" return F * (G * D);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),s.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),s.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),s.push(" vec4 r = roughness * c0 + c1;"),s.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),s.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),s.push(" return specularColor * AB.x + AB.y;"),s.push("}"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&(s.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.lightMaps.length>0&&(s.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),s.push(" irradiance *= PI;"),s.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),r.reflectionMaps.length>0&&(s.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),s.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),s.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),s.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),s.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),s.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),s.push("}")),s.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),s.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),s.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),s.push("}"),s.push("out vec4 outColor;"),s.push("void main(void) {"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var p=0,A=n.getNumAllocatedSectionPlanes();p (0.002 * vClipPosition.w)) {"),s.push(" discard;"),s.push(" }"),s.push(" if (dist > 0.0) { "),s.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" return;"),s.push("}")):(s.push(" if (dist > 0.0) { "),s.push(" discard;"),s.push(" }")),s.push("}")}s.push("IncidentLight light;"),s.push("Material material;"),s.push("Geometry geometry;"),s.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),s.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),s.push("float opacity = float(vColor.a) / 255.0;"),s.push("vec3 baseColor = rgb;"),s.push("float specularF0 = 1.0;"),s.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),s.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),s.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),s.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),s.push("baseColor *= colorTexel.rgb;"),s.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),s.push("metallic *= metalRoughTexel.b;"),s.push("roughness *= metalRoughTexel.g;"),s.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),s.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),s.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),s.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),s.push("geometry.position = vViewPosition.xyz;"),s.push("geometry.viewNormal = -normalize(viewNormal);"),s.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),r.lightMaps.length>0&&s.push("geometry.worldNormal = normalize(vWorldNormal);"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&s.push("computePBRLightMapping(geometry, material, reflectedLight);");for(var d=0,v=r.lights.length;d0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching pick flat normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching pick flat normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("in vec4 vWorldPosition;"),n){r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),r.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),r.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),r.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),Ps=function(e){I(n,is);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles batching color texture vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),n.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._lightsState,r=e._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Triangles batching color texture fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),e.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),a.push("uniform sampler2D uColorMap;"),this._withSAO&&(a.push("uniform sampler2D uOcclusionTexture;"),a.push("uniform vec4 uSAOParams;"),a.push("const float packUpscale = 256. / 255.;"),a.push("const float unpackDownScale = 255. / 256.;"),a.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),a.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),a.push("float unpackRGBToFloat( const in vec4 v ) {"),a.push(" return dot( v, unPackFactors );"),a.push("}")),a.push("uniform float gammaFactor;"),a.push("vec4 linearToLinear( in vec4 value ) {"),a.push(" return value;"),a.push("}"),a.push("vec4 sRGBToLinear( in vec4 value ) {"),a.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),a.push("}"),a.push("vec4 gammaToLinear( in vec4 value) {"),a.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),a.push("}"),t&&(a.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),a.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),a.push("}")),i){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(var s=0,o=r.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(var f=0,p=r.getNumAllocatedSectionPlanes();f 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),a.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),a.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),a.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(var A=0,d=n.lights.length;A4096?e=4096:e<1024&&(e=1024),_s=e}},{key:"maxGeometryBatchSize",get:function(){return Bs},set:function(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Bs=e}}]),e}(),Ss=new Os,Ns=P((function e(){b(this,e),this.maxVerts=Ss.maxGeometryBatchSize,this.maxIndices=3*Ss.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]})),Ls=$.mat4(),Ms=$.mat4();function xs(e,t,n){for(var r=e.length,i=new Uint16Array(r),a=t[0],s=t[1],o=t[2],l=t[3]-a,u=t[4]-s,c=t[5]-o,f=65525,p=f/l,A=f/u,d=f/c,v=function(e){return e>=0?e:0},h=0;h=0?1:-1),s=(1-Math.abs(r))*(i>=0?1:-1),r=a,i=s}return new Int8Array([Math[t](127.5*r+(r<0?-1:0)),Math[n](127.5*i+(i<0?-1:0))])}function Us(e){var t=e[0],n=e[1];t/=t<0?127:128,n/=n<0?127:128;var r=1-Math.abs(t)-Math.abs(n);r<0&&(t=(1-Math.abs(n))*(t>=0?1:-1),n=(1-Math.abs(t))*(n>=0?1:-1));var i=Math.sqrt(t*t+n*n+r*r);return[t/i,n/i,r/i]}var Gs=$.vec3(),ks=$.vec3(),js=$.vec3(),Vs=$.vec3(),Qs=$.mat4(),Ws=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=Gs;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=ks;if(l){var y=js;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,Qs),(v=Vs)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),o.indicesBuf.bind(),s.drawElements(s.TRIANGLES,o.indicesBuf.numItems,o.indicesBuf.itemType,0),o.indicesBuf.unbind()}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec4 pickColor;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vPickColor = pickColor;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),zs=$.vec3(),Ks=$.vec3(),Ys=$.vec3(),Xs=$.vec3(),qs=$.mat4(),Js=function(e){I(n,rs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=zs;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=Ks;if(l){var y=Ys;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,qs),(v=Xs)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(o.edgeIndicesBuf.bind(),s.drawElements(s.LINES,o.edgeIndicesBuf.numItems,o.edgeIndicesBuf.itemType,0),o.edgeIndicesBuf.unbind()):s.drawArrays(s.POINTS,0,o.positionsBuf.numItems)}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0;e.pointsMaterial._state;var n=[];return n.push("#version 300 es"),n.push("// SnapBatchingDepthRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// SnapBatchingDepthRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),Zs=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ws(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new Js(this._scene))}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Ws(this._scene,!1)),this._snapDepthBufInitRenderer}},{key:"snapDepthRenderer",get:function(){return this._snapDepthRenderer||(this._snapDepthRenderer=new Js(this._scene)),this._snapDepthRenderer}},{key:"_destroy",value:function(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}]),e}(),$s={};var eo=$.mat4(),to=$.mat4(),no=$.vec4([0,0,0,1]),ro=$.vec3(),io=$.vec3(),ao=$.vec3(),so=$.vec3(),oo=$.vec3(),lo=$.vec3(),uo=$.vec3(),co=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.sortId="TrianglesBatchingLayer"+(t.solid?"-solid":"-surface")+(t.autoNormals?"-autonormals":"-normals")+(t.textureSet&&t.textureSet.colorTexture?"-colorTexture":"")+(t.textureSet&&t.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=t.layerIndex,this._batchingRenderers=(n=t.model.scene,r=n.id,(i=Cs[r])||(i=new Rs(n),Cs[r]=i,i._compile(),i.eagerCreateRenders(),n.on("compile",(function(){i._compile(),i.eagerCreateRenders()})),n.on("destroyed",(function(){delete Cs[r],i._destroy()}))),i),this._snapBatchingRenderers=function(e){var t=e.id,n=$s[t];return n||(n=new Zs(e),$s[t]=n,n._compile(),n.eagerCreateRenders(),e.on("compile",(function(){n._compile(),n.eagerCreateRenders()})),e.on("destroyed",(function(){delete $s[t],n._destroy()}))),n}(t.model.scene),this._buffer=new Ns(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({origin:$.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:t.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=$.mat4(t.positionsDecodeMatrix)),t.uvDecodeMatrix?(this._state.uvDecodeMatrix=$.mat3(t.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,t.origin&&this._state.origin.set(t.origin),this.solid=!!t.solid}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)for(var P=0,R=s.length;P0){var C=eo;I?$.inverseMat4($.transposeMat4(I,to),C):$.identityMat4(C,C),function(e,t,n,r,i){function a(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}var s,o,l,u,c,f=new Float32Array([0,0,0,0]),p=new Float32Array([0,0,0,0]);for(c=0;cu&&(o=s,u=l),(l=a(p,Us(s=Hs(p,"floor","ceil"))))>u&&(o=s,u=l),(l=a(p,Us(s=Hs(p,"ceil","ceil"))))>u&&(o=s,u=l),r[i+c+0]=o[0],r[i+c+1]=o[1],r[i+c+2]=0}(C,a,a.length,w.normals,w.normals.length)}if(u)for(var _=0,B=u.length;_0)for(var k=0,j=o.length;k0)for(var V=0,Q=l.length;V0){var r=this._state.positionsDecodeMatrix?new Uint16Array(n.positions):xs(n.positions,this._modelAABB,this._state.positionsDecodeMatrix=$.mat4());if(e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,r.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(var i=0,a=this._portions.length;i0){var u=new Int8Array(n.normals);e.normalsBuf=new Dt(t,t.ARRAY_BUFFER,u,n.normals.length,3,t.STATIC_DRAW,!0)}if(n.colors.length>0){var c=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,c,n.colors.length,4,t.DYNAMIC_DRAW,!1)}if(n.uv.length>0)if(e.uvDecodeMatrix){e.uvBuf=new Dt(t,t.ARRAY_BUFFER,n.uv,n.uv.length,2,t.STATIC_DRAW,!1)}else{var f=Dn.getUVBounds(n.uv),p=Dn.compressUVs(n.uv,f.min,f.max),A=p.quantized;e.uvDecodeMatrix=$.mat3(p.decodeMatrix),e.uvBuf=new Dt(t,t.ARRAY_BUFFER,A,A.length,2,t.STATIC_DRAW,!1)}if(n.metallicRoughness.length>0){var d=new Uint8Array(n.metallicRoughness);e.metallicRoughnessBuf=new Dt(t,t.ARRAY_BUFFER,d,n.metallicRoughness.length,2,t.STATIC_DRAW,!1)}if(n.positions.length>0){var v=n.positions.length/3,h=new Float32Array(v);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,h,h.length,1,t.DYNAMIC_DRAW,!1)}if(n.pickColors.length>0){var I=new Uint8Array(n.pickColors);e.pickColorsBuf=new Dt(t,t.ARRAY_BUFFER,I,n.pickColors.length,4,t.STATIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var y=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,y,n.offsets.length,3,t.DYNAMIC_DRAW)}if(n.indices.length>0){var m=new Uint32Array(n.indices);e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,m,n.indices.length,1,t.STATIC_DRAW)}if(n.edgeIndices.length>0){var w=new Uint32Array(n.edgeIndices);e.edgeIndicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,w,n.edgeIndices.length,1,t.STATIC_DRAW)}this._state.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&e.textureSet&&e.textureSet.colorTexture&&e.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!e.uvBuf&&!!e.textureSet&&!!e.textureSet.colorTexture,this._buffer=null,this._finalized=!0}}},{key:"isEmpty",value:function(){return!this._state.indicesBuf}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,!0)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=e,r=this._portions[n],i=4*r.vertsBaseIndex,a=4*r.numVerts,s=this._scratchMemory.getUInt8Array(a),o=t[0],l=t[1],u=t[2],c=t[3],f=0;f3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=e,o=this._portions[s],l=o.vertsBaseIndex,u=o.numVerts,c=l,f=u,p=!!(t&Me),A=!!(t&Ge),d=!!(t&ke),v=!!(t&je),h=!!(t&Ve),I=!!(t&Fe),y=!!(t&xe);i=!p||y||A||d&&!this.model.scene.highlightMaterial.glowThrough||v&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!p||y?qa.NOT_RENDERED:v?qa.SILHOUETTE_SELECTED:d?qa.SILHOUETTE_HIGHLIGHTED:A?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var m=0;m=!p||y?qa.NOT_RENDERED:v?qa.EDGES_SELECTED:d?qa.EDGES_HIGHLIGHTED:A?qa.EDGES_XRAYED:h?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED;var w=p&&!y&&I?qa.PICK:qa.NOT_RENDERED,g=t&He?1:0;if(r){this._deferredFlagValues||(this._deferredFlagValues=new Float32Array(this._numVerts));for(var E=c,T=c+f;EI)&&(I=b,r.set(y),i&&$.triangleNormal(A,d,v,i),h=!0)}}return h&&i&&($.transformVec3(this.model.worldNormalMatrix,i,i),$.normalizeVec3(i)),h}},{key:"destroy",value:function(){var e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.normalsBuf&&(e.normalsBuf.destroy(),e.normalsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.indicesBuf&&(e.indicesBuf.destroy(),e.indicessBuf=null),e.edgeIndicesBuf&&(e.edgeIndicesBuf.destroy(),e.edgeIndicessBuf=null),e.destroy()}}]),e}(),fo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e,t,n,r=this._scene,i=r._sectionPlanesState,a=r._lightsState,s=i.getNumAllocatedSectionPlanes()>0,o=[];for(o.push("#version 300 es"),o.push("// Instancing geometry drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec2 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),r.entityOffsetsEnabled&&o.push("in vec3 offset;"),o.push("in vec4 modelMatrixCol0;"),o.push("in vec4 modelMatrixCol1;"),o.push("in vec4 modelMatrixCol2;"),o.push("in vec4 modelNormalMatrixCol0;"),o.push("in vec4 modelNormalMatrixCol1;"),o.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(o,!0),r.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;")),o.push("uniform vec4 lightAmbient;"),e=0,t=a.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;")),o.push("out vec4 vColor;"),o.push("void main(void) {"),o.push("int colorFlag = int(flags) & 0xF;"),o.push("if (colorFlag != renderPass) {"),o.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),o.push("} else {"),o.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),o.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),r.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),o.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),e=0,t=a.lights.length;e0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}}]),n}(),po=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry flat-shading drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=n._lightsState,a=r.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry flat-shading drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),n.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),this._withSAO&&(s.push("uniform sampler2D uOcclusionTexture;"),s.push("uniform vec4 uSAOParams;"),s.push("const float packUpscale = 256. / 255.;"),s.push("const float unpackDownScale = 255. / 256.;"),s.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),s.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),s.push("float unpackRGBToFloat( const in vec4 v ) {"),s.push(" return dot( v, unPackFactors );"),s.push("}")),a){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var o=0,l=r.getNumAllocatedSectionPlanes();o> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var c=0,f=r.getNumAllocatedSectionPlanes();c 0.0) { "),s.push(" discard;"),s.push(" }"),s.push("}")}for(s.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),s.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),s.push("float lambertian = 1.0;"),s.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),s.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),s.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),e=0,t=i.lights.length;e0,n=[];return n.push("#version 300 es"),n.push("// Instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 color;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 silhouetteColor;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing fill fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),vo=function(e){I(n,os);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles instancing edges vertex shader"),n.push("uniform int renderPass;"),n.push("uniform vec4 color;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),ho=function(e){I(n,os);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Triangles instancing edges vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeFlag = int(flags) >> 8 & 0xF;"),n.push("if (edgeFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry edges drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Io=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry picking vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 pickColor;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry picking fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vPickColor; "),r.push("}"),r}}]),n}(),yo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry depth vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push(" vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),mo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec2 normal;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("in vec4 modelNormalMatrixCol0;"),n.push("in vec4 modelNormalMatrixCol1;"),n.push("in vec4 modelNormalMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vWorldNormal;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),n.push(" vWorldNormal = worldNormal;"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outNormal = ivec4(vWorldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),wo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// TrianglesInstancingOcclusionRenderer vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesInstancingOcclusionRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}}]),n}(),go=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry depth drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec2 vHighPrecisionZW;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry depth drawing fragment shader"),a.push("precision highp float;"),a.push("precision highp int;"),n.logarithmicDepthBufferEnabled&&(a.push("in float isPerspective;"),a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),a.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),a.push("}"),a}}]),n}(),Eo=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n,!0),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),To=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry shadow drawing vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("bool visible = (colorFlag > 0);"),n.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push("if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),bo={3e3:"linearToLinear",3001:"sRGBToLinear"},Do=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=e._lightsState,r=t.getNumAllocatedSectionPlanes()>0,i=t.clippingCaps,a=[];return a.push("#version 300 es"),a.push("// Instancing geometry quality drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec3 normal;"),a.push("in vec4 color;"),a.push("in vec2 uv;"),a.push("in vec2 metallicRoughness;"),a.push("in float flags;"),e.entityOffsetsEnabled&&a.push("in vec3 offset;"),a.push("in vec4 modelMatrixCol0;"),a.push("in vec4 modelMatrixCol1;"),a.push("in vec4 modelMatrixCol2;"),a.push("in vec4 modelNormalMatrixCol0;"),a.push("in vec4 modelNormalMatrixCol1;"),a.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(a,!0),a.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;")),a.push("vec3 octDecode(vec2 oct) {"),a.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),a.push(" if (v.z < 0.0) {"),a.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),a.push("out vec4 vViewPosition;"),a.push("out vec3 vViewNormal;"),a.push("out vec4 vColor;"),a.push("out vec2 vUV;"),a.push("out vec2 vMetallicRoughness;"),n.lightMaps.length>0&&a.push("out vec3 vWorldNormal;"),r&&(a.push("out vec4 vWorldPosition;"),a.push("out float vFlags;"),i&&a.push("out vec4 vClipPosition;")),a.push("void main(void) {"),a.push("int colorFlag = int(flags) & 0xF;"),a.push("if (colorFlag != renderPass) {"),a.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),a.push("} else {"),a.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),a.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&a.push(" worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),a.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),a.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),a.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(a.push("vFragDepth = 1.0 + clipPos.w;"),a.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),r&&(a.push("vWorldPosition = worldPosition;"),a.push("vFlags = flags;"),i&&a.push("vClipPosition = clipPos;")),a.push("vViewPosition = viewPosition;"),a.push("vViewNormal = viewNormal;"),a.push("vColor = color;"),a.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),a.push("vMetallicRoughness = metallicRoughness;"),n.lightMaps.length>0&&a.push("vWorldNormal = worldNormal.xyz;"),a.push("gl_Position = clipPos;"),a.push("}"),a.push("}"),a}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e.gammaOutput,n=e._sectionPlanesState,r=e._lightsState,i=n.getNumAllocatedSectionPlanes()>0,a=n.clippingCaps,s=[];s.push("#version 300 es"),s.push("// Instancing geometry quality drawing fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform sampler2D uColorMap;"),s.push("uniform sampler2D uMetallicRoughMap;"),s.push("uniform sampler2D uEmissiveMap;"),s.push("uniform sampler2D uNormalMap;"),this._withSAO&&(s.push("uniform sampler2D uOcclusionTexture;"),s.push("uniform vec4 uSAOParams;"),s.push("const float packUpscale = 256. / 255.;"),s.push("const float unpackDownScale = 255. / 256.;"),s.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),s.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),s.push("float unpackRGBToFloat( const in vec4 v ) {"),s.push(" return dot( v, unPackFactors );"),s.push("}")),r.reflectionMaps.length>0&&s.push("uniform samplerCube reflectionMap;"),r.lightMaps.length>0&&s.push("uniform samplerCube lightMap;"),s.push("uniform vec4 lightAmbient;");for(var o=0,l=r.lights.length;o0&&s.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(s,!0),s.push("#define PI 3.14159265359"),s.push("#define RECIPROCAL_PI 0.31830988618"),s.push("#define RECIPROCAL_PI2 0.15915494"),s.push("#define EPSILON 1e-6"),s.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),s.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),s.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),s.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),s.push(" return normalize(surf_norm );"),s.push(" }"),s.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),s.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),s.push(" vec2 st0 = dFdx( uv.st );"),s.push(" vec2 st1 = dFdy( uv.st );"),s.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),s.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),s.push(" vec3 N = normalize( surf_norm );"),s.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),s.push(" mat3 tsn = mat3( S, T, N );"),s.push(" return normalize( tsn * mapN );"),s.push("}"),s.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),s.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),s.push("}"),s.push("struct IncidentLight {"),s.push(" vec3 color;"),s.push(" vec3 direction;"),s.push("};"),s.push("struct ReflectedLight {"),s.push(" vec3 diffuse;"),s.push(" vec3 specular;"),s.push("};"),s.push("struct Geometry {"),s.push(" vec3 position;"),s.push(" vec3 viewNormal;"),s.push(" vec3 worldNormal;"),s.push(" vec3 viewEyeDir;"),s.push("};"),s.push("struct Material {"),s.push(" vec3 diffuseColor;"),s.push(" float specularRoughness;"),s.push(" vec3 specularColor;"),s.push(" float shine;"),s.push("};"),s.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),s.push(" float r = ggxRoughness + 0.0001;"),s.push(" return (2.0 / (r * r) - 2.0);"),s.push("}"),s.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),s.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),s.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),s.push("}"),r.reflectionMaps.length>0&&(s.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),s.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),s.push(" vec3 envMapColor = "+bo[r.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),s.push(" return envMapColor;"),s.push("}")),s.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),s.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),s.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),s.push("}"),s.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" return 1.0 / ( gl * gv );"),s.push("}"),s.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),s.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),s.push(" return 0.5 / max( gv + gl, EPSILON );"),s.push("}"),s.push("float D_GGX(const in float alpha, const in float dotNH) {"),s.push(" float a2 = ( alpha * alpha );"),s.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),s.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float alpha = ( roughness * roughness );"),s.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),s.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),s.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),s.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),s.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),s.push(" vec3 F = F_Schlick( specularColor, dotLH );"),s.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),s.push(" float D = D_GGX( alpha, dotNH );"),s.push(" return F * (G * D);"),s.push("}"),s.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),s.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),s.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),s.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),s.push(" vec4 r = roughness * c0 + c1;"),s.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),s.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),s.push(" return specularColor * AB.x + AB.y;"),s.push("}"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&(s.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),r.lightMaps.length>0&&(s.push(" vec3 irradiance = "+bo[r.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),s.push(" irradiance *= PI;"),s.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),r.reflectionMaps.length>0&&(s.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),s.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),s.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),s.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),s.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),s.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),s.push("}")),s.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),s.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),s.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),s.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),s.push("}"),s.push("out vec4 outColor;"),s.push("void main(void) {"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var p=0,A=n.getNumAllocatedSectionPlanes();p (0.002 * vClipPosition.w)) {"),s.push(" discard;"),s.push(" }"),s.push(" if (dist > 0.0) { "),s.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&s.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" return;"),s.push("}")):(s.push(" if (dist > 0.0) { "),s.push(" discard;"),s.push(" }")),s.push("}")}s.push("IncidentLight light;"),s.push("Material material;"),s.push("Geometry geometry;"),s.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),s.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),s.push("float opacity = float(vColor.a) / 255.0;"),s.push("vec3 baseColor = rgb;"),s.push("float specularF0 = 1.0;"),s.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),s.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),s.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),s.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),s.push("baseColor *= colorTexel.rgb;"),s.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),s.push("metallic *= metalRoughTexel.b;"),s.push("roughness *= metalRoughTexel.g;"),s.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),s.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),s.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),s.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),s.push("geometry.position = vViewPosition.xyz;"),s.push("geometry.viewNormal = -normalize(viewNormal);"),s.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),r.lightMaps.length>0&&s.push("geometry.worldNormal = normalize(vWorldNormal);"),(r.lightMaps.length>0||r.reflectionMaps.length>0)&&s.push("computePBRLightMapping(geometry, material, reflectedLight);");for(var d=0,v=r.lights.length;d0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry normals vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),this._addRemapClipPosLines(n,3),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&n.push("out float vFlags;"),n.push("out vec4 vWorldPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&n.push("vFlags = flags;"),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Batched geometry normals fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("in vec4 vWorldPosition;"),n){r.push("in float vFlags;");for(var i=0;i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),r.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),r.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),r.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),r.push("}"),r}}]),n}(),Ro=function(e){I(n,ss);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){var e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),n.push("uniform mat3 uvDecodeMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vViewPosition;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vViewPosition = viewPosition;"),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n.gammaOutput,i=n._sectionPlanesState,a=n._lightsState,s=i.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),n.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),o.push("uniform float gammaFactor;"),o.push("vec4 linearToLinear( in vec4 value ) {"),o.push(" return value;"),o.push("}"),o.push("vec4 sRGBToLinear( in vec4 value ) {"),o.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),o.push("}"),o.push("vec4 gammaToLinear( in vec4 value) {"),o.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),o.push("}"),r&&(o.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),o.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),o.push("}")),s){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(var l=0,u=i.getNumAllocatedSectionPlanes();l> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(var f=0,p=i.getNumAllocatedSectionPlanes();f 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}for(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),o.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),o.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),o.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),e=0,t=a.lights.length;e0,n=[];return n.push("#version 300 es"),n.push("// SnapInstancingDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec4 pickColor;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("out float vFlags;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vWorldPosition = worldPosition;"),t&&n.push(" vFlags = flags;"),n.push("vPickColor = pickColor;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),xo=$.vec3(),Fo=$.vec3(),Ho=$.vec3(),Uo=$.vec3(),Go=$.mat4(),ko=function(e){I(n,rs);var t=m(n);function n(e){return b(this,n),t.call(this,e,!1,{instancing:!0})}return P(n,[{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(t),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=t.aabb,A=e.pickViewMatrix||a.viewMatrix;this._vaoCache.has(t)?s.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(o));var d,v,h=xo;if(h[0]=$.safeInv(p[3]-p[0])*$.MAX_INT,h[1]=$.safeInv(p[4]-p[1])*$.MAX_INT,h[2]=$.safeInv(p[5]-p[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(h[0]),e.snapPickCoordinateScale[1]=$.safeInv(h[1]),e.snapPickCoordinateScale[2]=$.safeInv(h[2]),l||0!==u[0]||0!==u[1]||0!==u[2]){var I=Fo;if(l){var y=$.transformPoint3(c,l,Ho);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],d=Be(A,I,Go),(v=Uo)[0]=a.eye[0]-I[0],v[1]=a.eye[1]-I[1],v[2]=a.eye[2]-I[2],e.snapPickOrigin[0]=I[0],e.snapPickOrigin[1]=I[1],e.snapPickOrigin[2]=I[2]}else d=A,v=a.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform2fv(this.uVectorA,e.snapVectorA),s.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),s.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),s.uniform3fv(this._uCoordinateScaler,h),s.uniform1i(this._uRenderPass,n),s.uniform1i(this._uPickInvisible,e.pickInvisible);var m=0;this._matricesUniformBlockBufferData.set(f,0),this._matricesUniformBlockBufferData.set(d,m+=16),this._matricesUniformBlockBufferData.set(a.projMatrix,m+=16),this._matricesUniformBlockBufferData.set(o.positionsDecodeMatrix,m+=16),s.bindBuffer(s.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),s.bufferData(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,s.DYNAMIC_DRAW),s.bindBufferBase(s.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);var w=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,w),this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(o.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(o.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(o.modelMatrixCol2Buf),s.vertexAttribDivisor(this._aModelMatrixCol0.location,1),s.vertexAttribDivisor(this._aModelMatrixCol1.location,1),s.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(o.flagsBuf),s.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(o.edgeIndicesBuf.bind(),s.drawElementsInstanced(s.LINES,o.edgeIndicesBuf.numItems,o.edgeIndicesBuf.itemType,0,o.numInstances),o.edgeIndicesBuf.unbind()):s.drawArraysInstanced(s.POINTS,0,o.positionsBuf.numItems,o.numInstances),s.vertexAttribDivisor(this._aModelMatrixCol0.location,0),s.vertexAttribDivisor(this._aModelMatrixCol1.location,0),s.vertexAttribDivisor(this._aModelMatrixCol2.location,0),s.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&s.vertexAttribDivisor(this._aOffset.location,0)}}},{key:"_allocate",value:function(){v(E(n.prototype),"_allocate",this).call(this);var e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),this._uCameraEyeRtc=e.getLocation("uCameraEyeRtc"),this.uVectorA=e.getLocation("snapVectorA"),this.uInverseVectorAB=e.getLocation("snapInvVectorAB"),this._uLayerNumber=e.getLocation("layerNumber"),this._uCoordinateScaler=e.getLocation("coordinateScaler")}},{key:"_bindProgram",value:function(){this._program.bind()}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// SnapInstancingDepthRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 snapVectorA;"),n.push("uniform vec2 snapInvVectorAB;"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),n.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int pickFlag = int(flags) >> 12 & 0xF;"),n.push("if (pickFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// SnapInstancingDepthRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int layerNumber;"),n.push("uniform vec3 coordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push("}")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),n}(),jo=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._snapDepthRenderer&&!this._snapDepthRenderer.getValid()&&(this._snapDepthRenderer.destroy(),this._snapDepthRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Mo(this._scene,!1)),this._snapDepthRenderer||(this._snapDepthRenderer=new ko(this._scene))}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Mo(this._scene,!1)),this._snapDepthBufInitRenderer}},{key:"snapDepthRenderer",get:function(){return this._snapDepthRenderer||(this._snapDepthRenderer=new ko(this._scene)),this._snapDepthRenderer}},{key:"_destroy",value:function(){this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._snapDepthRenderer&&this._snapDepthRenderer.destroy()}}]),e}(),Vo={};var Qo=new Float32Array(1),Wo=$.vec4([0,0,0,1]),zo=new Float32Array(3),Ko=$.vec3(),Yo=$.vec3(),Xo=$.vec3(),qo=$.vec3(),Jo=$.vec3(),Zo=$.vec3(),$o=$.vec3(),el=new Float32Array(4),tl=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.sortId="TrianglesInstancingLayer"+(t.solid?"-solid":"-surface")+(t.normals?"-normals":"-autoNormals"),this.layerIndex=t.layerIndex,this._instancingRenderers=(n=t.model.scene,r=n.id,(i=_o[r])||(i=new Co(n),_o[r]=i,i._compile(),i.eagerCreateRenders(),n.on("compile",(function(){i._compile(),i.eagerCreateRenders()})),n.on("destroyed",(function(){delete _o[r],i._destroy()}))),i),this._snapInstancingRenderers=function(e){var t=e.id,n=Vo[t];return n||(n=new jo(e),Vo[t]=n,n._compile(),n.eagerCreateRenders(),e.on("compile",(function(){n._compile(),n.eagerCreateRenders()})),e.on("destroyed",(function(){delete Vo[t],n._destroy()}))),n}(t.model.scene),this._aabb=$.collapseAABB3(),this._state=new Wt({numInstances:0,obb:$.OBB3(),origin:$.vec3(),geometry:t.geometry,textureSet:t.textureSet,pbrSupported:!1,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,t.origin&&this._state.origin.set(t.origin),this._finalized=!1,this.solid=!!t.solid,this.numIndices=t.geometry.numIndices}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){e.colorsBuf=new Dt(r,r.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,r.DYNAMIC_DRAW,!1),this._colors=[]}if(this._metallicRoughness.length>0){var s=new Uint8Array(this._metallicRoughness);e.metallicRoughnessBuf=new Dt(r,r.ARRAY_BUFFER,s,this._metallicRoughness.length,2,r.STATIC_DRAW,!1)}if(a>0){e.flagsBuf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(a),a,1,r.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){e.offsetsBuf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,r.DYNAMIC_DRAW,!1),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){e.positionsBuf=new Dt(r,r.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,r.STATIC_DRAW,!1),e.positionsDecodeMatrix=$.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){var o=new Uint8Array(t.colorsCompressed);e.colorsBuf=new Dt(r,r.ARRAY_BUFFER,o,o.length,4,r.STATIC_DRAW,!1)}if(t.uvCompressed&&t.uvCompressed.length>0){var l=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Dt(r,r.ARRAY_BUFFER,l,l.length,2,r.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Dt(r,r.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,r.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Dt(r,r.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,r.STATIC_DRAW)),this._modelMatrixCol0.length>0){var u=!1;e.modelMatrixCol0Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,r.STATIC_DRAW,u),e.modelMatrixCol1Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,r.STATIC_DRAW,u),e.modelMatrixCol2Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,r.STATIC_DRAW,u),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,r.STATIC_DRAW,u),e.modelNormalMatrixCol1Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,r.STATIC_DRAW,u),e.modelNormalMatrixCol2Buf=new Dt(r,r.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,r.STATIC_DRAW,u),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){e.pickColorsBuf=new Dt(r,r.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,r.STATIC_DRAW,!1),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&n&&n.colorTexture&&n.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!n&&!!n.colorTexture,this._state.geometry=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";tempUint8Vec4[0]=t[0],tempUint8Vec4[1]=t[1],tempUint8Vec4[2]=t[2],tempUint8Vec4[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(tempUint8Vec4,4*e)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?1:0)<<16,Qo[0]=c,this._state.flagsBuf&&this._state.flagsBuf.setData(Qo,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(zo[0]=t[0],zo[1]=t[1],zo[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(zo,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"getEachVertex",value:function(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;var n=this._state,r=n.geometry,i=this._portions[e];if(i)for(var a=r.quantizedPositions,s=n.origin,o=i.offset,l=s[0]+o[0],u=s[1]+o[1],c=s[2]+o[2],f=Wo,p=i.matrix,A=this.model.sceneModelMatrix,d=n.positionsDecodeMatrix,v=0,h=a.length;vy)&&(y=P,r.set(m),i&&$.triangleNormal(d,v,h,i),I=!0)}}return I&&i&&($.transformVec3(o.normalMatrix,i,i),$.transformVec3(this.model.worldNormalMatrix,i,i),$.normalizeVec3(i)),I}},{key:"destroy",value:function(){var e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.modelNormalMatrixCol0Buf&&(e.modelNormalMatrixCol0Buf.destroy(),e.modelNormalMatrixCol0Buf=null),e.modelNormalMatrixCol1Buf&&(e.modelNormalMatrixCol1Buf.destroy(),e.modelNormalMatrixCol1Buf=null),e.modelNormalMatrixCol2Buf&&(e.modelNormalMatrixCol2Buf.destroy(),e.modelNormalMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy(),this._state=null}}]),e}(),nl=function(e){I(n,cs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines batching color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines batching color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),rl=function(e){I(n,cs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines batching silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),this._addMatricesUniformBlockLines(n),n.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines batching silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = color;"),r.push("}"),r}}]),n}(),il=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new nl(this._scene,!1)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new rl(this._scene)),this._silhouetteRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}]),e}(),al={};var sl=P((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5e6;b(this,e),t>5e6&&(t=5e6),this.maxVerts=t,this.maxIndices=3*t,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]})),ol=function(){function e(t){var n,r,i;b(this,e),this.layerIndex=t.layerIndex,this._batchingRenderers=(n=t.model.scene,r=n.id,(i=al[r])||(i=new il(n),al[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete al[r],i._destroy()}))),i),this.model=t.model,this._buffer=new sl(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:$.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(t.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,t.origin&&(this._state.origin=$.vec3(t.origin))}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){var r=new Uint16Array(n.positions);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,n.positions.length,3,t.STATIC_DRAW)}else{var i=xs(new Float32Array(n.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,i,n.positions.length,3,t.STATIC_DRAW)}if(n.colors.length>0){var a=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,a,n.colors.length,4,t.DYNAMIC_DRAW,!1)}if(n.colors.length>0){var s=n.colors.length/4,o=new Float32Array(s);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,o,o.length,1,t.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var l=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,l,n.offsets.length,3,t.DYNAMIC_DRAW)}if(n.indices.length>0){var u=new Uint32Array(n.indices);e.indicesBuf=new Dt(t,t.ELEMENT_ARRAY_BUFFER,u,n.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,!0)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=2*e,r=4*this._portions[n],i=4*this._portions[n+1],a=this._scratchMemory.getUInt8Array(i),s=t[0],o=t[1],l=t[2],u=t[3],c=0;c3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=2*e,o=this._portions[s],l=this._portions[s+1],u=o,c=l,f=!!(t&Me),p=!!(t&Ge),A=!!(t&ke),d=!!(t&je),v=!!(t&Fe),h=!!(t&xe);i=!f||h||p||A&&!this.model.scene.highlightMaterial.glowThrough||d&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!f||h?qa.NOT_RENDERED:d?qa.SILHOUETTE_SELECTED:A?qa.SILHOUETTE_HIGHLIGHTED:p?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var I=f&&!h&&v?qa.PICK:qa.NOT_RENDERED,y=t&He?1:0;if(r){this._deferredFlagValues||(this._deferredFlagValues=new Float32Array(this._numVerts));for(var m=u,w=u+c;m0,n=[];return n.push("#version 300 es"),n.push("// Lines instancing color vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec4 color;"),n.push("in float flags;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 lightAmbient;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Lines instancing color fragment shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return this._withSAO?(a.push(" float viewportWidth = uSAOParams[0];"),a.push(" float viewportHeight = uSAOParams[1];"),a.push(" float blendCutoff = uSAOParams[2];"),a.push(" float blendFactor = uSAOParams[3];"),a.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),a.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),a.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):a.push(" outColor = vColor;"),n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}]),n}(),ul=function(e){I(n,fs);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Lines instancing silhouette vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(n),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;")),n.push("uniform vec4 color;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),n.push("if (silhouetteFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Lines instancing silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = color;"),r.push("}"),r}}]),n}(),cl=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new ll(this._scene)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new ul(this._scene)),this._silhouetteRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy()}}]),e}(),fl={};var pl=new Uint8Array(4),Al=new Float32Array(1),dl=new Float32Array(3),vl=new Float32Array(4),hl=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.material=t.material,this.sortId="LinesInstancingLayer",this.layerIndex=t.layerIndex,this._linesInstancingRenderers=(n=t.model.scene,r=n.id,(i=fl[r])||(i=new cl(n),fl[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete fl[r],i._destroy()}))),i),this._aabb=$.collapseAABB3(),this._state=new Wt({obb:$.OBB3(),numInstances:0,origin:null,geometry:t.geometry,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,t.origin&&(this._state.origin=$.vec3(t.origin)),this._finalized=!1}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){this._state.colorsBuf=new Dt(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,!1),this._colors=[]}if(n>0){this._state.flagsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(n),n,1,e.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){this._state.offsetsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,!1),this._offsets=[]}if(this._modelMatrixCol0.length>0){var r=!1;this._state.modelMatrixCol0Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,r),this._state.modelMatrixCol1Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,r),this._state.modelMatrixCol2Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,r),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this._state.geometry=null,this._finalized=!0}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";pl[0]=t[0],pl[1]=t[1],pl[2]=t[2],pl[3]=t[3],this._state.colorsBuf.setData(pl,4*e,4)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?255:0)<<16,Al[0]=c,this._state.flagsBuf.setData(Al,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(dl[0]=t[0],dl[1]=t[1],dl[2]=t[2],this._state.offsetsBuf.setData(dl,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"setMatrix",value:function(e,t){if(!this._finalized)throw"Not finalized";var n=4*e;vl[0]=t[0],vl[1]=t[4],vl[2]=t[8],vl[3]=t[12],this._state.modelMatrixCol0Buf.setData(vl,n),vl[0]=t[1],vl[1]=t[5],vl[2]=t[9],vl[3]=t[13],this._state.modelMatrixCol1Buf.setData(vl,n),vl[0]=t[2],vl[1]=t[6],vl[2]=t[10],vl[3]=t[14],this._state.modelMatrixCol2Buf.setData(vl,n)}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._linesInstancingRenderers.colorRenderer&&this._linesInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT)}},{key:"drawDepth",value:function(e,t){}},{key:"drawNormals",value:function(e,t){}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED)}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED)}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._linesInstancingRenderers.silhouetteRenderer&&this._linesInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED)}},{key:"drawEdgesColorOpaque",value:function(e,t){}},{key:"drawEdgesColorTransparent",value:function(e,t){}},{key:"drawEdgesXRayed",value:function(e,t){}},{key:"drawEdgesHighlighted",value:function(e,t){}},{key:"drawEdgesSelected",value:function(e,t){}},{key:"drawOcclusion",value:function(e,t){}},{key:"drawShadow",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){}},{key:"drawPickDepths",value:function(e,t){}},{key:"drawPickNormals",value:function(e,t){}},{key:"destroy",value:function(){var e=this._state;e.positionsBuf&&(e.positionsBuf.destroy(),e.positionsBuf=null),e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.destroy()}}]),e}(),Il=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{incrementDrawState:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial,r=[];return r.push("#version 300 es"),r.push("// Points batching color vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("in float flags;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),n.filterIntensity&&r.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),n.filterIntensity&&(r.push("float intensity = float(color.a) / 255.0;"),r.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {")),r.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),r.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),n.filterIntensity&&r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),yl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching silhouette vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),this._addMatricesUniformBlockLines(r),r.push("uniform vec4 color;"),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),r.push("if (silhouetteFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points batching silhouette vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("outColor = color;"),a.push("}"),a}}]),n}(),ml=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching pick mesh vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 pickColor;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vPickColor;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),r.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("gl_PointSize += 10.0;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching pick mesh vertex shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vPickColor; "),r.push("}"),r}}]),n}(),wl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batched pick depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vViewPosition;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vViewPosition = viewPosition;"),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("gl_PointSize += 10.0;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batched pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),gl=function(e){I(n,ls);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points batching occlusion vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push(" } else {"),r.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push(" gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push(" }"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points batching occlusion fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push(" }")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),r.push("}"),r}}]),n}(),El=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new Il(this._scene)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new yl(this._scene)),this._silhouetteRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ml(this._scene)),this._pickMeshRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new wl(this._scene)),this._pickDepthRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new gl(this._scene)),this._occlusionRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}]),e}(),Tl={};var bl=P((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5e6;b(this,e),t>5e6&&(t=5e6),this.maxVerts=t,this.maxIndices=3*t,this.positions=[],this.colors=[],this.intensities=[],this.pickColors=[],this.offsets=[]})),Dl=function(){function e(t){b(this,e),this.model=t.model,this.sortId="PointsBatchingLayer",this.layerIndex=t.layerIndex,this._pointsBatchingRenderers=function(e){var t=e.id,n=Tl[t];return n||(n=new El(e),Tl[t]=n,n._compile(),e.on("compile",(function(){n._compile()})),e.on("destroyed",(function(){delete Tl[t],n._destroy()}))),n}(t.model.scene),this._buffer=new bl(t.maxGeometryBatchSize),this._scratchMemory=t.scratchMemory,this._state=new Wt({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:$.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=$.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,t.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(t.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,t.origin&&(this._state.origin=$.vec3(t.origin))}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){var r=new Uint16Array(n.positions);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,r,n.positions.length,3,t.STATIC_DRAW)}else{var i=xs(new Float32Array(n.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Dt(t,t.ARRAY_BUFFER,i,n.positions.length,3,t.STATIC_DRAW)}if(n.colors.length>0){var a=new Uint8Array(n.colors);e.colorsBuf=new Dt(t,t.ARRAY_BUFFER,a,n.colors.length,4,t.STATIC_DRAW,!1)}if(n.positions.length>0){var s=n.positions.length/3,o=new Float32Array(s);e.flagsBuf=new Dt(t,t.ARRAY_BUFFER,o,o.length,1,t.DYNAMIC_DRAW,!1)}if(n.pickColors.length>0){var l=new Uint8Array(n.pickColors);e.pickColorsBuf=new Dt(t,t.ARRAY_BUFFER,l,n.pickColors.length,4,t.STATIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&n.offsets.length>0){var u=new Float32Array(n.offsets);e.offsetsBuf=new Dt(t,t.ARRAY_BUFFER,u,n.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized"}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";for(var n=2*e,r=4*this._portions[n],i=4*this._portions[n+1],a=this._scratchMemory.getUInt8Array(i),s=t[0],o=t[1],l=t[2],u=0;u0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing color vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("in float flags;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),n.filterIntensity&&r.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),n.filterIntensity&&(r.push("float intensity = float(color.a) / 255.0;"),r.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {")),r.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),r.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),n.filterIntensity&&r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing color fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),Rl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"drawLayer",value:function(e,t,r){v(E(n.prototype),"drawLayer",this).call(this,e,t,r,{colorUniform:!0})}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing silhouette vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 color;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),r.push("uniform vec4 silhouetteColor;"),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),r.push("if (silhouetteFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing silhouette fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vColor;"),r.push("}"),r}}]),n}(),Cl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing pick mesh vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 pickColor;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vPickColor;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),r.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),r.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing pick mesh fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("outColor = vPickColor; "),r.push("}"),r}}]),n}(),_l=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing pick depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),r.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(r),this._addRemapClipPosLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vViewPosition;"),r.push("void main(void) {"),r.push("int pickFlag = int(flags) >> 12 & 0xF;"),r.push("if (pickFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push(" vFlags = flags;")),r.push(" vViewPosition = viewPosition;"),r.push("vec4 clipPos = projMatrix * viewPosition;"),r.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = remapClipPos(clipPos);"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing pick depth fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),r.push("uniform float pickZNear;"),r.push("uniform float pickZFar;"),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),r.push(" outColor = packDepth(zNormalizedDepth); "),r.push("}"),r}}]),n}(),Bl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing occlusion vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in vec4 color;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push(" vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Points instancing occlusion vertex shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0;i 1.0) {"),r.push(" discard;"),r.push(" }")),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),r.push("}")}return r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push("}"),r}}]),n}(),Ol=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}},{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=e.pointsMaterial._state,r=[];return r.push("#version 300 es"),r.push("// Points instancing depth vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),e.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in float flags;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(r),r.push("uniform float pointSize;"),n.perspectivePoints&&r.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;")),t&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(r.push("vWorldPosition = worldPosition;"),r.push("vFlags = flags;")),r.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&r.push("vFragDepth = 1.0 + clipPos.w;"),r.push("gl_Position = clipPos;"),n.perspectivePoints?(r.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),r.push("gl_PointSize = max(gl_PointSize, "+Math.floor(n.minPerspectivePointSize)+".0);"),r.push("gl_PointSize = min(gl_PointSize, "+Math.floor(n.maxPerspectivePointSize)+".0);")):r.push("gl_PointSize = pointSize;"),r.push("}"),r.push("}"),r}},{key:"_buildFragmentShader",value:function(){var e,t,n=this._scene,r=n._sectionPlanesState,i=r.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Points instancing depth vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("#endif"),n.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("in float vFragDepth;")),i)for(a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;"),e=0,t=r.getNumAllocatedSectionPlanes();e 1.0) {"),a.push(" discard;"),a.push(" }")),i){for(a.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;"),e=0,t=r.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),a.push("}")}return a.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),n.logarithmicDepthBufferEnabled&&a.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),a.push("}"),a}}]),n}(),Sl=function(e){I(n,us);var t=m(n);function n(){return b(this,n),t.apply(this,arguments)}return P(n,[{key:"_buildVertexShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry shadow drawing vertex shader"),n.push("in vec3 position;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 color;"),n.push("in float flags;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("uniform mat4 shadowViewMatrix;"),n.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(n),n.push("uniform float pointSize;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("bool visible = (colorFlag > 0);"),n.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),n.push("if (!visible || transparent) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;")),n.push(" gl_Position = shadowProjMatrix * viewPosition;"),n.push("}"),n.push("gl_PointSize = pointSize;"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState,n=t.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Instancing geometry depth drawing fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),n){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 1.0) {"),r.push(" discard;"),r.push(" }"),n){r.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),r.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),r.push("}"),r}}]),n}(),Nl=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null)}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new Pl(this._scene,!1)),this._colorRenderer}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Rl(this._scene)),this._silhouetteRenderer}},{key:"depthRenderer",get:function(){return this._depthRenderer||(this._depthRenderer=new Ol(this._scene)),this._depthRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Cl(this._scene)),this._pickMeshRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new _l(this._scene)),this._pickDepthRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new Bl(this._scene)),this._occlusionRenderer}},{key:"shadowRenderer",get:function(){return this._shadowRenderer||(this._shadowRenderer=new Sl(this._scene)),this._shadowRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy()}}]),e}(),Ll={};var Ml=new Uint8Array(4),xl=new Float32Array(1),Fl=new Float32Array(3),Hl=new Float32Array(4),Ul=function(){function e(t){var n,r,i;b(this,e),this.model=t.model,this.material=t.material,this.sortId="PointsInstancingLayer",this.layerIndex=t.layerIndex,this._pointsInstancingRenderers=(n=t.model.scene,r=n.id,(i=Ll[r])||(i=new Nl(n),Ll[r]=i,i._compile(),n.on("compile",(function(){i._compile()})),n.on("destroyed",(function(){delete Ll[r],i._destroy()}))),i),this._aabb=$.collapseAABB3(),this._state=new Wt({obb:$.OBB3(),numInstances:0,origin:t.origin?$.vec3(t.origin):null,geometry:t.geometry,positionsDecodeMatrix:t.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=t.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=$.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}return P(e,[{key:"aabb",get:function(){if(this.aabbDirty){$.collapseAABB3(this._aabb);for(var e=0,t=this._meshes.length;e0){n.flagsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,!1)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){n.offsetsBuf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,!1),this._offsets=[]}if(r.positionsCompressed&&r.positionsCompressed.length>0){n.positionsBuf=new Dt(e,e.ARRAY_BUFFER,r.positionsCompressed,r.positionsCompressed.length,3,e.STATIC_DRAW,!1),n.positionsDecodeMatrix=$.mat4(r.positionsDecodeMatrix)}if(r.colorsCompressed&&r.colorsCompressed.length>0){var i=new Uint8Array(r.colorsCompressed);n.colorsBuf=new Dt(e,e.ARRAY_BUFFER,i,i.length,4,e.STATIC_DRAW,!1)}if(this._modelMatrixCol0.length>0){var a=!1;n.modelMatrixCol0Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,a),n.modelMatrixCol1Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,a),n.modelMatrixCol2Buf=new Dt(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,e.STATIC_DRAW,a),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){n.pickColorsBuf=new Dt(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,!1),this._pickColors=[]}n.geometry=null,this._finalized=!0}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,n)}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){if(!this._finalized)throw"Not finalized";Ml[0]=t[0],Ml[1]=t[1],Ml[2]=t[2],this._state.colorsBuf.setData(Ml,3*e)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){if(!this._finalized)throw"Not finalized";var r=!!(t&Me),i=!!(t&Ge),a=!!(t&ke),s=!!(t&je),o=!!(t&Ve),l=!!(t&Fe),u=!!(t&xe),c=0;c|=!r||u||i||a&&!this.model.scene.highlightMaterial.glowThrough||s&&!this.model.scene.selectedMaterial.glowThrough?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,c|=(!r||u?qa.NOT_RENDERED:s?qa.SILHOUETTE_SELECTED:a?qa.SILHOUETTE_HIGHLIGHTED:i?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED)<<4,c|=(!r||u?qa.NOT_RENDERED:s?qa.EDGES_SELECTED:a?qa.EDGES_HIGHLIGHTED:i?qa.EDGES_XRAYED:o?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED)<<8,c|=(r&&!u&&l?qa.PICK:qa.NOT_RENDERED)<<12,c|=(t&He?255:0)<<16,xl[0]=c,this._state.flagsBuf.setData(xl,e)}},{key:"setOffset",value:function(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Fl[0]=t[0],Fl[1]=t[1],Fl[2]=t[2],this._state.offsetsBuf.setData(Fl,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}},{key:"setMatrix",value:function(e,t){if(!this._finalized)throw"Not finalized";var n=4*e;Hl[0]=t[0],Hl[1]=t[4],Hl[2]=t[8],Hl[3]=t[12],this._state.modelMatrixCol0Buf.setData(Hl,n),Hl[0]=t[1],Hl[1]=t[5],Hl[2]=t[9],Hl[3]=t[13],this._state.modelMatrixCol1Buf.setData(Hl,n),Hl[0]=t[2],Hl[1]=t[6],Hl[2]=t[10],Hl[3]=t[14],this._state.modelMatrixCol2Buf.setData(Hl,n)}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._pointsInstancingRenderers.colorRenderer&&this._pointsInstancingRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT)}},{key:"drawDepth",value:function(e,t){}},{key:"drawNormals",value:function(e,t){}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED)}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED)}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._pointsInstancingRenderers.silhouetteRenderer&&this._pointsInstancingRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED)}},{key:"drawEdgesColorOpaque",value:function(e,t){}},{key:"drawEdgesColorTransparent",value:function(e,t){}},{key:"drawEdgesHighlighted",value:function(e,t){}},{key:"drawEdgesSelected",value:function(e,t){}},{key:"drawEdgesXRayed",value:function(e,t){}},{key:"drawOcclusion",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.occlusionRenderer&&this._pointsInstancingRenderers.occlusionRenderer.drawLayer(t,this,qa.COLOR_OPAQUE)}},{key:"drawShadow",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickMeshRenderer&&this._pointsInstancingRenderers.pickMeshRenderer.drawLayer(t,this,qa.PICK)}},{key:"drawPickDepths",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._pointsInstancingRenderers.pickDepthRenderer&&this._pointsInstancingRenderers.pickDepthRenderer.drawLayer(t,this,qa.PICK)}},{key:"drawPickNormals",value:function(e,t){}},{key:"destroy",value:function(){var e=this._state;e.colorsBuf&&(e.colorsBuf.destroy(),e.colorsBuf=null),e.flagsBuf&&(e.flagsBuf.destroy(),e.flagsBuf=null),e.offsetsBuf&&(e.offsetsBuf.destroy(),e.offsetsBuf=null),e.modelMatrixCol0Buf&&(e.modelMatrixCol0Buf.destroy(),e.modelMatrixCol0Buf=null),e.modelMatrixCol1Buf&&(e.modelMatrixCol1Buf.destroy(),e.modelMatrixCol1Buf=null),e.modelMatrixCol2Buf&&(e.modelMatrixCol2Buf.destroy(),e.modelMatrixCol2Buf=null),e.pickColorsBuf&&(e.pickColorsBuf.destroy(),e.pickColorsBuf=null),e.destroy()}}]),e}(),Gl=function(){function e(t){b(this,e),this.id=t.id,this.colorTexture=t.colorTexture,this.metallicRoughnessTexture=t.metallicRoughnessTexture,this.normalsTexture=t.normalsTexture,this.emissiveTexture=t.emissiveTexture,this.occlusionTexture=t.occlusionTexture}return P(e,[{key:"destroy",value:function(){}}]),e}(),kl=function(){function e(t){b(this,e),this.id=t.id,this.texture=t.texture}return P(e,[{key:"destroy",value:function(){this.texture&&(this.texture.destroy(),this.texture=null)}}]),e}(),jl={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}},Vl=function(){function e(t,n,r){b(this,e),this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=t,this.onProgress=n,this.onError=r}return P(e,[{key:"itemStart",value:function(e){this.itemsTotal++,!1===this.isLoading&&void 0!==this.onStart&&this.onStart(e,this.itemsLoaded,this.itemsTotal),this.isLoading=!0}},{key:"itemEnd",value:function(e){this.itemsLoaded++,void 0!==this.onProgress&&this.onProgress(e,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,void 0!==this.onLoad&&this.onLoad())}},{key:"itemError",value:function(e){void 0!==this.onError&&this.onError(e)}},{key:"resolveURL",value:function(e){return this.urlModifier?this.urlModifier(e):e}},{key:"setURLModifier",value:function(e){return this.urlModifier=e,this}},{key:"addHandler",value:function(e,t){return this.handlers.push(e,t),this}},{key:"removeHandler",value:function(e){var t=this.handlers.indexOf(e);return-1!==t&&this.handlers.splice(t,2),this}},{key:"getHandler",value:function(e){for(var t=0,n=this.handlers.length;t0&&void 0!==arguments[0]?arguments[0]:4;b(this,e),this.pool=t,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}return P(e,[{key:"_initWorker",value:function(e){if(!this.workers[e]){var t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}},{key:"_getIdleWorker",value:function(){for(var e=0;e0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),Xl++}return this._transcoderPending}},{key:"transcode",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise((function(i,a){var s=r;n._init().then((function(){return n._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:s},e)})).then((function(e){var n=e.data,r=n.mipmaps,s=(n.width,n.height,n.format),o=n.type,l=n.error,u=n.dfdTransferFn,c=n.dfdFlags;if("error"===o)return a(l);t.setCompressedData({mipmaps:r,props:{format:s,minFilter:1===r.length?1006:1008,magFilter:1===r.length?1006:1008,encoding:2===u?3001:3e3,premultiplyAlpha:!!(1&c)}}),i()}))}))}},{key:"destroy",value:function(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),Xl--}}]),e}();ql.BasisFormat={ETC1S:0,UASTC_4x4:1},ql.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},ql.EngineFormat={RGBAFormat:1023,RGBA_ASTC_4x4_Format:37808,RGBA_BPTC_Format:36492,RGBA_ETC2_EAC_Format:37496,RGBA_PVRTC_4BPPV1_Format:35842,RGBA_S3TC_DXT5_Format:33779,RGB_ETC1_Format:36196,RGB_ETC2_Format:37492,RGB_PVRTC_4BPPV1_Format:35840,RGB_S3TC_DXT1_Format:33776},ql.BasisWorker=function(){var e,t,n,r=_EngineFormat,i=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",(function(s){var c,f=s.data;switch(f.type){case"init":e=f.config,c=f.transcoderBinary,t=new Promise((function(e){n={wasmBinary:c,onRuntimeInitialized:e},BASIS(n)})).then((function(){n.initializeBasis(),void 0===n.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((function(){try{for(var t=function(t){var s=new n.KTX2File(new Uint8Array(t));function c(){s.close(),s.delete()}if(!s.isValid())throw c(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");var f=s.isUASTC()?a.UASTC_4x4:a.ETC1S,p=s.getWidth(),A=s.getHeight(),d=s.getLevels(),v=s.getHasAlpha(),h=s.getDFDTransferFunc(),I=s.getDFDFlags(),y=function(t,n,s,c){for(var f,p,A=t===a.ETC1S?o:l,d=0;d>t;n.sort(iu);for(var o=new Int32Array(e.length),l=0,u=n.length;le[i+1]){var s=e[i];e[i]=e[i+1],e[i+1]=s}su=new Int32Array(e),t.sort(ou);for(var o=new Int32Array(e.length),l=0,u=t.length;l0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl,n=e._lightsState;if(this._program=new bt(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);var r=this._program;this._uRenderPass=r.getLocation("renderPass"),this._uLightAmbient=r.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];for(var i=n.lights,a=0,s=i.length;a0,a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),t.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(var s=0,o=r.lights.length;s> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(var l=0,u=r.lights.length;l0,r=[];if(r.push("#version 300 es"),r.push("// TrianglesDataTextureColorRenderer fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("flat in uint vFlags2;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 0u;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),hu=new Float32Array([1,1,1]),Iu=$.vec3(),yu=$.vec3(),mu=$.vec3();$.vec3();var wu=$.mat4(),gu=function(){function e(t,n){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate,A=i.viewMatrix;if(this._program||(this._allocate(),!this.errors)){var d,v;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),u||0!==c[0]||0!==c[1]||0!==c[2]){var h=Iu;if(u){var I=yu;$.transformPoint3(f,u,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=c[0],h[1]+=c[1],h[2]+=c[2],d=Be(A,h,wu),(v=mu)[0]=i.eye[0]-h[0],v[1]=i.eye[1]-h[1],v[2]=i.eye[2]-h[2]}else d=A,v=i.eye;if(s.uniform3fv(this._uCameraEyeRtc,v),s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),n===qa.SILHOUETTE_XRAYED){var y=r.xrayMaterial._state,m=y.fillColor,w=y.fillAlpha;s.uniform4f(this._uColor,m[0],m[1],m[2],w)}else if(n===qa.SILHOUETTE_HIGHLIGHTED){var g=r.highlightMaterial._state,E=g.fillColor,T=g.fillAlpha;s.uniform4f(this._uColor,E[0],E[1],E[2],T)}else if(n===qa.SILHOUETTE_SELECTED){var b=r.selectedMaterial._state,D=b.fillColor,P=b.fillAlpha;s.uniform4f(this._uColor,D[0],D[1],D[2],P)}else s.uniform4fv(this._uColor,hu);if(r.logarithmicDepthBufferEnabled){var R=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,R)}var C=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(C>0)for(var B=r._sectionPlanesState.sectionPlanes,O=t.layerIndex*_,S=a.renderFlags,N=0;N0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uColor=n.getLocation("color"),this._uWorldMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture silhouette vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.y) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = color;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Eu=new Float32Array([0,0,0,1]),Tu=$.vec3(),bu=$.vec3();$.vec3();var Du=$.mat4(),Pu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=Tu;if(v){var y=$.transformPoint3(f,u,bu);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],d=Be(A,I,Du)}else d=A;if(s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),n===qa.EDGES_XRAYED){var m=i.xrayMaterial._state,w=m.edgeColor,g=m.edgeAlpha;s.uniform4f(this._uColor,w[0],w[1],w[2],g)}else if(n===qa.EDGES_HIGHLIGHTED){var E=i.highlightMaterial._state,T=E.edgeColor,b=E.edgeAlpha;s.uniform4f(this._uColor,T[0],T[1],T[2],b)}else if(n===qa.EDGES_SELECTED){var D=i.selectedMaterial._state,P=D.edgeColor,R=D.edgeAlpha;s.uniform4f(this._uColor,P[0],P[1],P[2],R)}else s.uniform4fv(this._uColor,Eu);var C=i._sectionPlanesState.getNumAllocatedSectionPlanes(),_=i._sectionPlanesState.sectionPlanes.length;if(C>0)for(var B=i._sectionPlanesState.sectionPlanes,O=t.layerIndex*_,S=r.renderFlags,N=0;N0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),s.drawArrays(s.LINES,0,o.numEdgeIndices8Bits)),o.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),s.drawArrays(s.LINES,0,o.numEdgeIndices16Bits)),o.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),s.drawArrays(s.LINES,0,o.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uColor=n.getLocation("color"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uWorldMatrix=n.getLocation("worldMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),n.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.z) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vColor;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ru=$.vec3(),Cu=$.vec3();$.vec3();var _u=$.mat4(),Bu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=a.viewMatrix;if(this._program||(this._allocate(),!this.errors)){var d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=Ru;if(v){var y=$.transformPoint3(f,u,Cu);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],d=Be(A,I,_u)}else d=A;s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);var m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=i._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=r.renderFlags,b=0;b0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),s.drawArrays(s.LINES,0,o.numEdgeIndices8Bits)),o.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),s.drawArrays(s.LINES,0,o.numEdgeIndices16Bits)),o.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),s.drawArrays(s.LINES,0,o.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureEdgesColorRenderer"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled,n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uObjectPerObjectOffsets;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.z) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vec4 rgb = vec4(color.rgba);"),n.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureEdgesColorRenderer"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vColor;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ou=$.vec3(),Su=$.vec3(),Nu=$.vec3(),Lu=$.mat4(),Mu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(t),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate;c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==f[0]||0!==f[1]||0!==f[2],h=0!==p[0]||0!==p[1]||0!==p[2];if(v||h){var I=Ou;if(v){var y=$.transformPoint3(A,f,Su);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=p[0],I[1]+=p[1],I[2]+=p[2],r=Be(o.viewMatrix,I,Lu),(i=Nu)[0]=o.eye[0]-I[0],i[1]=o.eye[1]-I[1],i[2]=o.eye[2]-I[2]}else r=o.viewMatrix,i=o.eye;if(l.uniform2fv(this._uPickClipPos,e.pickClipPos),l.uniform2f(this._uDrawingBufferSize,l.drawingBufferWidth,l.drawingBufferHeight),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),l.uniform3fv(this._uCameraEyeRtc,i),l.uniform1i(this._uRenderPass,n),s.logarithmicDepthBufferEnabled){var m=2/(Math.log(o.project.far+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,m)}var w=s._sectionPlanesState.getNumAllocatedSectionPlanes(),g=s._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=s._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry picking vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform bool pickInvisible;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("smooth out vec4 vWorldPosition;"),n.push("flat out uvec4 vFlags2;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uvec4 vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(r=0;r 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outPickColor = vPickColor; "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),xu=$.vec3(),Fu=$.vec3(),Hu=$.vec3();$.vec3();var Uu=$.mat4(),Gu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=e.pickViewMatrix||o.viewMatrix;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),f||0!==p[0]||0!==p[1]||0!==p[2]){var h=xu;if(f){var I=Fu;$.transformPoint3(A,f,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=p[0],h[1]+=p[1],h[2]+=p[2],r=Be(v,h,Uu),(i=Hu)[0]=o.eye[0]-h[0],i[1]=o.eye[1]-h[1],i[2]=o.eye[2]-h[2],e.snapPickOrigin[0]=h[0],e.snapPickOrigin[1]=h[1],e.snapPickOrigin[2]=h[2]}else r=v,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(l.uniform3fv(this._uCameraEyeRtc,i),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniform2fv(this._uPickClipPos,e.pickClipPos),l.uniform2f(this._uDrawingBufferSize,l.drawingBufferWidth,l.drawingBufferHeight),l.uniform1f(this._uPickZNear,e.pickZNear),l.uniform1f(this._uPickZFar,e.pickZFar),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),s.logarithmicDepthBufferEnabled){var y=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,y)}var m=s._sectionPlanesState.getNumAllocatedSectionPlanes(),w=s._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=s._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=a.renderFlags,b=0;b0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform bool pickInvisible;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0;r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(r=0;r 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outPackedDepth = packDepth(zNormalizedDepth); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),ku=$.vec3(),ju=$.vec3(),Vu=$.vec3(),Qu=$.vec3();$.vec3();var Wu=$.mat4(),zu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=t.aabb,h=e.pickViewMatrix||o.viewMatrix,I=ku;I[0]=$.safeInv(v[3]-v[0])*$.MAX_INT,I[1]=$.safeInv(v[4]-v[1])*$.MAX_INT,I[2]=$.safeInv(v[5]-v[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(I[0]),e.snapPickCoordinateScale[1]=$.safeInv(I[1]),e.snapPickCoordinateScale[2]=$.safeInv(I[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var y=0!==f[0]||0!==f[1]||0!==f[2],m=0!==p[0]||0!==p[1]||0!==p[2];if(y||m){var w=ju;if(y){var g=$.transformPoint3(A,f,Vu);w[0]=g[0],w[1]=g[1],w[2]=g[2]}else w[0]=0,w[1]=0,w[2]=0;w[0]+=p[0],w[1]+=p[1],w[2]+=p[2],r=Be(h,w,Wu),(i=Qu)[0]=o.eye[0]-w[0],i[1]=o.eye[1]-w[1],i[2]=o.eye[2]-w[2],e.snapPickOrigin[0]=w[0],e.snapPickOrigin[1]=w[1],e.snapPickOrigin[2]=w[2]}else r=h,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;l.uniform3fv(this._uCameraEyeRtc,i),l.uniform2fv(this.uVectorA,e.snapVectorA),l.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),l.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),l.uniform3fv(this._uCoordinateScaler,I),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);var E=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,E);var T=s._sectionPlanesState.getNumAllocatedSectionPlanes(),b=s._sectionPlanesState.sectionPlanes.length;if(T>0)for(var D=s._sectionPlanesState.sectionPlanes,P=t.layerIndex*b,R=a.renderFlags,C=0;C0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),l.drawArrays(N,0,u.numEdgeIndices8Bits)),u.numEdgeIndices16Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),l.drawArrays(N,0,u.numEdgeIndices16Bits)),u.numEdgeIndices32Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),l.drawArrays(N,0,u.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 uSnapVectorA;"),n.push("uniform vec2 uSnapInvVectorAB;"),n.push("vec3 positions[3];"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),n.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vViewPosition;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("{"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vViewPosition = clipPos;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int uLayerNumber;"),n.push("uniform vec3 uCoordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),n.push(" }")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ku=$.vec3(),Yu=$.vec3(),Xu=$.vec3(),qu=$.vec3();$.vec3();var Ju=$.mat4(),Zu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=t.aabb,h=e.pickViewMatrix||o.viewMatrix,I=Ku;I[0]=$.safeInv(v[3]-v[0])*$.MAX_INT,I[1]=$.safeInv(v[4]-v[1])*$.MAX_INT,I[2]=$.safeInv(v[5]-v[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(I[0]),e.snapPickCoordinateScale[1]=$.safeInv(I[1]),e.snapPickCoordinateScale[2]=$.safeInv(I[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var y=0!==f[0]||0!==f[1]||0!==f[2],m=0!==p[0]||0!==p[1]||0!==p[2];if(y||m){var w=Yu;if(y){var g=Xu;$.transformPoint3(A,f,g),w[0]=g[0],w[1]=g[1],w[2]=g[2]}else w[0]=0,w[1]=0,w[2]=0;w[0]+=p[0],w[1]+=p[1],w[2]+=p[2],r=Be(h,w,Ju),(i=qu)[0]=o.eye[0]-w[0],i[1]=o.eye[1]-w[1],i[2]=o.eye[2]-w[2],e.snapPickOrigin[0]=w[0],e.snapPickOrigin[1]=w[1],e.snapPickOrigin[2]=w[2]}else r=h,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;l.uniform3fv(this._uCameraEyeRtc,i),l.uniform2fv(this._uVectorA,e.snapVectorA),l.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),l.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),l.uniform3fv(this._uCoordinateScaler,I),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);var E=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,E);var T=s._sectionPlanesState.getNumAllocatedSectionPlanes(),b=s._sectionPlanesState.sectionPlanes.length;if(T>0)for(var D=s._sectionPlanesState.sectionPlanes,P=t.layerIndex*b,R=a.renderFlags,C=0;C0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 uVectorAB;"),n.push("uniform vec2 uInverseVectorAB;"),n.push("vec3 positions[3];"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),n.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("flat out uint vFlags2;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("{"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push(" if (isPerspectiveMatrix(projMatrix)) {"),n.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" viewNormal = -viewNormal;"),n.push(" }"),n.push(" } else {"),n.push(" if (viewNormal.z < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" viewNormal = -viewNormal;"),n.push(" }"),n.push(" }"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vWorldPosition = worldPosition;"),t&&n.push("vFlags2 = flags2.r;"),n.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int uLayerNumber;"),n.push("uniform vec3 uCoordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),n.push(" }")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),$u=$.vec3(),ec=$.vec3(),tc=$.vec3();$.vec3();var nc=$.mat4(),rc=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=e.pickViewMatrix||a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var d,v;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),u||0!==c[0]||0!==c[1]||0!==c[2]){var h=$u;if(u){var I=ec;$.transformPoint3(f,u,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=c[0],h[1]+=c[1],h[2]+=c[2],d=Be(A,h,nc),(v=tc)[0]=a.eye[0]-h[0],v[1]=a.eye[1]-h[1],v[2]=a.eye[2]-h[2]}else d=A,v=a.eye;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);var y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0)for(var w=i._sectionPlanesState.sectionPlanes,g=t.layerIndex*m,E=r.renderFlags,T=0;T0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uWorldMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push(" if (isPerspectiveMatrix(projMatrix)) {"),n.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" }"),n.push(" } else {"),n.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push(" if (viewNormal.z < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" }"),n.push(" }"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),ic=$.vec3(),ac=$.vec3(),sc=$.vec3();$.vec3();var oc=$.mat4(),lc=function(){function e(t){b(this,e),this._scene=t,this._allocate(),this._hash=this._getHash()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate;if(this._program||(this._allocate(),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=ic;if(v){var y=$.transformPoint3(f,u,ac);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],A=Be(i.viewMatrix,I,oc),(d=sc)[0]=i.eye[0]-I[0],d[1]=i.eye[1]-I[1],d[2]=i.eye[2]-I[2]}else A=i.viewMatrix,d=i.eye;if(s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s.uniform3fv(this._uCameraEyeRtc,d),s.uniform1i(this._uRenderPass,n),r.logarithmicDepthBufferEnabled){var m=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,m)}var w=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPositionsDecodeMatrix=n.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture draw vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out highp vec2 vHighPrecisionZW;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in highp vec2 vHighPrecisionZW;"),n.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),uc=$.vec3(),cc=$.vec3(),fc=$.vec3();$.vec3();var pc=$.mat4(),Ac=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));var v=0!==l[0]||0!==l[1]||0!==l[2],h=0!==u[0]||0!==u[1]||0!==u[2];if(v||h){var I=uc;if(v){var y=cc;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],A=Be(p,I,pc),(d=fc)[0]=a.eye[0]-I[0],d[1]=a.eye[1]-I[1],d[2]=a.eye[2]-I[2]}else A=p,d=a.eye;s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,f),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),s.uniformMatrix4fv(this._uWorldNormalMatrix,!1,r.worldNormalMatrix);var m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=i._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=r.renderFlags,b=0;b0,n=[];return n.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("uniform int renderPass;"),n.push("attribute vec3 position;"),e.entityOffsetsEnabled&&n.push("attribute vec3 offset;"),n.push("attribute vec3 normal;"),n.push("attribute vec4 color;"),n.push("attribute vec4 flags;"),n.push("attribute vec4 flags2;"),n.push("uniform mat4 worldMatrix;"),n.push("uniform mat4 worldNormalMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform mat4 viewNormalMatrix;"),n.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("varying float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out vec4 vFlags2;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(dt.SUPPORTED_EXTENSIONS.EXT_frag_depth?n.push("vFragDepth = 1.0 + clipPos.w;"):(n.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),n.push("clipPos.z *= clipPos.w;")),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("in vec4 vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),dc=$.vec3(),vc=$.vec3(),hc=$.vec3();$.vec3(),$.vec4();var Ic=$.mat4(),yc=function(){function e(t,n){b(this,e),this._scene=t,this._withSAO=n,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate;if(this._program||(this._allocate(),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=dc;if(v){var y=$.transformPoint3(f,u,vc);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],A=Be(i.viewMatrix,I,Ic),(d=hc)[0]=i.eye[0]-I[0],d[1]=i.eye[1]-I[1],d[2]=i.eye[2]-I[2]}else A=i.viewMatrix,d=i.eye;if(s.uniform2fv(this._uPickClipPos,e.pickClipPos),s.uniform2f(this._uDrawingBufferSize,s.drawingBufferWidth,s.drawingBufferHeight),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s.uniform3fv(this._uCameraEyeRtc,d),s.uniform1i(this._uRenderPass,n),r.logarithmicDepthBufferEnabled){var m=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,m)}var w=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// trianglesDatatextureNormalsRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out vec4 vWorldPosition;"),t&&n.push("flat out uint vFlags2;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("vWorldPosition = worldPosition;"),t&&n.push("vFlags2 = flags2.r;"),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),t){n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),mc=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._silhouetteRenderer||(this._silhouetteRenderer=new gu(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Mu(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Gu(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new yc(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new zu(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Zu(this._scene))}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new vu(this._scene,!1)),this._colorRenderer}},{key:"colorRendererWithSAO",get:function(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new vu(this._scene,!0)),this._colorRendererWithSAO}},{key:"colorQualityRendererWithSAO",get:function(){return this._colorQualityRendererWithSAO}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new gu(this._scene)),this._silhouetteRenderer}},{key:"depthRenderer",get:function(){return this._depthRenderer||(this._depthRenderer=new lc(this._scene)),this._depthRenderer}},{key:"normalsRenderer",get:function(){return this._normalsRenderer||(this._normalsRenderer=new Ac(this._scene)),this._normalsRenderer}},{key:"edgesRenderer",get:function(){return this._edgesRenderer||(this._edgesRenderer=new Pu(this._scene)),this._edgesRenderer}},{key:"edgesColorRenderer",get:function(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Bu(this._scene)),this._edgesColorRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Mu(this._scene)),this._pickMeshRenderer}},{key:"pickNormalsRenderer",get:function(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new yc(this._scene)),this._pickNormalsRenderer}},{key:"pickNormalsFlatRenderer",get:function(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new yc(this._scene)),this._pickNormalsFlatRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Gu(this._scene)),this._pickDepthRenderer}},{key:"vertexDepthRenderer",get:function(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new zu(this._scene)),this._vertexDepthRenderer}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Zu(this._scene)),this._snapDepthBufInitRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new rc(this._scene)),this._occlusionRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}]),e}(),wc={};var gc=P((function e(){b(this,e),this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]})),Ec=function(){function e(){b(this,e),this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}return P(e,[{key:"finalize",value:function(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}},{key:"bindCommonTextures",value:function(e,t,n,r,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,n,2),this.texturePerObjectColorsAndFlags.bindTexture(e,r,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}},{key:"bindTriangleIndicesTextures",value:function(e,t,n,r){this.indicesPortionIdsPerBitnessTextures[r].bindTexture(e,t,5),this.indicesPerBitnessTextures[r].bindTexture(e,n,6)}},{key:"bindEdgeIndicesTextures",value:function(e,t,n,r){this.edgeIndicesPortionIdsPerBitnessTextures[r].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[r].bindTexture(e,n,6)}}]),e}(),Tc=function(){function e(t,n,r,i){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;b(this,e),this._gl=t,this._texture=n,this._textureWidth=r,this._textureHeight=i,this._textureData=a}return P(e,[{key:"bindTexture",value:function(e,t,n){return e.bindTexture(t,this,n)}},{key:"bind",value:function(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}},{key:"unbind",value:function(e){}}]),e}(),bc={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(bc,null,4));var e=0;Object.keys(bc).forEach((function(t){t.startsWith("size")&&(e+=bc[t])})),console.log("Total size ".concat(e," bytes (").concat((e/1e3/1e3).toFixed(2)," MB)")),console.log("Avg bytes / triangle: ".concat((e/bc.totalPolygons).toFixed(2)));var t={};Object.keys(bc).forEach((function(n){n.startsWith("size")&&(t[n]="".concat((bc[n]/e*100).toFixed(2)," % of total"))})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};var Dc=function(){function e(){b(this,e)}return P(e,[{key:"disableBindedTextureFiltering",value:function(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}},{key:"generateTextureForColorsAndFlags",value:function(e,t,n,r,i,a,s){var o=t.length;this.numPortions=o;var l=4096,u=Math.ceil(o/512);if(0===u)throw"texture height===0";var c=new Uint8Array(16384*u);bc.sizeDataColorsAndFlags+=c.byteLength,bc.numberOfTextures++;for(var f=0;f>24&255,r[f]>>16&255,r[f]>>8&255,255&r[f]],32*f+16),c.set([i[f]>>24&255,i[f]>>16&255,i[f]>>8&255,255&i[f]],32*f+20),c.set([a[f]>>24&255,a[f]>>16&255,a[f]>>8&255,255&a[f]],32*f+24),c.set([s[f]?1:0,0,0,0],32*f+28);var p=e.createTexture();return e.bindTexture(e.TEXTURE_2D,p),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,u),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,u,e.RGBA_INTEGER,e.UNSIGNED_BYTE,c,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Tc(e,p,l,u,c)}},{key:"generateTextureForObjectOffsets",value:function(e,t){var n=512,r=Math.ceil(t/n);if(0===r)throw"texture height===0";var i=new Float32Array(1536*r).fill(0);bc.sizeDataTextureOffsets+=i.byteLength,bc.numberOfTextures++;var a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,n,r),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,r,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Tc(e,a,n,r,i)}},{key:"generateTextureForInstancingMatrices",value:function(e,t){var n=t.length;if(0===n)throw"num instance matrices===0";var r=2048,i=Math.ceil(n/512),a=new Float32Array(8192*i);bc.numberOfTextures++;for(var s=0;s65536&&bc.cannotCreatePortion.because10BitsObjectId++;var n=this._numPortions+t<=65536,r=void 0!==e.geometryId&&null!==e.geometryId?"".concat(e.geometryId,"#").concat(0):"".concat(e.id,"#").concat(0);if(!this._bucketGeometries[r]){var i=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits),a=0,s=0;e.buckets.forEach((function(e){a+=e.positionsCompressed.length/3,s+=e.indices.length/3})),(this._state.numVertices+a>4096*Rc||i+s>4096*Rc)&&bc.cannotCreatePortion.becauseTextureSize++,n&&(n=this._state.numVertices+a<=4096*Rc&&i+s<=4096*Rc)}return n}},{key:"createPortion",value:function(e,t){var n=this;if(this._finalized)throw"Already finalized";var r=[];t.buckets.forEach((function(e,i){var a=void 0!==t.geometryId&&null!==t.geometryId?"".concat(t.geometryId,"#").concat(i):"".concat(t.id,"#").concat(i),s=n._bucketGeometries[a];s||(s=n._createBucketGeometry(t,e),n._bucketGeometries[a]=s);var o=n._createSubPortion(t,s,e);r.push(o)}));var i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(r),this.model.numPortions++,this._meshes.push(e),i}},{key:"_createBucketGeometry",value:function(e,t){if(t.indices){var n=8*Math.ceil(t.indices.length/3/8)*3;bc.overheadSizeAlignementIndices+=2*(n-t.indices.length);var r=new Uint32Array(n);r.fill(0),r.set(t.indices),t.indices=r}if(t.edgeIndices){var i=8*Math.ceil(t.edgeIndices.length/2/8)*2;bc.overheadSizeAlignementEdgeIndices+=2*(i-t.edgeIndices.length);var a=new Uint32Array(i);a.fill(0),a.set(t.edgeIndices),t.edgeIndices=a}var s=t.positionsCompressed,o=t.indices,l=t.edgeIndices,u=this._buffer;u.positionsCompressed.push(s);var c,f=u.lenPositionsCompressed/3,p=s.length/3;u.lenPositionsCompressed+=s.length;var A,d,v=0;o&&(v=o.length/3,p<=256?(A=u.indices8Bits,c=u.lenIndices8Bits/3,u.lenIndices8Bits+=o.length):p<=65536?(A=u.indices16Bits,c=u.lenIndices16Bits/3,u.lenIndices16Bits+=o.length):(A=u.indices32Bits,c=u.lenIndices32Bits/3,u.lenIndices32Bits+=o.length),A.push(o));var h,I=0;l&&(I=l.length/2,p<=256?(h=u.edgeIndices8Bits,d=u.lenEdgeIndices8Bits/2,u.lenEdgeIndices8Bits+=l.length):p<=65536?(h=u.edgeIndices16Bits,d=u.lenEdgeIndices16Bits/2,u.lenEdgeIndices16Bits+=l.length):(h=u.edgeIndices32Bits,d=u.lenEdgeIndices32Bits/2,u.lenEdgeIndices32Bits+=l.length),h.push(l));return this._state.numVertices+=p,bc.numberOfGeometries++,{vertexBase:f,numVertices:p,numTriangles:v,numEdges:I,indicesBase:c,edgeIndicesBase:d,obb:null}}},{key:"_createSubPortion",value:function(e,t,n,r){var i=e.color;e.metallic,e.roughness;var a,s,o=e.colors,l=e.opacity,u=e.meshMatrix,c=e.pickColor,f=this._buffer,p=this._state;f.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),f.perObjectInstancePositioningMatrices.push(u||Sc),f.perObjectSolid.push(!!e.solid),o?f.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):i&&f.perObjectColors.push([i[0],i[1],i[2],l]),f.perObjectPickColors.push(c),f.perObjectVertexBases.push(t.vertexBase),a=t.numVertices<=256?p.numIndices8Bits:t.numVertices<=65536?p.numIndices16Bits:p.numIndices32Bits,f.perObjectIndexBaseOffsets.push(a/3-t.indicesBase),s=t.numVertices<=256?p.numEdgeIndices8Bits:t.numVertices<=65536?p.numEdgeIndices16Bits:p.numEdgeIndices32Bits,f.perObjectEdgeIndexBaseOffsets.push(s/2-t.edgeIndicesBase);var A=this._subPortions.length;if(t.numTriangles>0){var d,v=3*t.numTriangles;t.numVertices<=256?(d=f.perTriangleNumberPortionId8Bits,p.numIndices8Bits+=v,bc.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(d=f.perTriangleNumberPortionId16Bits,p.numIndices16Bits+=v,bc.totalPolygons16Bits+=t.numTriangles):(d=f.perTriangleNumberPortionId32Bits,p.numIndices32Bits+=v,bc.totalPolygons32Bits+=t.numTriangles),bc.totalPolygons+=t.numTriangles;for(var h=0;h0){var I,y=2*t.numEdges;t.numVertices<=256?(I=f.perEdgeNumberPortionId8Bits,p.numEdgeIndices8Bits+=y,bc.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(I=f.perEdgeNumberPortionId16Bits,p.numEdgeIndices16Bits+=y,bc.totalEdges16Bits+=t.numEdges):(I=f.perEdgeNumberPortionId32Bits,p.numEdgeIndices32Bits+=y,bc.totalEdges32Bits+=t.numEdges),bc.totalEdges+=t.numEdges;for(var m=0;m0&&(n.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId8Bits)),i.perEdgeNumberPortionId16Bits.length>0&&(n.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId16Bits)),i.perEdgeNumberPortionId32Bits.length>0&&(n.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId32Bits)),i.lenIndices8Bits>0&&(n.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(r,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(n.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(r,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(n.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(r,i.indices32Bits,i.lenIndices32Bits)),i.lenEdgeIndices8Bits>0&&(n.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(r,i.edgeIndices8Bits,i.lenEdgeIndices8Bits)),i.lenEdgeIndices16Bits>0&&(n.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(r,i.edgeIndices16Bits,i.lenEdgeIndices16Bits)),i.lenEdgeIndices32Bits>0&&(n.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(r,i.edgeIndices32Bits,i.lenEdgeIndices32Bits)),n.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(function(){e._deferredSetFlagsDirty&&e._uploadDeferredFlags(),e._numUpdatesInFrame=0}))}}},{key:"isEmpty",value:function(){return 0===this._numPortions}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,true),this._setFlags2(e,t,true)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags(),this._setDeferredFlags2()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}},{key:"_beginDeferredFlags",value:function(){this._deferredSetFlagsActive=!0}},{key:"_uploadDeferredFlags",value:function(){if(this._deferredSetFlagsActive=!1,this._deferredSetFlagsDirty){this._deferredSetFlagsDirty=!1;var e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectColorsAndFlags._texture),r.texSubImage2D(r.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,r.RGBA_INTEGER,r.UNSIGNED_BYTE,_c)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this._portionToSubPortionsMap[e],a=0,s=i.length;a3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=!!(t&Me),o=!!(t&Ge),l=!!(t&ke),u=!!(t&je),c=!!(t&Ve),f=!!(t&Fe),p=!!(t&xe);i=!s||p||o?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!s||p?qa.NOT_RENDERED:u?qa.SILHOUETTE_SELECTED:l?qa.SILHOUETTE_HIGHLIGHTED:o?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var A=0;A=!s||p?qa.NOT_RENDERED:u?qa.EDGES_SELECTED:l?qa.EDGES_HIGHLIGHTED:o?qa.EDGES_XRAYED:c?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED;var d=s&&!p&&f?qa.PICK:qa.NOT_RENDERED,v=this._dataTextureState,h=this.model.scene.canvas.gl;_c[0]=i,_c[1]=a,_c[2]=A,_c[3]=d,v.texturePerObjectColorsAndFlags._textureData.set(_c,32*e+8),this._deferredSetFlagsActive||r?this._deferredSetFlagsDirty=!0:(++this._numUpdatesInFrame>=10&&this._beginDeferredFlags(),h.bindTexture(h.TEXTURE_2D,v.texturePerObjectColorsAndFlags._texture),h.texSubImage2D(h.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,h.RGBA_INTEGER,h.UNSIGNED_BYTE,_c))}},{key:"_setDeferredFlags",value:function(){}},{key:"_setFlags2",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this._portionToSubPortionsMap[e],i=0,a=r.length;i2&&void 0!==arguments[2]&&arguments[2];if(!this._finalized)throw"Not finalized";var r=t&He?255:0,i=this._dataTextureState,a=this.model.scene.canvas.gl;_c[0]=r,_c[1]=0,_c[2]=1,_c[3]=2,i.texturePerObjectColorsAndFlags._textureData.set(_c,32*e+12),this._deferredSetFlagsActive||n?this._deferredSetFlagsDirty=!0:(++this._numUpdatesInFrame>=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,_c))}},{key:"_setDeferredFlags2",value:function(){}},{key:"setOffset",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectOffsets._texture),r.texSubImage2D(r.TEXTURE_2D,0,0,e,1,1,r.RGB,r.FLOAT,Bc))}},{key:"setMatrix",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectInstanceMatrices._texture),r.texSubImage2D(r.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,r.RGBA,r.FLOAT,Cc))}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,qa.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"_updateBackfaceCull",value:function(e,t){var n=this.model.backfaces||e.sectioned;if(t.backfaces!==n){var r=t.gl;n?r.disable(r.CULL_FACE):r.enable(r.CULL_FACE),t.backfaces=n}}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT))}},{key:"drawDepth",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawNormals",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED))}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED))}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED))}},{key:"drawEdgesColorOpaque",value:function(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,qa.EDGES_COLOR_OPAQUE)}},{key:"drawEdgesColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,qa.EDGES_COLOR_TRANSPARENT)}},{key:"drawEdgesHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_HIGHLIGHTED)}},{key:"drawEdgesSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_SELECTED)}},{key:"drawEdgesXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_XRAYED)}},{key:"drawOcclusion",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawShadow",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"setPickMatrices",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawPickDepths",value:function(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawSnapInitDepthBuf",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawSnapDepths",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawPickNormals",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,qa.PICK))}},{key:"destroy",value:function(){if(!this._destroyed){var e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}}]),e}(),Lc=$.vec4(4),Mc=$.vec4(),xc=$.vec4(),Fc=$.vec3([1,0,0]),Hc=$.vec3([0,1,0]),Uc=$.vec3([0,0,1]);$.vec3(3),$.vec3(3);var Gc=$.identityMat4(),kc=function(){function e(t){b(this,e),this._model=t.model,this.id=t.id,this._parentTransform=t.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=$.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=$.identityMat4(new Float32Array(16)),this._worldMatrix=$.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,t.matrix?this.matrix=t.matrix:(this.scale=t.scale,this.position=t.position,t.quaternion||(this.rotation=t.rotation)),t.parent&&t.parent._addChildTransform(this)}return P(e,[{key:"_addChildTransform",value:function(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}},{key:"_addMesh",value:function(e){this._meshes.push(e),e.transform=this}},{key:"parentTransform",get:function(){return this._parentTransform}},{key:"meshes",get:function(){return this._meshes}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"matrix",get:function(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=$.identityMat4()),$.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix},set:function(e){this._localMatrix||(this._localMatrix=$.identityMat4()),this._localMatrix.set(e||Gc),$.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}},{key:"worldMatrix",get:function(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}},{key:"rotate",value:function(e,t){return Lc[0]=e[0],Lc[1]=e[1],Lc[2]=e[2],Lc[3]=t*$.DEGTORAD,$.angleAxisToQuaternion(Lc,Mc),$.mulQuaternions(this.quaternion,Mc,xc),this.quaternion=xc,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"rotateOnWorldAxis",value:function(e,t){return Lc[0]=e[0],Lc[1]=e[1],Lc[2]=e[2],Lc[3]=t*$.DEGTORAD,$.angleAxisToQuaternion(Lc,Mc),$.mulQuaternions(Mc,this.quaternion,Mc),this}},{key:"rotateX",value:function(e){return this.rotate(Fc,e)}},{key:"rotateY",value:function(e){return this.rotate(Hc,e)}},{key:"rotateZ",value:function(e){return this.rotate(Uc,e)}},{key:"translate",value:function(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateX",value:function(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateY",value:function(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateZ",value:function(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"_setLocalMatrixDirty",value:function(){this._localMatrixDirty=!0,this._transformDirty()}},{key:"_transformDirty",value:function(){this._worldMatrixDirty=!0;for(var e=0,t=this._childTransforms.length;e0)for(var r=n._meshes,i=0,a=r.length;i0)for(var s=this._meshes,o=0,l=s.length;o1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._dtxEnabled=r.scene.dtxEnabled&&!1!==i.dtxEnabled,r._enableVertexWelding=!1,r._enableIndexBucketing=!1,r._vboBatchingLayerScratchMemory=Xa(),r._textureTranscoder=i.textureTranscoder||Zl(r.scene.viewer),r._maxGeometryBatchSize=i.maxGeometryBatchSize,r._aabb=$.collapseAABB3(),r._aabbDirty=!0,r._quantizationRanges={},r._vboInstancingLayers={},r._vboBatchingLayers={},r._dtxLayers={},r._meshList=[],r.layerList=[],r._entityList=[],r._geometries={},r._dtxBuckets={},r._textures={},r._textureSets={},r._transforms={},r._meshes={},r._entities={},r._scheduledMeshes={},r.renderFlags=new Gi,r.numGeometries=0,r.numPortions=0,r.numVisibleLayerPortions=0,r.numTransparentLayerPortions=0,r.numXRayedLayerPortions=0,r.numHighlightedLayerPortions=0,r.numSelectedLayerPortions=0,r.numEdgesLayerPortions=0,r.numPickableLayerPortions=0,r.numClippableLayerPortions=0,r.numCulledLayerPortions=0,r.numEntities=0,r._numTriangles=0,r._numLines=0,r._numPoints=0,r._edgeThreshold=i.edgeThreshold||10,r._origin=$.vec3(i.origin||[0,0,0]),r._position=$.vec3(i.position||[0,0,0]),r._rotation=$.vec3(i.rotation||[0,0,0]),r._quaternion=$.vec4(i.quaternion||[0,0,0,1]),r._conjugateQuaternion=$.vec4(i.quaternion||[0,0,0,1]),i.rotation&&$.eulerToQuaternion(r._rotation,"XYZ",r._quaternion),r._scale=$.vec3(i.scale||[1,1,1]),r._worldRotationMatrix=$.mat4(),r._worldRotationMatrixConjugate=$.mat4(),r._matrix=$.mat4(),r._matrixDirty=!0,r._rebuildMatrices(),r._worldNormalMatrix=$.mat4(),$.inverseMat4(r._matrix,r._worldNormalMatrix),$.transposeMat4(r._worldNormalMatrix),(i.matrix||i.position||i.rotation||i.scale||i.quaternion)&&(r._viewMatrix=$.mat4(),r._viewNormalMatrix=$.mat4(),r._viewMatrixDirty=!0,r._matrixNonIdentity=!0),r._opacity=1,r._colorize=[1,1,1],r._saoEnabled=!1!==i.saoEnabled,r._pbrEnabled=!1!==i.pbrEnabled,r._colorTextureEnabled=!1!==i.colorTextureEnabled,r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r._onCameraViewMatrix=r.scene.camera.on("matrix",(function(){r._viewMatrixDirty=!0})),r._meshesWithDirtyMatrices=[],r._numMeshesWithDirtyMatrices=0,r._onTick=r.scene.on("tick",(function(){for(;r._numMeshesWithDirtyMatrices>0;)r._meshesWithDirtyMatrices[--r._numMeshesWithDirtyMatrices]._updateMatrix()})),r._createDefaultTextureSet(),r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.colorize=i.colorize,r.opacity=i.opacity,r.backfaces=i.backfaces,r}return P(n,[{key:"_meshMatrixDirty",value:function(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}},{key:"_createDefaultTextureSet",value:function(){var e=new kl({id:"defaultColorTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new kl({id:"defaultMetalRoughTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),n=new kl({id:"defaultNormalsTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),r=new kl({id:"defaultEmissiveTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new kl({id:"defaultOcclusionTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=n,this._textures.defaultEmissiveTexture=r,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Gl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:n,emissiveTexture:r,occlusionTexture:i})}},{key:"isPerformanceModel",get:function(){return!0}},{key:"transforms",get:function(){return this._transforms}},{key:"textures",get:function(){return this._textures}},{key:"textureSets",get:function(){return this._textureSets}},{key:"meshes",get:function(){return this._meshes}},{key:"objects",get:function(){return this._entities}},{key:"origin",get:function(){return this._origin}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){}},{key:"matrix",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix},set:function(e){this._matrix.set(e||Yc),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),$.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),$.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"rotationMatrix",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}},{key:"_rebuildMatrices",value:function(){this._matrixDirty&&($.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),$.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),$.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}},{key:"rotationMatrixConjugate",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}},{key:"_setWorldMatrixDirty",value:function(){this._matrixDirty=!0,this._aabbDirty=!0}},{key:"_transformDirty",value:function(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}},{key:"_sceneModelDirty",value:function(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(var e=0,t=this._entityList.length;e0},set:function(e){e=!1!==e,this._visible=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._xrayed=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._highlighted=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._selected=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._edges=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!1!==e,this._pickable=e;for(var t=0,n=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){for(var o=e.colors,l=new Uint8Array(o.length),u=0,c=o.length;u>24&255,i=n>>16&255,a=n>>8&255,s=255&n;switch(e.pickColor=new Uint8Array([s,a,i,r]),e.solid="solid"===e.primitive,t.origin=$.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}},{key:"_getNumPrimitives",value:function(e){var t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(var n=0,r=e.buckets.length;n>>0).toString(16)}},{key:"_getVBOInstancingLayer",value:function(e){var t=this,n=e.origin,r=e.textureSetId||"-",i=e.geometryId,a="".concat(Math.round(n[0]),".").concat(Math.round(n[1]),".").concat(Math.round(n[2]),".").concat(r,".").concat(i),s=this._vboInstancingLayers[a];if(s)return s;for(var o=e.textureSet,l=e.geometry;!s;)switch(l.primitive){case"triangles":case"surface":s=new tl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0,solid:!1});break;case"solid":s=new tl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0,solid:!0});break;case"lines":s=new hl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0});break;case"points":s=new Ul({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0})}return this._vboInstancingLayers[a]=s,this.layerList.push(s),s}},{key:"createEntity",value:function(e){if(void 0===e.id?e.id=$.createUUID():this.scene.components[e.id]&&(this.error("Scene already has a Component with this ID: ".concat(e.id," - will assign random ID")),e.id=$.createUUID()),void 0!==e.meshIds){var t=0;this._visible&&!1!==e.visible&&(t|=Me),this._pickable&&!1!==e.pickable&&(t|=Fe),this._culled&&!1!==e.culled&&(t|=xe),this._clippable&&!1!==e.clippable&&(t|=He),this._collidable&&!1!==e.collidable&&(t|=Ue),this._edges&&!1!==e.edges&&(t|=Ve),this._xrayed&&!1!==e.xrayed&&(t|=Ge),this._highlighted&&!1!==e.highlighted&&(t|=ke),this._selected&&!1!==e.selected&&(t|=je),e.flags=t,this._createEntity(e)}else this.error("Config missing: meshIds")}},{key:"_createEntity",value:function(e){for(var t=[],n=0,r=e.meshIds.length;nt.sortId?1:0}));for(var s=0,o=this.layerList.length;s0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}},{key:"_updateRenderFlagsVisibleLayers",value:function(){var e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(var t=0,n=this.layerList.length;t0)for(var a=0;a0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){var t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0)this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0));if(this.numSelectedLayerPortions>0){var n=this.scene.selectedMaterial._state;n.fill&&(n.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),n.edges&&(n.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){var r=this.scene.highlightMaterial._state;r.fill&&(r.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),r.edges&&(r.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}}},{key:"drawColorOpaque",value:function(e){for(var t=this.renderFlags,n=0,r=t.visibleLayers.length;n2&&void 0!==arguments[2]&&arguments[2],r=e.positionsCompressed||[],i=au(e.indices||[],t),a=lu(e.edgeIndices||[]);function s(e,t){if(e>t){var n=e;e=t,t=n}function r(n,r){return n!==e?e-n:r!==t?t-r:0}for(var i=0,s=(a.length>>1)-1;i<=s;){var o=s+i>>1,l=r(a[2*o],a[2*o+1]);if(l>0)i=o+1;else{if(!(l<0))return o;s=o-1}}return-i-1}var o=new Int32Array(a.length/2);o.fill(0);var l=r.length/3;if(l>8*(1<p.maxNumPositions&&(p=f()),p.bucketNumber>8)return[e];-1===u[h]&&(u[h]=p.numPositions++,p.positionsCompressed.push(r[3*h]),p.positionsCompressed.push(r[3*h+1]),p.positionsCompressed.push(r[3*h+2])),-1===u[I]&&(u[I]=p.numPositions++,p.positionsCompressed.push(r[3*I]),p.positionsCompressed.push(r[3*I+1]),p.positionsCompressed.push(r[3*I+2])),-1===u[y]&&(u[y]=p.numPositions++,p.positionsCompressed.push(r[3*y]),p.positionsCompressed.push(r[3*y+1]),p.positionsCompressed.push(r[3*y+2])),p.indices.push(u[h]),p.indices.push(u[I]),p.indices.push(u[y]);var m=void 0;(m=s(h,I))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]])),(m=s(h,y))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]])),(m=s(I,y))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]]))}var w=t/8*2,g=t/8,E=2*r.length+(i.length+a.length)*w,T=0;return r.length,c.forEach((function(e){T+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*g,e.positionsCompressed.length})),T>E?[e]:(n&&uu(c,e),c)}({positionsCompressed:r,indices:i,edgeIndices:a},r.length/3>65536?16:8):s=[{positionsCompressed:r,indices:i,edgeIndices:a}];return s}var Zc=function(e){I(n,qc);var t=m(n);function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),t.call(this,e,r)}return P(n)}(),$c=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e,i))._positions=i.positions||[],i.indices)r._indices=i.indices;else{r._indices=[];for(var a=0,s=r._positions.length/3-1;a1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"BCFViewpoints",e,i)).originatingSystem=i.originatingSystem||"xeokit.io",r.authoringTool=i.authoringTool||"xeokit.io",r}return P(n,[{key:"getViewpoint",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.viewer.scene,r=n.camera,i=n.realWorldOffset,a=!0===t.reverseClippingPlanes,s={},o=$.normalizeVec3($.subVec3(r.look,r.eye,$.vec3())),l=r.eye,u=r.up;r.yUp&&(o=lf(o),l=lf(l),u=lf(u));var c=sf($.addVec3(l,i));"ortho"===r.projection?s.orthogonal_camera={camera_view_point:c,camera_direction:sf(o),camera_up_vector:sf(u),view_to_world_scale:r.ortho.scale}:s.perspective_camera={camera_view_point:c,camera_direction:sf(o),camera_up_vector:sf(u),field_of_view:r.perspective.fov};var f=n.sectionPlanes;for(var A in f)if(f.hasOwnProperty(A)){var d=f[A];if(!d.active)continue;var v=d.pos,h=void 0;h=a?$.negateVec3(d.dir,$.vec3()):d.dir,r.yUp&&(v=lf(v),h=lf(h)),$.addVec3(v,i),v=sf(v),h=sf(h),s.clipping_planes||(s.clipping_planes=[]),s.clipping_planes.push({location:v,direction:h})}var I=n.lineSets;for(var y in I)if(I.hasOwnProperty(y)){var m=I[y];s.lines||(s.lines=[]);for(var w=m.positions,g=m.indices,E=0,T=g.length/2;E1&&void 0!==arguments[1]?arguments[1]:{};if(e){var r=this.viewer,i=r.scene,a=i.camera,s=!1!==n.rayCast,o=!1!==n.immediate,l=!1!==n.reset,u=i.realWorldOffset,c=!0===n.reverseClippingPlanes;if(i.clearSectionPlanes(),e.clipping_planes&&e.clipping_planes.length>0&&e.clipping_planes.forEach((function(e){var t=of(e.location,ef),n=of(e.direction,ef);c&&$.negateVec3(n),$.subVec3(t,u),a.yUp&&(t=uf(t),n=uf(n)),new ia(i,{pos:t,dir:n})})),i.clearLines(),e.lines&&e.lines.length>0){var f=[],p=[],A=0;e.lines.forEach((function(e){e.start_point&&e.end_point&&(f.push(e.start_point.x),f.push(e.start_point.y),f.push(e.start_point.z),f.push(e.end_point.x),f.push(e.end_point.y),f.push(e.end_point.z),p.push(A++),p.push(A++))})),new $c(i,{positions:f,indices:p,clippable:!1,collidable:!0})}if(i.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){var t=e.bitmap_type||"jpg",n=e.bitmap_data,r=of(e.location,tf),s=of(e.normal,nf),o=of(e.up,rf),l=e.height||1;t&&n&&r&&s&&o&&(a.yUp&&(r=uf(r),s=uf(s),o=uf(o)),new ja(i,{src:n,type:t,pos:r,normal:s,up:o,clippable:!1,collidable:!0,height:l}))})),l&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsHighlighted(i.highlightedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(i.setObjectsVisible(i.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.visible=!1}))}))):(i.setObjectsVisible(i.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.visible=!0}))})));var d=e.components.visibility.view_setup_hints;d&&(!1===d.spaces_visible&&i.setObjectsVisible(r.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==d.spaces_translucent&&i.setObjectsXRayed(r.metaScene.getObjectIDsByType("IfcSpace"),!0),d.space_boundaries_visible,!1===d.openings_visible&&i.setObjectsVisible(r.metaScene.getObjectIDsByType("IfcOpening"),!0),d.space_boundaries_translucent,void 0!==d.openings_translucent&&i.setObjectsXRayed(r.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(i.setObjectsSelected(i.selectedObjectIds,!1),e.components.selection.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.selected=!0}))}))),e.components.translucency&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),e.components.translucency.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.xrayed=!0}))}))),e.components.coloring&&e.components.coloring.forEach((function(e){var r=e.color,i=0,a=!1;8===r.length&&((i=parseInt(r.substring(0,2),16)/256)<=1&&i>=.95&&(i=1),r=r.substring(2),a=!0);var s=[parseInt(r.substring(0,2),16)/256,parseInt(r.substring(2,4),16)/256,parseInt(r.substring(4,6),16)/256];e.components.map((function(e){return t._withBCFComponent(n,e,(function(e){e.colorize=s,a&&(e.opacity=i)}))}))}))}if(e.perspective_camera||e.orthogonal_camera){var v,h,I,y;if(e.perspective_camera?(v=of(e.perspective_camera.camera_view_point,ef),h=of(e.perspective_camera.camera_direction,ef),I=of(e.perspective_camera.camera_up_vector,ef),a.perspective.fov=e.perspective_camera.field_of_view,y="perspective"):(v=of(e.orthogonal_camera.camera_view_point,ef),h=of(e.orthogonal_camera.camera_direction,ef),I=of(e.orthogonal_camera.camera_up_vector,ef),a.ortho.scale=e.orthogonal_camera.view_to_world_scale,y="ortho"),$.subVec3(v,u),a.yUp&&(v=uf(v),h=uf(h),I=uf(I)),s){var m=i.pick({pickSurface:!0,origin:v,direction:h});h=m?m.worldPos:$.addVec3(v,h,ef)}else h=$.addVec3(v,h,ef);o?(a.eye=v,a.look=h,a.up=I,a.projection=y):r.cameraFlight.flyTo({eye:v,look:h,up:I,duration:n.duration,projection:y})}}}},{key:"_withBCFComponent",value:function(e,t,n){var r=this.viewer,i=r.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){var a=t.authoring_tool_id,s=i.objects[a];if(s)return void n(s);if(e.updateCompositeObjects)if(r.metaScene.metaObjects[a])return void i.withObjects(r.metaScene.getObjectIDsInSubtree(a),n)}if(t.ifc_guid){var o=t.ifc_guid,l=i.objects[o];if(l)return void n(l);if(e.updateCompositeObjects)if(r.metaScene.metaObjects[o])return void i.withObjects(r.metaScene.getObjectIDsInSubtree(o),n);Object.keys(i.models).forEach((function(t){var a=$.globalizeObjectId(t,o),s=i.objects[a];s?n(s):e.updateCompositeObjects&&r.metaScene.metaObjects[a]&&i.withObjects(r.metaScene.getObjectIDsInSubtree(a),n)}))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}}]),n}();function sf(e){return{x:e[0],y:e[1],z:e[2]}}function of(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function lf(e){return new Float64Array([e[0],-e[2],e[1]])}function uf(e){return new Float64Array([e[0],e[2],-e[1]])}function cf(e){var t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0")}var ff=$.vec3(),pf=function(e,t,n,r){var i=e-n,a=t-r;return Math.sqrt(i*i+a*a)},Af=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e.viewer.scene,i)).plugin=e,r._container=i.container,!r._container)throw"config missing: container";r._eventSubs={};var a=r.plugin.viewer.scene;r._originMarker=new Xe(a,i.origin),r._targetMarker=new Xe(a,i.target),r._originWorld=$.vec3(),r._targetWorld=$.vec3(),r._wp=new Float64Array(24),r._vp=new Float64Array(24),r._pp=new Float64Array(24),r._cp=new Float64Array(8),r._xAxisLabelCulled=!1,r._yAxisLabelCulled=!1,r._zAxisLabelCulled=!1,r._color=i.color||r.plugin.defaultColor;var s=i.onMouseOver?function(e){i.onMouseOver(e,g(r))}:null,o=i.onMouseLeave?function(e){i.onMouseLeave(e,g(r))}:null,l=i.onContextMenu?function(e){i.onContextMenu(e,g(r))}:null,u=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};return r._originDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._targetDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._lengthWire=new qe(r._container,{color:r._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._xAxisWire=new qe(r._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._yAxisWire=new qe(r._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._zAxisWire=new qe(r._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._lengthLabel=new Ze(r._container,{fillColor:r._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._xAxisLabel=new Ze(r._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._yAxisLabel=new Ze(r._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._zAxisLabel=new Ze(r._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:u,onContextMenu:l}),r._wpDirty=!1,r._vpDirty=!1,r._cpDirty=!1,r._sectionPlanesDirty=!0,r._visible=!1,r._originVisible=!1,r._targetVisible=!1,r._wireVisible=!1,r._axisVisible=!1,r._xAxisVisible=!1,r._yAxisVisible=!1,r._zAxisVisible=!1,r._axisEnabled=!0,r._labelsVisible=!1,r._clickable=!1,r._originMarker.on("worldPos",(function(e){r._originWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._targetMarker.on("worldPos",(function(e){r._targetWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._onViewMatrix=a.camera.on("viewMatrix",(function(){r._vpDirty=!0,r._needUpdate(0)})),r._onProjMatrix=a.camera.on("projMatrix",(function(){r._cpDirty=!0,r._needUpdate()})),r._onCanvasBoundary=a.canvas.on("boundary",(function(){r._cpDirty=!0,r._needUpdate(0)})),r._onMetricsUnits=a.metrics.on("units",(function(){r._cpDirty=!0,r._needUpdate()})),r._onMetricsScale=a.metrics.on("scale",(function(){r._cpDirty=!0,r._needUpdate()})),r._onMetricsOrigin=a.metrics.on("origin",(function(){r._cpDirty=!0,r._needUpdate()})),r._onSectionPlaneUpdated=a.on("sectionPlaneUpdated",(function(){r._sectionPlanesDirty=!0,r._needUpdate()})),r.approximate=i.approximate,r.visible=i.visible,r.originVisible=i.originVisible,r.targetVisible=i.targetVisible,r.wireVisible=i.wireVisible,r.axisVisible=i.axisVisible,r.xAxisVisible=i.xAxisVisible,r.yAxisVisible=i.yAxisVisible,r.zAxisVisible=i.zAxisVisible,r.labelsVisible=i.labelsVisible,r}return P(n,[{key:"_update",value:function(){if(this._visible){var e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&($.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}var t=this._originMarker.viewPos[2],n=this._targetMarker.viewPos[2];if(t>-.3||n>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){$.transformPositions4(e.camera.project.matrix,this._vp,this._pp);for(var r=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect(),s=this._container.getBoundingClientRect(),o=a.top-s.top,l=a.left-s.left,u=e.canvas.boundary,c=u[2],f=u[3],p=0,A=this.plugin.viewer.scene.metrics,d=A.scale,v=A.units,h=A.unitsInfo[v].abbrev,I=0,y=r.length;I1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e.viewer.scene)).pointerLens=i.pointerLens,r._active=!1,r._currentDistanceMeasurement=null,r._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null},r._initMarkerDiv(),r._onCameraControlHoverSnapOrSurface=null,r._onCameraControlHoverSnapOrSurfaceOff=null,r._onMouseDown=null,r._onMouseUp=null,r._onCanvasTouchStart=null,r._onCanvasTouchEnd=null,r._snapping=!1!==i.snapping,r._mouseState=0,r._attachPlugin(e,i),r}return P(n,[{key:"_initMarkerDiv",value:function(){var e=document.createElement("div");e.setAttribute("id","myMarkerDiv");var t=this.scene.canvas.canvas;t.parentNode.insertBefore(e,t),e.style.background="black",e.style.border="2px solid blue",e.style.borderRadius="10px",e.style.width="5px",e.style.height="5px",e.style.margin="-200px -200px",e.style.zIndex="100",e.style.position="absolute",e.style.pointerEvents="none",this._markerDiv=e}},{key:"_destroyMarkerDiv",value:function(){if(this._markerDiv){var e=document.getElementById("myMarkerDiv");e.parentNode.removeChild(e),this._markerDiv=null}}},{key:"_attachPlugin",value:function(e){this.distanceMeasurementsPlugin=e,this.plugin=e}},{key:"active",get:function(){return this._active}},{key:"snapping",get:function(){return this._snapping},set:function(e){e!==this._snapping?(this._snapping=e,this.deactivate(),this.activate()):this._snapping=e}},{key:"activate",value:function(){var e=this;if(!this._active){this._markerDiv||this._initMarkerDiv(),this.fire("activated",!0);var t=this.distanceMeasurementsPlugin,n=this.scene,r=t.viewer.cameraControl,i=n.canvas.canvas;n.input;var a,s,o=!1,l=$.vec3(),u=$.vec2(),c=null;this._mouseState=0,this._onCameraControlHoverSnapOrSurface=r.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",(function(t){var n=t.snappedCanvasPos||t.canvasPos;o=!0,l.set(t.worldPos),u.set(t.canvasPos),0===e._mouseState?(e._markerDiv.style.marginLeft="".concat(n[0]-5,"px"),e._markerDiv.style.marginTop="".concat(n[1]-5,"px"),e._markerDiv.style.background="pink",t.snappedToVertex||t.snappedToEdge?(e.pointerLens&&(e.pointerLens.visible=!0,e.pointerLens.canvasPos=t.canvasPos,e.pointerLens.snappedCanvasPos=t.snappedCanvasPos||t.canvasPos,e.pointerLens.snapped=!0),e._markerDiv.style.background="greenyellow",e._markerDiv.style.border="2px solid green"):(e.pointerLens&&(e.pointerLens.visible=!0,e.pointerLens.canvasPos=t.canvasPos,e.pointerLens.snappedCanvasPos=t.canvasPos,e.pointerLens.snapped=!1),e._markerDiv.style.background="pink",e._markerDiv.style.border="2px solid red"),c=t.entity):(e._markerDiv.style.marginLeft="-10000px",e._markerDiv.style.marginTop="-10000px"),i.style.cursor="pointer",e._currentDistanceMeasurement&&(e._currentDistanceMeasurement.wireVisible=e._currentDistanceMeasurementInitState.wireVisible,e._currentDistanceMeasurement.axisVisible=e._currentDistanceMeasurementInitState.axisVisible&&e.distanceMeasurementsPlugin.defaultAxisVisible,e._currentDistanceMeasurement.xAxisVisible=e._currentDistanceMeasurementInitState.xAxisVisible&&e.distanceMeasurementsPlugin.defaultXAxisVisible,e._currentDistanceMeasurement.yAxisVisible=e._currentDistanceMeasurementInitState.yAxisVisible&&e.distanceMeasurementsPlugin.defaultYAxisVisible,e._currentDistanceMeasurement.zAxisVisible=e._currentDistanceMeasurementInitState.zAxisVisible&&e.distanceMeasurementsPlugin.defaultZAxisVisible,e._currentDistanceMeasurement.targetVisible=e._currentDistanceMeasurementInitState.targetVisible,e._currentDistanceMeasurement.target.worldPos=l.slice(),e._markerDiv.style.marginLeft="-10000px",e._markerDiv.style.marginTop="-10000px")})),i.addEventListener("mousedown",this._onMouseDown=function(e){1===e.which&&(a=e.clientX,s=e.clientY)}),i.addEventListener("mouseup",this._onMouseUp=function(n){1===n.which&&(n.clientX>a+20||n.clientXs+20||n.clientY1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"DistanceMeasurements",e))._pointerLens=i.pointerLens,r._container=i.container||document.body,r._defaultControl=null,r._measurements={},r.labelMinAxisLength=i.labelMinAxisLength,r.defaultVisible=!1!==i.defaultVisible,r.defaultOriginVisible=!1!==i.defaultOriginVisible,r.defaultTargetVisible=!1!==i.defaultTargetVisible,r.defaultWireVisible=!1!==i.defaultWireVisible,r.defaultLabelsVisible=!1!==i.defaultLabelsVisible,r.defaultAxisVisible=!1!==i.defaultAxisVisible,r.defaultXAxisVisible=!1!==i.defaultXAxisVisible,r.defaultYAxisVisible=!1!==i.defaultYAxisVisible,r.defaultZAxisVisible=!1!==i.defaultZAxisVisible,r.defaultColor=void 0!==i.defaultColor?i.defaultColor:"#00BBFF",r.zIndex=i.zIndex||1e4,r._onMouseOver=function(e,t){r.fire("mouseOver",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r._onMouseLeave=function(e,t){r.fire("mouseLeave",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r._onContextMenu=function(e,t){r.fire("contextMenu",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){}},{key:"pointerLens",get:function(){return this._pointerLens}},{key:"control",get:function(){return this._defaultControl||(this._defaultControl=new vf(this,{})),this._defaultControl}},{key:"measurements",get:function(){return this._measurements}},{key:"labelMinAxisLength",get:function(){return this._labelMinAxisLength},set:function(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}},{key:"createMeasurement",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.viewer.scene.components[t.id]&&(this.error("Viewer scene component with this ID already exists: "+t.id),delete t.id);var n=t.origin,r=t.target,i=new Af(this,{id:t.id,plugin:this,container:this._container,origin:{entity:n.entity,worldPos:n.worldPos},target:{entity:r.entity,worldPos:r.worldPos},visible:t.visible,wireVisible:t.wireVisible,axisVisible:!1!==t.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==t.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==t.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==t.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==t.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:t.originVisible,targetVisible:t.targetVisible,color:t.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(function(){delete e._measurements[i.id]})),this.fire("measurementCreated",i),i}},{key:"destroyMeasurement",value:function(e){var t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}},{key:"setLabelsShown",value:function(e){for(var t=0,n=Object.entries(this.measurements);t1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,"FastNav",e))._hideColorTexture=!1!==i.hideColorTexture,r._hidePBR=!1!==i.hidePBR,r._hideSAO=!1!==i.hideSAO,r._hideEdges=!1!==i.hideEdges,r._hideTransparentObjects=!!i.hideTransparentObjects,r._scaleCanvasResolution=!!i.scaleCanvasResolution,r._scaleCanvasResolutionFactor=i.scaleCanvasResolutionFactor||.6,r._delayBeforeRestore=!1!==i.delayBeforeRestore,r._delayBeforeRestoreSeconds=i.delayBeforeRestoreSeconds||.5;var a=1e3*r._delayBeforeRestoreSeconds,s=!1,o=function(){a=1e3*r._delayBeforeRestoreSeconds,s||(e.scene._renderer.setColorTextureEnabled(!r._hideColorTexture),e.scene._renderer.setPBREnabled(!r._hidePBR),e.scene._renderer.setSAOEnabled(!r._hideSAO),e.scene._renderer.setTransparentEnabled(!r._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!r._hideEdges),r._scaleCanvasResolution?e.scene.canvas.resolutionScale=r._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,s=!0)},l=function(){e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),s=!1};r._onCanvasBoundary=e.scene.canvas.on("boundary",o),r._onCameraMatrix=e.scene.camera.on("matrix",o),r._onSceneTick=e.scene.on("tick",(function(e){s&&(a-=e.deltaTime,(!r._delayBeforeRestore||a<=0)&&l())}));var u=!1;return r._onSceneMouseDown=e.scene.input.on("mousedown",(function(){u=!0})),r._onSceneMouseUp=e.scene.input.on("mouseup",(function(){u=!1})),r._onSceneMouseMove=e.scene.input.on("mousemove",(function(){u&&o()})),r}return P(n,[{key:"hideColorTexture",get:function(){return this._hideColorTexture},set:function(e){this._hideColorTexture=e}},{key:"hidePBR",get:function(){return this._hidePBR},set:function(e){this._hidePBR=e}},{key:"hideSAO",get:function(){return this._hideSAO},set:function(e){this._hideSAO=e}},{key:"hideEdges",get:function(){return this._hideEdges},set:function(e){this._hideEdges=e}},{key:"hideTransparentObjects",get:function(){return this._hideTransparentObjects},set:function(e){this._hideTransparentObjects=!1!==e}},{key:"scaleCanvasResolution",get:function(){return this._scaleCanvasResolution},set:function(e){this._scaleCanvasResolution=e}},{key:"scaleCanvasResolutionFactor",get:function(){return this._scaleCanvasResolutionFactor},set:function(e){this._scaleCanvasResolutionFactor=e||.6}},{key:"delayBeforeRestore",get:function(){return this._delayBeforeRestore},set:function(e){this._delayBeforeRestore=e}},{key:"delayBeforeRestoreSeconds",get:function(){return this._delayBeforeRestoreSeconds},set:function(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}},{key:"send",value:function(e,t){}},{key:"destroy",value:function(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),yf=function(){function e(){b(this,e)}return P(e,[{key:"getMetaModel",value:function(e,t,n){le.loadJSON(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getGLTF",value:function(e,t,n){le.loadArraybuffer(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getGLB",value:function(e,t,n){le.loadArraybuffer(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getArrayBuffer",value:function(e,t,n,r){!function(e,t,n,r){var i=function(){};n=n||i,r=r||i;var a=/^data:(.*?)(;base64)?,(.*)$/,s=t.match(a);if(s){var o=!!s[2],l=s[3];l=window.decodeURIComponent(l),o&&(l=window.atob(l));try{for(var u=new ArrayBuffer(l.length),c=new Uint8Array(u),f=0;f0&&void 0!==arguments[0]?arguments[0]:{};b(this,e),this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=t.messages,this.locale=t.locale}return P(e,[{key:"messages",set:function(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}},{key:"loadMessages",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e)this._messages[t]=e[t];this.messages=this._messages}},{key:"clearMessages",value:function(){this.messages={}}},{key:"locales",get:function(){return this._locales}},{key:"locale",get:function(){return this._locale},set:function(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}},{key:"translate",value:function(e,t){var n=this._messages[this._locale];if(!n)return null;var r=wf(e,n);return r?t?gf(r,t):r:null}},{key:"translatePlurals",value:function(e,t,n){var r=this._messages[this._locale];if(!r)return null;var i=wf(e,r);return(i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one)?(i=gf(i,[t]),n&&(i=gf(i,n)),i):null}},{key:"fire",value:function(e,t,n){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==n&&(this._events[e]=t||!0);var r=this._eventSubs[e];if(r)for(var i in r){if(r.hasOwnProperty(i))r[i].callback(t)}}},{key:"on",value:function(e,t){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new G),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});var n=this._eventSubs[e];n||(n={},this._eventSubs[e]=n);var r=this._eventSubIDMap.addItem();n[r]={callback:t},this._eventSubEvents[r]=e;var i=this._events[e];return void 0!==i&&t(i),r}},{key:"off",value:function(e){if(null!=e&&this._eventSubEvents){var t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];var n=this._eventSubs[t];n&&delete n[e],this._eventSubIDMap.removeItem(e)}}}}]),e}();function wf(e,t){if(t[e])return t[e];for(var n=e.split("."),r=t,i=0,a=n.length;r&&i1&&void 0!==arguments[1]?arguments[1]:[];return e.replace(/\{\{|\}\}|\{(\d+)\}/g,(function(e,n){return"{{"===e?"{":"}}"===e?"}":t[n]}))}var Ef=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).t=i.t,r}return P(n,[{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"tangent",get:function(){return this.getTangent(this._t)}},{key:"length",get:function(){var e=this._getLengths();return e[e.length-1]}},{key:"getTangent",value:function(e){var t=1e-4;void 0===e&&(e=this._t);var n=e-t,r=e+t;n<0&&(n=0),r>1&&(r=1);var i=this.getPoint(n),a=this.getPoint(r),s=$.subVec3(a,i,[]);return $.normalizeVec3(s,[])}},{key:"getPointAt",value:function(e){var t=this.getUToTMapping(e);return this.getPoint(t)}},{key:"getPoints",value:function(e){e||(e=5);var t,n=[];for(t=0;t<=e;t++)n.push(this.getPoint(t/e));return n}},{key:"_getLengths",value:function(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,n,r=[],i=this.getPoint(0),a=0;for(r.push(0),n=1;n<=e;n++)t=this.getPoint(n/e),a+=$.lenVec3($.subVec3(t,i,[])),r.push(a),i=t;return this.cacheArcLengths=r,r}},{key:"_updateArcLengths",value:function(){this.needsUpdate=!0,this._getLengths()}},{key:"getUToTMapping",value:function(e,t){var n,r=this._getLengths(),i=0,a=r.length;n=t||e*r[a-1];for(var s,o=0,l=a-1;o<=l;)if((s=r[i=Math.floor(o+(l-o)/2)]-n)<0)o=i+1;else{if(!(s>0)){l=i;break}l=i-1}if(r[i=l]===n)return i/(a-1);var u=r[i];return(i+(n-u)/(r[i+1]-u))/(a-1)}}]),n}(),Tf=function(e){I(n,Ef);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).points=i.points,r.t=i.t,r}return P(n,[{key:"points",get:function(){return this._points},set:function(e){this._points=e||[]}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=this.points;if(!(t.length<3)){var n=(t.length-1)*e,r=Math.floor(n),i=n-r,a=t[0===r?r:r-1],s=t[r],o=t[r>t.length-2?t.length-1:r+1],l=t[r>t.length-3?t.length-1:r+2],u=$.vec3();return u[0]=$.catmullRomInterpolate(a[0],s[0],o[0],l[0],i),u[1]=$.catmullRomInterpolate(a[1],s[1],o[1],l[1],i),u[2]=$.catmullRomInterpolate(a[2],s[2],o[2],l[2],i),u}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}},{key:"getJSON",value:function(){return{points:points,t:this._t}}}]),n}(),bf=$.vec3(),Df=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._frames=[],r._eyeCurve=new Tf(g(r)),r._lookCurve=new Tf(g(r)),r._upCurve=new Tf(g(r)),i.frames&&(r.addFrames(i.frames),r.smoothFrameTimes(1)),r}return P(n,[{key:"type",get:function(){return"CameraPath"}},{key:"frames",get:function(){return this._frames}},{key:"eyeCurve",get:function(){return this._eyeCurve}},{key:"lookCurve",get:function(){return this._lookCurve}},{key:"upCurve",get:function(){return this._upCurve}},{key:"saveFrame",value:function(e){var t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}},{key:"addFrame",value:function(e,t,n,r){var i={t:e,eye:t.slice(0),look:n.slice(0),up:r.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}},{key:"addFrames",value:function(e){for(var t,n=0,r=e.length;n1?1:e,t.eye=this._eyeCurve.getPoint(e,bf),t.look=this._lookCurve.getPoint(e,bf),t.up=this._upCurve.getPoint(e,bf)}},{key:"sampleFrame",value:function(e,t,n,r){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,n),this._upCurve.getPoint(e,r)}},{key:"smoothFrameTimes",value:function(e){if(0!==this._frames.length){var t=$.vec3(),n=0;this._frames[0].t=0;for(var r=[],i=1,a=this._frames.length;i1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._look1=$.vec3(),r._eye1=$.vec3(),r._up1=$.vec3(),r._look2=$.vec3(),r._eye2=$.vec3(),r._up2=$.vec3(),r._orthoScale1=1,r._orthoScale2=1,r._flying=!1,r._flyEyeLookUp=!1,r._flyingEye=!1,r._flyingLook=!1,r._callback=null,r._callbackScope=null,r._time1=null,r._time2=null,r.easing=!1!==i.easing,r.duration=i.duration,r.fit=i.fit,r.fitFOV=i.fitFOV,r.trail=i.trail,r}return P(n,[{key:"type",get:function(){return"CameraFlightAnimation"}},{key:"flyTo",value:function(e,t,n){e=e||this.scene,this._flying&&this.stop(),this._flying=!1,this._flyingEye=!1,this._flyingLook=!1,this._flyingEyeLookUp=!1,this._callback=t,this._callbackScope=n;var r,i,a,s,o,l=this.scene.camera,u=!!e.projection&&e.projection!==l.projection;if(this._eye1[0]=l.eye[0],this._eye1[1]=l.eye[1],this._eye1[2]=l.eye[2],this._look1[0]=l.look[0],this._look1[1]=l.look[1],this._look1[2]=l.look[2],this._up1[0]=l.up[0],this._up1[1]=l.up[1],this._up1[2]=l.up[2],this._orthoScale1=l.ortho.scale,this._orthoScale2=e.orthoScale||this._orthoScale1,e.aabb)r=e.aabb;else if(6===e.length)r=e;else if(e.eye&&e.look||e.up)i=e.eye,a=e.look,s=e.up;else if(e.eye)i=e.eye;else if(e.look)a=e.look;else{var c=e;if((le.isNumeric(c)||le.isString(c))&&(o=c,!(c=this.scene.components[o])))return this.error("Component not found: "+le.inQuotes(o)),void(t&&(n?t.call(n):t()));u||(r=c.aabb||this.scene.aabb)}var f=e.poi;if(r){if(r[3]=1;e>1&&(e=1);var r=this.easing?n._ease(e,0,1,1):e,i=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?($.subVec3(i.eye,i.look,Bf),i.eye=$.lerpVec3(r,0,1,this._eye1,this._eye2,Cf),i.look=$.subVec3(Cf,Bf,Rf)):this._flyingLook&&(i.look=$.lerpVec3(r,0,1,this._look1,this._look2,Rf),i.up=$.lerpVec3(r,0,1,this._up1,this._up2,_f)):this._flyingEyeLookUp&&(i.eye=$.lerpVec3(r,0,1,this._eye1,this._eye2,Cf),i.look=$.lerpVec3(r,0,1,this._look1,this._look2,Rf),i.up=$.lerpVec3(r,0,1,this._up1,this._up2,_f)),this._projection2){var a="ortho"===this._projection2?n._easeOutExpo(e,0,1,1):n._easeInCubic(e,0,1,1);i.customProjection.matrix=$.lerpMat4(a,0,1,this._projMatrix1,this._projMatrix2)}else i.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return i.ortho.scale=this._orthoScale2,void this.stop();he.scheduleTask(this._update,this)}}},{key:"stop",value:function(){if(this._flying){this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);var e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}}},{key:"cancel",value:function(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}},{key:"duration",get:function(){return this._duration/1e3},set:function(e){this._duration=e?1e3*e:500,this.stop()}},{key:"fit",get:function(){return this._fit},set:function(e){this._fit=!1!==e}},{key:"fitFOV",get:function(){return this._fitFOV},set:function(e){this._fitFOV=e||45}},{key:"trail",get:function(){return this._trail},set:function(e){this._trail=!!e}},{key:"destroy",value:function(){this.stop(),v(E(n.prototype),"destroy",this).call(this)}}],[{key:"_ease",value:function(e,t,n,r){return-n*(e/=r)*(e-2)+t}},{key:"_easeInCubic",value:function(e,t,n,r){return n*(e/=r)*e*e+t}},{key:"_easeOutExpo",value:function(e,t,n,r){return n*(1-Math.pow(2,-10*e/r))+t}}]),n}(),Sf=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._cameraFlightAnimation=new Of(g(r)),r._t=0,r.state=n.SCRUBBING,r._playingFromT=0,r._playingToT=0,r._playingRate=i.playingRate||1,r._playingDir=1,r._lastTime=null,r.cameraPath=i.cameraPath,r._tick=r.scene.on("tick",r._updateT,g(r)),r}return P(n,[{key:"type",get:function(){return"CameraPathAnimation"}},{key:"_updateT",value:function(){var e=this._cameraPath;if(e){var t,r,i=performance.now(),a=this._lastTime?.001*(i-this._lastTime):0;if(this._lastTime=i,0!==a)switch(this.state){case n.SCRUBBING:return;case n.PLAYING:if(this._t+=this._playingRate*a,0===(t=this._cameraPath.frames.length)||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=n.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case n.PLAYING_TO:r=this._t+this._playingRate*a*this._playingDir,(this._playingDir<0&&r<=this._playingToT||this._playingDir>0&&r>=this._playingToT)&&(r=this._playingToT,this.state=n.SCRUBBING,this.fire("stopped")),this._t=r,e.loadFrame(this._t)}}}},{key:"_ease",value:function(e,t,n,r){return-n*(e/=r)*(e-2)+t}},{key:"cameraPath",get:function(){return this._cameraPath},set:function(e){this._cameraPath=e}},{key:"rate",get:function(){return this._playingRate},set:function(e){this._playingRate=e}},{key:"play",value:function(){this._cameraPath&&(this._lastTime=null,this.state=n.PLAYING)}},{key:"playToT",value:function(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=n.PLAYING_TO)}},{key:"playToFrame",value:function(e){var t=this._cameraPath;if(t){var n=t.frames[e];n?this.playToT(n.t):this.error("playToFrame - frame index out of range: "+e)}}},{key:"flyToFrame",value:function(e,t){var r=this._cameraPath;if(r){var i=r.frames[e];i?(this.state=n.SCRUBBING,this._cameraFlightAnimation.flyTo(i,t)):this.error("flyToFrame - frame index out of range: "+e)}}},{key:"scrubToT",value:function(e){var t=this._cameraPath;t&&(this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=n.SCRUBBING))}},{key:"scrubToFrame",value:function(e){var t=this._cameraPath;t&&(this.scene.camera&&(t.frames[e]?(t.loadFrame(this._t),this.state=n.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)))}},{key:"stop",value:function(){this.state=n.SCRUBBING,this.fire("stopped")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene.off(this._tick)}}]),n}();Sf.STOPPED=0,Sf.SCRUBBING=1,Sf.PLAYING=2,Sf.PLAYING_TO=3;var Nf=$.vec3(),Lf=$.vec3();$.vec3();var Mf=$.vec3([0,-1,0]),xf=$.vec4([0,0,0,1]),Ff=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._src=null,r._image=null,r._pos=$.vec3(),r._origin=$.vec3(),r._rtcPos=$.vec3(),r._dir=$.vec3(),r._size=1,r._imageSize=$.vec2(),r._texture=new Ba(g(r)),r._plane=new Ji(g(r),{geometry:new Cn(g(r),Ga({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:r._texture,emissiveMap:r._texture,backfaces:!0}),clippable:i.clippable}),r._grid=new Ji(g(r),{geometry:new Cn(g(r),Ua({size:1,divisions:10})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:i.clippable}),r._node=new da(g(r),{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[r._plane,r._grid]}),r._gridVisible=!1,r.visible=!0,r.gridVisible=i.gridVisible,r.position=i.position,r.rotation=i.rotation,r.dir=i.dir,r.size=i.size,r.collidable=i.collidable,r.clippable=i.clippable,r.pickable=i.pickable,r.opacity=i.opacity,i.image?r.image=i.image:r.src=i.src,r}return P(n,[{key:"visible",get:function(){return this._plane.visible},set:function(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}},{key:"gridVisible",get:function(){return this._gridVisible},set:function(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}},{key:"src",get:function(){return this._src},set:function(e){var t=this;if(this._src=e,this._src){this._image=null;var n=new Image;n.onload=function(){t._texture.image=n,t._imageSize[0]=n.width,t._imageSize[1]=n.height,t._updatePlaneSizeFromImage()},n.src=this._src}}},{key:"position",get:function(){return this._pos},set:function(e){this._pos.set(e||[0,0,0]),Oe(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}},{key:"rotation",get:function(){return this._node.rotation},set:function(e){this._node.rotation=e}},{key:"size",get:function(){return this._size},set:function(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}},{key:"dir",get:function(){return this._dir},set:function(e){if(this._dir.set(e||[0,0,-1]),e){var t=this.scene.center,n=[-this._dir[0],-this._dir[1],-this._dir[2]];$.subVec3(t,this.position,Nf);var r=-$.dotVec3(n,Nf);$.normalizeVec3(n),$.mulVec3Scalar(n,r,Lf),$.vec3PairToQuaternion(Mf,e,xf),this._node.quaternion=xf}}},{key:"collidable",get:function(){return this._node.collidable},set:function(e){this._node.collidable=!1!==e}},{key:"clippable",get:function(){return this._node.clippable},set:function(e){this._node.clippable=!1!==e}},{key:"pickable",get:function(){return this._node.pickable},set:function(e){this._node.pickable=!1!==e}},{key:"opacity",get:function(){return this._node.opacity},set:function(e){this._node.opacity=e}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}},{key:"_updatePlaneSizeFromImage",value:function(){var e=this._size,t=this._imageSize[0],n=this._imageSize[1];if(t>n){var r=n/t;this._node.scale=[e,1,e*r]}else{var i=t/n;this._node.scale=[e*i,1,e]}}}]),n}(),Hf=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n);var a=g(r=t.call(this,e,i));r._shadowRenderBuf=null,r._shadowViewMatrix=null,r._shadowProjMatrix=null,r._shadowViewMatrixDirty=!0,r._shadowProjMatrixDirty=!0;var s=r.scene.camera,o=r.scene.canvas;return r._onCameraViewMatrix=s.on("viewMatrix",(function(){r._shadowViewMatrixDirty=!0})),r._onCameraProjMatrix=s.on("projMatrix",(function(){r._shadowProjMatrixDirty=!0})),r._onCanvasBoundary=o.on("boundary",(function(){r._shadowProjMatrixDirty=!0})),r._state=new Wt({type:"point",pos:$.vec3([1,1,1]),color:$.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:i.space||"view",castsShadow:!1,getShadowViewMatrix:function(){if(a._shadowViewMatrixDirty){a._shadowViewMatrix||(a._shadowViewMatrix=$.identityMat4());var e=a._state.pos,t=s.look,n=s.up;$.lookAtMat4v(e,t,n,a._shadowViewMatrix),a._shadowViewMatrixDirty=!1}return a._shadowViewMatrix},getShadowProjMatrix:function(){if(a._shadowProjMatrixDirty){a._shadowProjMatrix||(a._shadowProjMatrix=$.identityMat4());var e=a.scene.canvas.canvas;$.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,a._shadowProjMatrix),a._shadowProjMatrixDirty=!1}return a._shadowProjMatrix},getShadowRenderBuf:function(){return a._shadowRenderBuf||(a._shadowRenderBuf=new Ut(a.scene.canvas.canvas,a.scene.canvas.gl,{size:[1024,1024]})),a._shadowRenderBuf}}),r.pos=i.pos,r.color=i.color,r.intensity=i.intensity,r.constantAttenuation=i.constantAttenuation,r.linearAttenuation=i.linearAttenuation,r.quadraticAttenuation=i.quadraticAttenuation,r.castsShadow=i.castsShadow,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"PointLight"}},{key:"pos",get:function(){return this._state.pos},set:function(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}},{key:"constantAttenuation",get:function(){return this._state.attenuation[0]},set:function(e){this._state.attenuation[0]=e||0,this.glRedraw()}},{key:"linearAttenuation",get:function(){return this._state.attenuation[1]},set:function(e){this._state.attenuation[1]=e||0,this.glRedraw()}},{key:"quadraticAttenuation",get:function(){return this._state.attenuation[2]},set:function(e){this._state.attenuation[2]=e||0,this.glRedraw()}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}},{key:"destroy",value:function(){var e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}]),n}();function Uf(e){return 0==(e&e-1)}function Gf(e){--e;for(var t=1;t<32;t<<=1)e|=e>>t;return e+1}var kf=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n);var a=(r=t.call(this,e,i)).scene.canvas.gl;return r._state=new Wt({texture:new ba({gl:a,target:a.TEXTURE_CUBE_MAP}),flipY:r._checkFlipY(i.minFilter),encoding:r._checkEncoding(i.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),r._src=i.src,r._images=[],r._loadSrc(i.src),re.memory.textures++,r}return P(n,[{key:"type",get:function(){return"CubeTexture"}},{key:"_checkFlipY",value:function(e){return!!e}},{key:"_checkEncoding",value:function(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}},{key:"_webglContextRestored",value:function(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}},{key:"_loadSrc",value:function(e){var t=this,n=this.scene.canvas.gl;this._images=[];for(var r=!1,i=0,a=function(a){var s,o,l=new Image;l.onload=(s=l,o=a,function(){if(!r&&(s=function(e){if(!Uf(e.width)||!Uf(e.height)){var t=document.createElement("canvas");t.width=Gf(e.width),t.height=Gf(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}(s),t._images[o]=s,6==++i)){var e=t._state.texture;e||(e=new ba({gl:n,target:n.TEXTURE_CUBE_MAP}),t._state.texture=e),e.setImage(t._images,t._state),t.fire("loaded",t._src,!1),t.glRedraw()}}),l.onerror=function(){r=!0},l.src=e[a]},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).scene._lightsState.addReflectionMap(r._state),r.scene._reflectionMapCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"ReflectionMap"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._reflectionMapDestroyed(this)}}]),n}(),Vf=function(e){I(n,kf);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).scene._lightMapCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"LightMap"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._lightMapDestroyed(this)}}]),n}(),Qf=function(e){I(n,Xe);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,{entity:i.entity,occludable:i.occludable,worldPos:i.worldPos}))._occluded=!1,r._visible=!0,r._src=null,r._image=null,r._pos=$.vec3(),r._origin=$.vec3(),r._rtcPos=$.vec3(),r._dir=$.vec3(),r._size=1,r._imageSize=$.vec2(),r._texture=new Ba(g(r),{src:i.src}),r._geometry=new Cn(g(r),{primitive:"triangles",positions:[3,3,0,-3,3,0,-3,-3,0,3,-3,0],normals:[-1,0,0,-1,0,0,-1,0,0,-1,0,0],uv:[1,-1,0,-1,0,0,1,0],indices:[0,1,2,0,2,3]}),r._mesh=new Ji(g(r),{geometry:r._geometry,material:new Nn(g(r),{ambient:[.9,.3,.9],shininess:30,diffuseMap:r._texture,backfaces:!0}),scale:[1,1,1],position:i.worldPos,rotation:[90,0,0],billboard:"spherical",occluder:!1}),r.visible=!0,r.collidable=i.collidable,r.clippable=i.clippable,r.pickable=i.pickable,r.opacity=i.opacity,r.size=i.size,i.image?r.image=i.image:r.src=i.src,r}return P(n,[{key:"_setVisible",value:function(e){this._occluded=!e,this._mesh.visible=this._visible&&!this._occluded,v(E(n.prototype),"_setVisible",this).call(this,e)}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible=null==e||e,this._mesh.visible=this._visible&&!this._occluded}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}},{key:"src",get:function(){return this._src},set:function(e){var t=this;if(this._src=e,this._src){this._image=null;var n=new Image;n.onload=function(){t._texture.image=n,t._imageSize[0]=n.width,t._imageSize[1]=n.height,t._updatePlaneSizeFromImage()},n.src=this._src}}},{key:"size",get:function(){return this._size},set:function(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}},{key:"collidable",get:function(){return this._mesh.collidable},set:function(e){this._mesh.collidable=!1!==e}},{key:"clippable",get:function(){return this._mesh.clippable},set:function(e){this._mesh.clippable=!1!==e}},{key:"pickable",get:function(){return this._mesh.pickable},set:function(e){this._mesh.pickable=!1!==e}},{key:"opacity",get:function(){return this._mesh.opacity},set:function(e){this._mesh.opacity=e}},{key:"_updatePlaneSizeFromImage",value:function(){var e=.5*this._size,t=this._imageSize[0],n=this._imageSize[1],r=n/t;this._geometry.positions=t>n?[e,e*r,0,-e,e*r,0,-e,-e*r,0,e,-e*r,0]:[e/r,e,0,-e/r,e,0,-e/r,-e,0,e/r,-e,0]}}]),n}(),Wf=function(){function e(t){b(this,e),this._eye=$.vec3(),this._look=$.vec3(),this._up=$.vec3(),this._projection={},t&&this.saveCamera(t)}return P(e,[{key:"saveCamera",value:function(e){var t=e.camera,n=t.project;switch(this._eye.set(t.eye),this._look.set(t.look),this._up.set(t.up),t.projection){case"perspective":this._projection={projection:"perspective",fov:n.fov,fovAxis:n.fovAxis,near:n.near,far:n.far};break;case"ortho":this._projection={projection:"ortho",scale:n.scale,near:n.near,far:n.far};break;case"frustum":this._projection={projection:"frustum",left:n.left,right:n.right,top:n.top,bottom:n.bottom,near:n.near,far:n.far};break;case"custom":this._projection={projection:"custom",matrix:n.matrix.slice()}}}},{key:"restoreCamera",value:function(e,t){var n=e.camera,r=this._projection;function i(){switch(r.type){case"perspective":n.perspective.fov=r.fov,n.perspective.fovAxis=r.fovAxis,n.perspective.near=r.near,n.perspective.far=r.far;break;case"ortho":n.ortho.scale=r.scale,n.ortho.near=r.near,n.ortho.far=r.far;break;case"frustum":n.frustum.left=r.left,n.frustum.right=r.right,n.frustum.top=r.top,n.frustum.bottom=r.bottom,n.frustum.near=r.near,n.frustum.far=r.far;break;case"custom":n.customProjection.matrix=r.matrix}}t?e.viewer.cameraFlight.flyTo({eye:this._eye,look:this._look,up:this._up,orthoScale:r.scale,projection:r.projection},(function(){i(),t()})):(n.eye=this._eye,n.look=this._look,n.up=this._up,i(),n.projection=r.projection)}}]),e}(),zf=$.vec3(),Kf=function(){function e(t){if(b(this,e),this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsOpacity=[],this.numObjects=0,t){var n=t.metaScene.scene;this.saveObjects(n,t)}}return P(e,[{key:"saveObjects",value:function(e,t,n){this.numObjects=0,this._mask=n?le.apply(n,{}):null;for(var r=!n||n.visible,i=!n||n.edges,a=!n||n.xrayed,s=!n||n.highlighted,o=!n||n.selected,l=!n||n.clippable,u=!n||n.pickable,c=!n||n.colorize,f=!n||n.opacity,p=t.metaObjects,A=e.objects,d=0,v=p.length;d1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).v0=i.v0,r.v1=i.v1,r.v2=i.v2,r.v3=i.v3,r.t=i.t,r}return P(n,[{key:"v0",get:function(){return this._v0},set:function(e){this._v0=e||$.vec3([0,0,0])}},{key:"v1",get:function(){return this._v1},set:function(e){this._v1=e||$.vec3([0,0,0])}},{key:"v2",get:function(){return this._v2},set:function(e){this._v2=e||$.vec3([0,0,0])}},{key:"v3",get:function(){return this._v3},set:function(e){this.fire("v3",this._v3=e||$.vec3([0,0,0]))}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=$.vec3();return t[0]=$.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=$.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=$.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}},{key:"getJSON",value:function(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}}]),n}(),Jf=function(e){I(n,Ef);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._cachedLengths=[],r._dirty=!0,r._curves=[],r._t=0,r._dirtySubs=[],r._destroyedSubs=[],r.curves=i.curves||[],r.t=i.t,r}return P(n,[{key:"addCurve",value:function(e){this._curves.push(e),this._dirty=!0}},{key:"curves",get:function(){return this._curves},set:function(e){var t,n,r;for(e=e||[],n=0,r=this._curves.length;n1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"length",get:function(){var e=this._getCurveLengths();return e[e.length-1]}},{key:"getPoint",value:function(e){for(var t,n=e*this.length,r=this._getCurveLengths(),i=0;i=n){var a=1-(r[i]-n)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}},{key:"_getCurveLengths",value:function(){if(!this._dirty)return this._cachedLengths;var e,t=[],n=0,r=this._curves.length;for(e=0;e1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).v0=i.v0,r.v1=i.v1,r.v2=i.v2,r.t=i.t,r}return P(n,[{key:"v0",get:function(){return this._v0},set:function(e){this._v0=e||$.vec3([0,0,0])}},{key:"v1",get:function(){return this._v1},set:function(e){this._v1=e||$.vec3([0,0,0])}},{key:"v2",get:function(){return this._v2},set:function(e){this._v2=e||$.vec3([0,0,0])}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=$.vec3();return t[0]=$.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=$.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=$.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}},{key:"getJSON",value:function(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}}]),n}(),$f=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._skyboxMesh=new Ji(g(r),{geometry:new Cn(g(r),{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Nn(g(r),{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new Ba(g(r),{src:i.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:i.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),r.size=i.size,r.active=i.active,r}return P(n,[{key:"size",get:function(){return this._size},set:function(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}},{key:"active",get:function(){return this._skyboxMesh.visible},set:function(e){this._skyboxMesh.visible=e}}]),n}(),ep=function(){function e(){b(this,e)}return P(e,[{key:"transcode",value:function(e,t){}},{key:"destroy",value:function(){}}]),e}(),tp=$.vec4(),np=$.vec4(),rp=$.vec3(),ip=$.vec3(),ap=$.vec3(),sp=$.vec4(),op=$.vec4(),lp=$.vec4(),up=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"dollyToCanvasPos",value:function(e,t,n){var r=!1,i=this._scene.camera;if(e){var a=$.subVec3(e,i.eye,rp);r=$.lenVec3(a)0&&void 0!==arguments[0]?arguments[0]:{};this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);var t=e.color||[1,0,0];this._pivotSphereMaterial=new Nn(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}},{key:"disablePivotSphere",value:function(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}},{key:"startPivot",value:function(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;var e=this._scene.camera,t=$.lookAtMat4v(e.eye,e.look,e.worldUp);$.transformPoint3(t,this.getPivotPos(),this._cameraOffset);var n=this.getPivotPos();this._cameraOffset[2]+=$.distVec3(e.eye,n),t=$.inverseMat4(t);var r=$.transformVec3(t,this._cameraOffset),i=$.vec3();if($.subVec3(e.eye,n,i),$.addVec3(i,r),e.zUp){var a=i[1];i[1]=i[2],i[2]=a}this._radius=$.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}},{key:"_cameraLookingDownwards",value:function(){var e=this._scene.camera,t=$.normalizeVec3($.subVec3(e.look,e.eye,cp)),n=$.cross3Vec3(t,e.worldUp,fp);return $.sqLenVec3(n)<=1e-4}},{key:"getPivoting",value:function(){return this._pivoting}},{key:"setPivotPos",value:function(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}},{key:"setCanvasPivotPos",value:function(e){var t=this._scene.camera,n=Math.abs($.distVec3(this._scene.center,t.eye)),r=t.project.transposedMatrix,i=r.subarray(8,12),a=r.subarray(12),s=[0,0,-1,1],o=$.dotVec4(s,i)/$.dotVec4(s,a),l=Ap;t.project.unproject(e,o,dp,vp,l);var u=$.normalizeVec3($.subVec3(l,t.eye,cp)),c=$.addVec3(t.eye,$.mulVec3Scalar(u,n,fp),pp);this.setPivotPos(c)}},{key:"getPivotPos",value:function(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}},{key:"continuePivot",value:function(e,t){if(this._pivoting&&(0!==e||0!==t)){var n=this._scene.camera,r=-e,i=-t;1===n.worldUp[2]&&(r=-r),this._azimuth+=.01*-r,this._polar+=.01*i,this._polar=$.clamp(this._polar,.001,Math.PI-.001);var a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===n.worldUp[2]){var s=a[1];a[1]=a[2],a[2]=s}var o=$.lenVec3($.subVec3(n.look,n.eye,$.vec3())),l=this.getPivotPos();$.addVec3(a,l);var u=$.lookAtMat4v(a,l,n.worldUp);u=$.inverseMat4(u);var c=$.transformVec3(u,this._cameraOffset);u[12]-=c[0],u[13]-=c[1],u[14]-=c[2];var f=[u[8],u[9],u[10]];n.eye=[u[12],u[13],u[14]],$.subVec3(n.eye,$.mulVec3Scalar(f,o),n.look),n.up=[u[4],u[5],u[6]],this.showPivot()}}},{key:"showPivot",value:function(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}},{key:"hidePivot",value:function(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}},{key:"endPivot",value:function(){this._pivoting=!1}},{key:"destroy",value:function(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}]),e}(),Ip=function(){function e(t,n){b(this,e),this._scene=t.scene,this._cameraControl=t,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=n,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=$.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}return P(e,[{key:"update",value:function(){if(this._configs.pointerEnabled&&(this.schedulePickEntity||this.schedulePickSurface)){var e="".concat(~~this.pickCursorPos[0],"-").concat(~~this.pickCursorPos[1],"-").concat(this.scheduleSnapOrPick,"-").concat(this.schedulePickSurface,"-").concat(this.schedulePickEntity);if(this._lastHash!==e){this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;var t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){var n=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});n&&(n.snappedToEdge||n.snappedToVertex)?(this.snapPickResult=n,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){var r=this.pickResult.canvasPos;if(r[0]===this.pickCursorPos[0]&&r[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){var i=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(i[0]===this.pickCursorPos[0]&&i[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}}}},{key:"fireEvents",value:function(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){var e=new It;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){var t=this.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=t)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}]),e}(),yp=$.vec2(),mp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s,o,l,u=n.pickController,c=0,f=0,p=0,A=0,d=!1,v=$.vec3(),h=!0,I=this._scene.canvas.canvas,y=[];function m(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];I.style.cursor="move",w(),e&&g()}function w(){c=i.pointerCanvasPos[0],f=i.pointerCanvasPos[1],p=i.pointerCanvasPos[0],A=i.pointerCanvasPos[1]}function g(){u.pickCursorPos=i.pointerCanvasPos,u.schedulePickSurface=!0,u.update(),u.picked&&u.pickedSurface&&u.pickResult&&u.pickResult.worldPos?(d=!0,v.set(u.pickResult.worldPos)):d=!1}document.addEventListener("keydown",this._documentKeyDownHandler=function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled){var n=e.keyCode;y[n]=!0}}),document.addEventListener("keyup",this._documentKeyUpHandler=function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled){var n=e.keyCode;y[n]=!1}}),I.addEventListener("mousedown",this._mouseDownHandler=function(e){if(r.active&&r.pointerEnabled)switch(e.which){case 1:y[t.input.KEY_SHIFT]||r.planView?(s=!0,m()):(s=!0,m(!1));break;case 2:o=!0,m();break;case 3:l=!0,r.panRightClick&&m()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=function(){if(r.active&&r.pointerEnabled&&(s||o||l)){var e=t.canvas.boundary,n=e[2],u=e[3],p=i.pointerCanvasPos[0],A=i.pointerCanvasPos[1];if(y[t.input.KEY_SHIFT]||r.planView||!r.panRightClick&&o||r.panRightClick&&l){var h=p-c,I=A-f,m=t.camera;if("perspective"===m.projection){var w=Math.abs(d?$.lenVec3($.subVec3(v,t.camera.eye,[])):t.camera.eyeLookDist)*Math.tan(m.perspective.fov/2*Math.PI/180);a.panDeltaX+=1.5*h*w/u,a.panDeltaY+=1.5*I*w/u}else a.panDeltaX+=.5*m.ortho.scale*(h/u),a.panDeltaY+=.5*m.ortho.scale*(I/u)}else!s||o||l||r.planView||(r.firstPerson?(a.rotateDeltaY-=(p-c)/n*r.dragRotationRate/2,a.rotateDeltaX+=(A-f)/u*(r.dragRotationRate/4)):(a.rotateDeltaY-=(p-c)/n*(1.5*r.dragRotationRate),a.rotateDeltaX+=(A-f)/u*(1.5*r.dragRotationRate)));c=p,f=A}}),I.addEventListener("mousemove",this._canvasMouseMoveHandler=function(e){r.active&&r.pointerEnabled&&i.mouseover&&(h=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=function(e){if(r.active&&r.pointerEnabled)switch(e.which){case 1:case 2:case 3:s=!1,o=!1,l=!1}}),I.addEventListener("mouseup",this._mouseUpHandler=function(e){if(r.active&&r.pointerEnabled){if(3===e.which){!function(e,t){if(e){for(var n=e.target,r=0,i=0,a=0,s=0;n.offsetParent;)r+=n.offsetLeft,i+=n.offsetTop,a+=n.scrollLeft,s+=n.scrollTop,n=n.offsetParent;t[0]=e.pageX+a-r,t[1]=e.pageY+s-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,yp);var t=yp[0],i=yp[1];Math.abs(t-p)<3&&Math.abs(i-A)<3&&n.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:yp,event:e},!0)}I.style.removeProperty("cursor")}}),I.addEventListener("mouseenter",this._mouseEnterHandler=function(){r.active&&r.pointerEnabled});var E=1/60,T=null;I.addEventListener("wheel",this._mouseWheelHandler=function(e){if(r.active&&r.pointerEnabled){var t=performance.now()/1e3,n=null!==T?t-T:0;T=t,n>.05&&(n=.05),n0?n.cameraFlight.flyTo(Dp,(function(){n.pivotController.getPivoting()&&r.followPointer&&n.pivotController.showPivot()})):(n.cameraFlight.jumpTo(Dp),n.pivotController.getPivoting()&&r.followPointer&&n.pivotController.showPivot())}}}))}return P(e,[{key:"reset",value:function(){}},{key:"destroy",value:function(){this._scene.input.off(this._onSceneKeyDown)}}]),e}(),Rp=function(){function e(t,n,r,i,a){var s=this;b(this,e),this._scene=t;var o=n.pickController,l=n.pivotController,u=n.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;var c=!1,f=!1,p=this._scene.canvas.canvas,A=function(e){var r;e&&e.worldPos&&(r=e.worldPos);var i=e&&e.entity?e.entity.aabb:t.aabb;if(r){var a=t.camera;$.subVec3(a.eye,a.look,[]),n.cameraFlight.flyTo({aabb:i})}else n.cameraFlight.flyTo({aabb:i})},d=t.tickify(this._canvasMouseMoveHandler=function(e){if(r.active&&r.pointerEnabled&&!c&&!f){var n=u.hasSubs("hover"),a=u.hasSubs("hoverEnter"),l=u.hasSubs("hoverOut"),p=u.hasSubs("hoverOff"),A=u.hasSubs("hoverSurface"),d=u.hasSubs("hoverSnapOrSurface");if(n||a||l||p||A||d)if(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=A,o.scheduleSnapOrPick=d,o.update(),o.pickResult){if(o.pickResult.entity){var v=o.pickResult.entity.id;s._lastPickedEntityId!==v&&(void 0!==s._lastPickedEntityId&&u.fire("hoverOut",{entity:t.objects[s._lastPickedEntityId]},!0),u.fire("hoverEnter",o.pickResult,!0),s._lastPickedEntityId=v)}u.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&u.fire("hoverSurface",o.pickResult,!0)}else void 0!==s._lastPickedEntityId&&(u.fire("hoverOut",{entity:t.objects[s._lastPickedEntityId]},!0),s._lastPickedEntityId=void 0),u.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)}});p.addEventListener("mousemove",d),p.addEventListener("mousedown",this._canvasMouseDownHandler=function(e){if(1===e.which&&(c=!0),3===e.which&&(f=!0),1===e.which&&r.active&&r.pointerEnabled&&(i.mouseDownClientX=e.clientX,i.mouseDownClientY=e.clientY,i.mouseDownCursorX=i.pointerCanvasPos[0],i.mouseDownCursorY=i.pointerCanvasPos[1],!r.firstPerson&&r.followPointer&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===e.which))){var n=o.pickResult;n&&n.worldPos?(l.setPivotPos(n.worldPos),l.startPivot()):(r.smartPivot?l.setCanvasPivotPos(i.pointerCanvasPos):l.setPivotPos(t.camera.look),l.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=function(e){1===e.which&&(c=!1),3===e.which&&(f=!1),l.getPivoting()&&l.endPivot()}),p.addEventListener("mouseup",this._canvasMouseUpHandler=function(e){if(r.active&&r.pointerEnabled&&(1===e.which&&(l.hidePivot(),!(Math.abs(e.clientX-i.mouseDownClientX)>3||Math.abs(e.clientY-i.mouseDownClientY)>3)))){var a=u.hasSubs("picked"),c=u.hasSubs("pickedNothing"),f=u.hasSubs("pickedSurface"),p=u.hasSubs("doublePicked"),d=u.hasSubs("doublePickedSurface"),v=u.hasSubs("doublePickedNothing");if(!(r.doublePickFlyTo||p||d||v))return(a||c||f)&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=f,o.update(),o.pickResult?(u.fire("picked",o.pickResult,!0),o.pickedSurface&&u.fire("pickedSurface",o.pickResult,!0)):u.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0)),void(s._clicks=0);if(s._clicks++,1===s._clicks){o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=r.doublePickFlyTo,o.schedulePickSurface=f,o.update();var h=o.pickResult,I=o.pickedSurface;s._timeout=setTimeout((function(){h?(u.fire("picked",h,!0),I&&(u.fire("pickedSurface",h,!0),!r.firstPerson&&r.followPointer&&(n.pivotController.setPivotPos(h.worldPos),n.pivotController.startPivot()&&n.pivotController.showPivot()))):u.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0),s._clicks=0}),r.doubleClickTimeFrame)}else{if(null!==s._timeout&&(window.clearTimeout(s._timeout),s._timeout=null),o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=r.doublePickFlyTo||p||d,o.schedulePickSurface=o.schedulePickEntity&&d,o.update(),o.pickResult){if(u.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&u.fire("doublePickedSurface",o.pickResult,!0),r.doublePickFlyTo&&(A(o.pickResult),!r.firstPerson&&r.followPointer)){var y=o.pickResult.entity.aabb,m=$.getAABB3Center(y);n.pivotController.setPivotPos(m),n.pivotController.startPivot()&&n.pivotController.showPivot()}}else if(u.fire("doublePickedNothing",{canvasPos:i.pointerCanvasPos},!0),r.doublePickFlyTo&&(A(),!r.firstPerson&&r.followPointer)){var w=t.aabb,g=$.getAABB3Center(w);n.pivotController.setPivotPos(g),n.pivotController.startPivot()&&n.pivotController.showPivot()}s._clicks=0}}},!1)}return P(e,[{key:"reset",value:function(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}},{key:"destroy",value:function(){var e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}]),e}(),Cp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s=t.input,o=[],l=t.canvas.canvas,u=!0;this._onSceneMouseMove=s.on("mousemove",(function(){u=!0})),this._onSceneKeyDown=s.on("keydown",(function(e){r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&i.mouseover&&(o[e]=!0,e===s.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=s.on("keyup",(function(e){r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&(o[e]=!1,e===s.KEY_SHIFT&&(l.style.cursor=null),n.pivotController.getPivoting()&&n.pivotController.endPivot())})),this._onTick=t.on("tick",(function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&i.mouseover){var l=n.cameraControl,c=e.deltaTime/1e3;if(!r.planView){var f=l._isKeyDownForAction(l.ROTATE_Y_POS,o),p=l._isKeyDownForAction(l.ROTATE_Y_NEG,o),A=l._isKeyDownForAction(l.ROTATE_X_POS,o),d=l._isKeyDownForAction(l.ROTATE_X_NEG,o),v=c*r.keyboardRotationRate;(f||p||A||d)&&(!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),f?a.rotateDeltaY+=v:p&&(a.rotateDeltaY-=v),A?a.rotateDeltaX+=v:d&&(a.rotateDeltaX-=v),!r.firstPerson&&r.followPointer&&n.pivotController.startPivot())}if(!o[s.KEY_CTRL]&&!o[s.KEY_ALT]){var h=l._isKeyDownForAction(l.DOLLY_BACKWARDS,o),I=l._isKeyDownForAction(l.DOLLY_FORWARDS,o);if(h||I){var y=c*r.keyboardDollyRate;!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),I?a.dollyDelta-=y:h&&(a.dollyDelta+=y),u&&(i.followPointerDirty=!0,u=!1)}}var m=l._isKeyDownForAction(l.PAN_FORWARDS,o),w=l._isKeyDownForAction(l.PAN_BACKWARDS,o),g=l._isKeyDownForAction(l.PAN_LEFT,o),E=l._isKeyDownForAction(l.PAN_RIGHT,o),T=l._isKeyDownForAction(l.PAN_UP,o),b=l._isKeyDownForAction(l.PAN_DOWN,o),D=(o[s.KEY_ALT]?.3:1)*c*r.keyboardPanRate;(m||w||g||E||T||b)&&(!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),b?a.panDeltaY+=D:T&&(a.panDeltaY+=-D),E?a.panDeltaX+=-D:g&&(a.panDeltaX+=D),w?a.panDeltaZ+=D:m&&(a.panDeltaZ+=-D))}}))}return P(e,[{key:"reset",value:function(){}},{key:"destroy",value:function(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}]),e}(),_p=$.vec3(),Bp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s=t.camera,o=n.pickController,l=n.pivotController,u=n.panController,c=1,f=1,p=null;this._onTick=t.on("tick",(function(){if(r.active&&r.pointerEnabled){var e="default";if(Math.abs(a.dollyDelta)<.001&&(a.dollyDelta=0),Math.abs(a.rotateDeltaX)<.001&&(a.rotateDeltaX=0),Math.abs(a.rotateDeltaY)<.001&&(a.rotateDeltaY=0),0===a.rotateDeltaX&&0===a.rotateDeltaY||(a.dollyDelta=0),r.followPointer&&--c<=0&&(c=1,0!==a.dollyDelta)){if(0===a.rotateDeltaY&&0===a.rotateDeltaX&&r.followPointer&&i.followPointerDirty&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.pickResult&&o.pickResult.worldPos?p=o.pickResult.worldPos:(f=1,p=null),i.followPointerDirty=!1),p){var n=Math.abs($.lenVec3($.subVec3(p,t.camera.eye,_p)));f=n/r.dollyProximityThreshold}fr.longTapRadius||Math.abs(I)>r.longTapRadius)&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),r.planView){var y=t.camera;if("perspective"===y.projection){var m=Math.abs(t.camera.eyeLookDist)*Math.tan(y.perspective.fov/2*Math.PI/180);a.panDeltaX+=h*m/l*r.touchPanRate,a.panDeltaY+=I*m/l*r.touchPanRate}else a.panDeltaX+=.5*y.ortho.scale*(h/l)*r.touchPanRate,a.panDeltaY+=.5*y.ortho.scale*(I/l)*r.touchPanRate}else a.rotateDeltaY-=h/o*(1*r.dragRotationRate),a.rotateDeltaX+=I/l*(1.5*r.dragRotationRate)}else if(2===d){var w=A[0],g=A[1];Np(w,u),Np(g,c);var E=$.geometricMeanVec2(p[0],p[1]),T=$.geometricMeanVec2(u,c),b=$.vec2();$.subVec2(E,T,b);var D=b[0],P=b[1],R=t.camera,C=$.distVec2([w.pageX,w.pageY],[g.pageX,g.pageY]),_=($.distVec2(p[0],p[1])-C)*r.touchDollyRate;if(a.dollyDelta=_,Math.abs(_)<1)if("perspective"===R.projection){var B=s.pickResult?s.pickResult.worldPos:t.center,O=Math.abs($.lenVec3($.subVec3(B,t.camera.eye,[])))*Math.tan(R.perspective.fov/2*Math.PI/180);a.panDeltaX-=D*O/l*r.touchPanRate,a.panDeltaY-=P*O/l*r.touchPanRate}else a.panDeltaX-=.5*R.ortho.scale*(D/l)*r.touchPanRate,a.panDeltaY-=.5*R.ortho.scale*(P/l)*r.touchPanRate;i.pointerCanvasPos=T}for(var S=0;S-1&&t-f<150&&(p>-1&&f-p<325?(Mp(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=s,o.update(),o.pickResult?(o.pickResult.touchInput=!0,l.fire("doublePicked",o.pickResult),o.pickedSurface&&l.fire("doublePickedSurface",o.pickResult),r.doublePickFlyTo&&d(o.pickResult)):(l.fire("doublePickedNothing"),r.doublePickFlyTo&&d()),p=-1):$.distVec2(u[0],c)<4&&(Mp(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=s,o.update(),o.pickResult?(o.pickResult.touchInput=!0,l.fire("picked",o.pickResult),o.pickedSurface&&l.fire("pickedSurface",o.pickResult)):l.fire("pickedNothing"),p=t),f=-1),u.length=n.length;for(var A=0,v=n.length;A1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i)).PAN_LEFT=0,r.PAN_RIGHT=1,r.PAN_UP=2,r.PAN_DOWN=3,r.PAN_FORWARDS=4,r.PAN_BACKWARDS=5,r.ROTATE_X_POS=6,r.ROTATE_X_NEG=7,r.ROTATE_Y_POS=8,r.ROTATE_Y_NEG=9,r.DOLLY_FORWARDS=10,r.DOLLY_BACKWARDS=11,r.AXIS_VIEW_RIGHT=12,r.AXIS_VIEW_BACK=13,r.AXIS_VIEW_LEFT=14,r.AXIS_VIEW_FRONT=15,r.AXIS_VIEW_TOP=16,r.AXIS_VIEW_BOTTOM=17,r._keyMap={},r.scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},r._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},r._states={pointerCanvasPos:$.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:$.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},r._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};var a=r.scene;return r._controllers={cameraControl:g(r),pickController:new Ip(g(r),r._configs),pivotController:new hp(a,r._configs),panController:new up(a),cameraFlight:new Of(g(r),{duration:.5})},r._handlers=[new Op(r.scene,r._controllers,r._configs,r._states,r._updates),new Lp(r.scene,r._controllers,r._configs,r._states,r._updates),new mp(r.scene,r._controllers,r._configs,r._states,r._updates),new Pp(r.scene,r._controllers,r._configs,r._states,r._updates),new Rp(r.scene,r._controllers,r._configs,r._states,r._updates),new xp(r.scene,r._controllers,r._configs,r._states,r._updates),new Cp(r.scene,r._controllers,r._configs,r._states,r._updates)],r._cameraUpdater=new Bp(r.scene,r._controllers,r._configs,r._states,r._updates),r.navMode=i.navMode,i.planView&&(r.planView=i.planView),r.constrainVertical=i.constrainVertical,i.keyboardLayout?r.keyboardLayout=i.keyboardLayout:r.keyMap=i.keyMap,r.doublePickFlyTo=i.doublePickFlyTo,r.panRightClick=i.panRightClick,r.active=i.active,r.followPointer=i.followPointer,r.rotationInertia=i.rotationInertia,r.keyboardPanRate=i.keyboardPanRate,r.touchPanRate=i.touchPanRate,r.keyboardRotationRate=i.keyboardRotationRate,r.dragRotationRate=i.dragRotationRate,r.touchDollyRate=i.touchDollyRate,r.dollyInertia=i.dollyInertia,r.dollyProximityThreshold=i.dollyProximityThreshold,r.dollyMinSpeed=i.dollyMinSpeed,r.panInertia=i.panInertia,r.pointerEnabled=!0,r.keyboardDollyRate=i.keyboardDollyRate,r.mouseWheelDollyRate=i.mouseWheelDollyRate,r}return P(n,[{key:"keyMap",get:function(){return this._keyMap},set:function(e){if(e=e||"qwerty",le.isString(e)){var t=this.scene.input,n={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":n[this.PAN_LEFT]=[t.KEY_A],n[this.PAN_RIGHT]=[t.KEY_D],n[this.PAN_UP]=[t.KEY_Z],n[this.PAN_DOWN]=[t.KEY_X],n[this.PAN_BACKWARDS]=[],n[this.PAN_FORWARDS]=[],n[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],n[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],n[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],n[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],n[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],n[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],n[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],n[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],n[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],n[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],n[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],n[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":n[this.PAN_LEFT]=[t.KEY_Q],n[this.PAN_RIGHT]=[t.KEY_D],n[this.PAN_UP]=[t.KEY_W],n[this.PAN_DOWN]=[t.KEY_X],n[this.PAN_BACKWARDS]=[],n[this.PAN_FORWARDS]=[],n[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],n[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],n[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],n[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],n[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],n[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],n[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],n[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],n[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],n[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],n[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],n[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=n}else{var r=e;this._keyMap=r}}},{key:"_isKeyDownForAction",value:function(e,t){var n=this._keyMap[e];if(!n)return!1;t||(t=this.scene.input.keyDown);for(var r=0,i=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this._controllers.pivotController.enablePivotSphere(e)}},{key:"disablePivotSphere",value:function(){this._controllers.pivotController.disablePivotSphere()}},{key:"smartPivot",get:function(){return this._configs.smartPivot},set:function(e){this._configs.smartPivot=!1!==e}},{key:"doubleClickTimeFrame",get:function(){return this._configs.doubleClickTimeFrame},set:function(e){this._configs.doubleClickTimeFrame=null!=e?e:250}},{key:"destroy",value:function(){this._destroyHandlers(),this._destroyControllers(),this._cameraUpdater.destroy(),v(E(n.prototype),"destroy",this).call(this)}},{key:"_destroyHandlers",value:function(){for(var e=0,t=this._handlers.length;e1&&void 0!==arguments[1]?arguments[1]:{};if(this.finalized)throw"MetaScene already finalized - can't add more data";this._globalizeIDs(e,t);var n=this.metaScene,r=e.properties;if(e.propertySets)for(var i=0,a=e.propertySets.length;i0?Vp(t):null,s=n&&n.length>0?Vp(n):null;return function e(t){if(t){var n=!0;(s&&s[t.type]||a&&!a[t.type])&&(n=!1),n&&r.push(t.id);var i=t.children;if(i)for(var o=0,l=i.length;o>t;n.sort(iu);for(var o=new Int32Array(e.length),l=0,u=n.length;le[i+1]){var s=e[i];e[i]=e[i+1],e[i+1]=s}su=new Int32Array(e),t.sort(ou);for(var o=new Int32Array(e.length),l=0,u=t.length;l0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl,n=e._lightsState;if(this._program=new bt(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);var r=this._program;this._uRenderPass=r.getLocation("renderPass"),this._uLightAmbient=r.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];for(var i=n.lights,a=0,s=i.length;a0,a=[];a.push("#version 300 es"),a.push("// TrianglesDataTextureColorRenderer vertex shader"),a.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),a.push("precision highp float;"),a.push("precision highp int;"),a.push("precision highp usampler2D;"),a.push("precision highp isampler2D;"),a.push("precision highp sampler2D;"),a.push("#else"),a.push("precision mediump float;"),a.push("precision mediump int;"),a.push("precision mediump usampler2D;"),a.push("precision mediump isampler2D;"),a.push("precision mediump sampler2D;"),a.push("#endif"),a.push("uniform int renderPass;"),a.push("uniform mat4 sceneModelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),a.push("uniform highp sampler2D uTexturePerObjectMatrix;"),a.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),a.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),a.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),a.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),a.push("uniform vec3 uCameraEyeRtc;"),a.push("vec3 positions[3];"),t.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("out float isPerspective;")),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("uniform vec4 lightAmbient;");for(var s=0,o=r.lights.length;s> 3) & 4095;"),a.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),a.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),a.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),a.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),a.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),a.push("if (int(flags.x) != renderPass) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("} else {"),a.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),a.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),a.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),a.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),a.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),a.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),a.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),a.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),a.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),a.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),a.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),a.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),a.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),a.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),a.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),a.push("if (color.a == 0u) {"),a.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),a.push(" return;"),a.push("};"),a.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),a.push("vec3 position;"),a.push("position = positions[gl_VertexID % 3];"),a.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),a.push("if (solid != 1u) {"),a.push("if (isPerspectiveMatrix(projMatrix)) {"),a.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),a.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("} else {"),a.push("if (viewNormal.z < 0.0) {"),a.push("position = positions[2 - (gl_VertexID % 3)];"),a.push("viewNormal = -viewNormal;"),a.push("}"),a.push("}"),a.push("}"),a.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),a.push("vec4 viewPosition = viewMatrix * worldPosition; "),a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;");for(var l=0,u=r.lights.length;l0,r=[];if(r.push("#version 300 es"),r.push("// TrianglesDataTextureColorRenderer fragment shader"),r.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),r.push("precision highp float;"),r.push("precision highp int;"),r.push("#else"),r.push("precision mediump float;"),r.push("precision mediump int;"),r.push("#endif"),e.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;")),this._withSAO&&(r.push("uniform sampler2D uOcclusionTexture;"),r.push("uniform vec4 uSAOParams;"),r.push("const float packUpscale = 256. / 255.;"),r.push("const float unpackDownScale = 255. / 256.;"),r.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),r.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),r.push("float unpackRGBToFloat( const in vec4 v ) {"),r.push(" return dot( v, unPackFactors );"),r.push("}")),n){r.push("in vec4 vWorldPosition;"),r.push("flat in uint vFlags2;");for(var i=0,a=t.getNumAllocatedSectionPlanes();i 0u;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(var s=0,o=t.getNumAllocatedSectionPlanes();s 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}return e.logarithmicDepthBufferEnabled&&r.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(r.push(" float viewportWidth = uSAOParams[0];"),r.push(" float viewportHeight = uSAOParams[1];"),r.push(" float blendCutoff = uSAOParams[2];"),r.push(" float blendFactor = uSAOParams[3];"),r.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),r.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),r.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):r.push(" outColor = vColor;"),r.push("}"),r}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),hu=new Float32Array([1,1,1]),Iu=$.vec3(),yu=$.vec3(),mu=$.vec3();$.vec3();var wu=$.mat4(),gu=function(){function e(t,n){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate,A=i.viewMatrix;if(this._program||(this._allocate(),!this.errors)){var d,v;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),u||0!==c[0]||0!==c[1]||0!==c[2]){var h=Iu;if(u){var I=yu;$.transformPoint3(f,u,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=c[0],h[1]+=c[1],h[2]+=c[2],d=Be(A,h,wu),(v=mu)[0]=i.eye[0]-h[0],v[1]=i.eye[1]-h[1],v[2]=i.eye[2]-h[2]}else d=A,v=i.eye;if(s.uniform3fv(this._uCameraEyeRtc,v),s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),n===qa.SILHOUETTE_XRAYED){var y=r.xrayMaterial._state,m=y.fillColor,w=y.fillAlpha;s.uniform4f(this._uColor,m[0],m[1],m[2],w)}else if(n===qa.SILHOUETTE_HIGHLIGHTED){var g=r.highlightMaterial._state,E=g.fillColor,T=g.fillAlpha;s.uniform4f(this._uColor,E[0],E[1],E[2],T)}else if(n===qa.SILHOUETTE_SELECTED){var b=r.selectedMaterial._state,D=b.fillColor,P=b.fillAlpha;s.uniform4f(this._uColor,D[0],D[1],D[2],P)}else s.uniform4fv(this._uColor,hu);if(r.logarithmicDepthBufferEnabled){var R=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,R)}var C=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(C>0)for(var B=r._sectionPlanesState.sectionPlanes,O=t.layerIndex*_,S=a.renderFlags,N=0;N0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uColor=n.getLocation("color"),this._uWorldMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture silhouette vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.y) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = color;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Eu=new Float32Array([0,0,0,1]),Tu=$.vec3(),bu=$.vec3();$.vec3();var Du=$.mat4(),Pu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=Tu;if(v){var y=$.transformPoint3(f,u,bu);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],d=Be(A,I,Du)}else d=A;if(s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),n===qa.EDGES_XRAYED){var m=i.xrayMaterial._state,w=m.edgeColor,g=m.edgeAlpha;s.uniform4f(this._uColor,w[0],w[1],w[2],g)}else if(n===qa.EDGES_HIGHLIGHTED){var E=i.highlightMaterial._state,T=E.edgeColor,b=E.edgeAlpha;s.uniform4f(this._uColor,T[0],T[1],T[2],b)}else if(n===qa.EDGES_SELECTED){var D=i.selectedMaterial._state,P=D.edgeColor,R=D.edgeAlpha;s.uniform4f(this._uColor,P[0],P[1],P[2],R)}else s.uniform4fv(this._uColor,Eu);var C=i._sectionPlanesState.getNumAllocatedSectionPlanes(),_=i._sectionPlanesState.sectionPlanes.length;if(C>0)for(var B=i._sectionPlanesState.sectionPlanes,O=t.layerIndex*_,S=r.renderFlags,N=0;N0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),s.drawArrays(s.LINES,0,o.numEdgeIndices8Bits)),o.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),s.drawArrays(s.LINES,0,o.numEdgeIndices16Bits)),o.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),s.drawArrays(s.LINES,0,o.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uColor=n.getLocation("color"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uWorldMatrix=n.getLocation("worldMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),n.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.z) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vColor = vec4(color.r, color.g, color.b, color.a);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry edges drawing fragment shader"),e.logarithmicDepthBufferEnabled&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vColor;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ru=$.vec3(),Cu=$.vec3();$.vec3();var _u=$.mat4(),Bu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=a.viewMatrix;if(this._program||(this._allocate(),!this.errors)){var d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=Ru;if(v){var y=$.transformPoint3(f,u,Cu);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],d=Be(A,I,_u)}else d=A;s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);var m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=i._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=r.renderFlags,b=0;b0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),s.drawArrays(s.LINES,0,o.numEdgeIndices8Bits)),o.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),s.drawArrays(s.LINES,0,o.numEdgeIndices16Bits)),o.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),s.drawArrays(s.LINES,0,o.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureEdgesColorRenderer"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled,n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uObjectPerObjectOffsets;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.z) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push("vec4 rgb = vec4(color.rgba);"),n.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureEdgesColorRenderer"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { discard; }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outColor = vColor;"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ou=$.vec3(),Su=$.vec3(),Nu=$.vec3(),Lu=$.mat4(),Mu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(t),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate;c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==f[0]||0!==f[1]||0!==f[2],h=0!==p[0]||0!==p[1]||0!==p[2];if(v||h){var I=Ou;if(v){var y=$.transformPoint3(A,f,Su);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=p[0],I[1]+=p[1],I[2]+=p[2],r=Be(o.viewMatrix,I,Lu),(i=Nu)[0]=o.eye[0]-I[0],i[1]=o.eye[1]-I[1],i[2]=o.eye[2]-I[2]}else r=o.viewMatrix,i=o.eye;if(l.uniform2fv(this._uPickClipPos,e.pickClipPos),l.uniform2f(this._uDrawingBufferSize,l.drawingBufferWidth,l.drawingBufferHeight),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),l.uniform3fv(this._uCameraEyeRtc,i),l.uniform1i(this._uRenderPass,n),s.logarithmicDepthBufferEnabled){var m=2/(Math.log(o.project.far+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,m)}var w=s._sectionPlanesState.getNumAllocatedSectionPlanes(),g=s._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=s._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry picking vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform bool pickInvisible;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("smooth out vec4 vWorldPosition;"),n.push("flat out uvec4 vFlags2;")),n.push("out vec4 vPickColor;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2;")),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry picking fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uvec4 vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(r=0;r 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" outPickColor = vPickColor; "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),xu=$.vec3(),Fu=$.vec3(),Hu=$.vec3();$.vec3();var Uu=$.mat4(),Gu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=e.pickViewMatrix||o.viewMatrix;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),f||0!==p[0]||0!==p[1]||0!==p[2]){var h=xu;if(f){var I=Fu;$.transformPoint3(A,f,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=p[0],h[1]+=p[1],h[2]+=p[2],r=Be(v,h,Uu),(i=Hu)[0]=o.eye[0]-h[0],i[1]=o.eye[1]-h[1],i[2]=o.eye[2]-h[2],e.snapPickOrigin[0]=h[0],e.snapPickOrigin[1]=h[1],e.snapPickOrigin[2]=h[2]}else r=v,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(l.uniform3fv(this._uCameraEyeRtc,i),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniform2fv(this._uPickClipPos,e.pickClipPos),l.uniform2f(this._uDrawingBufferSize,l.drawingBufferWidth,l.drawingBufferHeight),l.uniform1f(this._uPickZNear,e.pickZNear),l.uniform1f(this._uPickZFar,e.pickZFar),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),s.logarithmicDepthBufferEnabled){var y=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,y)}var m=s._sectionPlanesState.getNumAllocatedSectionPlanes(),w=s._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=s._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=a.renderFlags,b=0;b0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform bool pickInvisible;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vViewPosition;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = remapClipPos(clipPos);"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("uniform float pickZNear;"),n.push("uniform float pickZFar;"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0;r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(r=0;r 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),n.push(" outPackedDepth = packDepth(zNormalizedDepth); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),ku=$.vec3(),ju=$.vec3(),Vu=$.vec3(),Qu=$.vec3();$.vec3();var Wu=$.mat4(),zu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){if(this._program||(this._allocate(),!this.errors)){e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=t.aabb,h=e.pickViewMatrix||o.viewMatrix,I=ku;I[0]=$.safeInv(v[3]-v[0])*$.MAX_INT,I[1]=$.safeInv(v[4]-v[1])*$.MAX_INT,I[2]=$.safeInv(v[5]-v[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(I[0]),e.snapPickCoordinateScale[1]=$.safeInv(I[1]),e.snapPickCoordinateScale[2]=$.safeInv(I[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var y=0!==f[0]||0!==f[1]||0!==f[2],m=0!==p[0]||0!==p[1]||0!==p[2];if(y||m){var w=ju;if(y){var g=$.transformPoint3(A,f,Vu);w[0]=g[0],w[1]=g[1],w[2]=g[2]}else w[0]=0,w[1]=0,w[2]=0;w[0]+=p[0],w[1]+=p[1],w[2]+=p[2],r=Be(h,w,Wu),(i=Qu)[0]=o.eye[0]-w[0],i[1]=o.eye[1]-w[1],i[2]=o.eye[2]-w[2],e.snapPickOrigin[0]=w[0],e.snapPickOrigin[1]=w[1],e.snapPickOrigin[2]=w[2]}else r=h,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;l.uniform3fv(this._uCameraEyeRtc,i),l.uniform2fv(this.uVectorA,e.snapVectorA),l.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),l.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),l.uniform3fv(this._uCoordinateScaler,I),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);var E=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,E);var T=s._sectionPlanesState.getNumAllocatedSectionPlanes(),b=s._sectionPlanesState.sectionPlanes.length;if(T>0)for(var D=s._sectionPlanesState.sectionPlanes,P=t.layerIndex*b,R=a.renderFlags,C=0;C0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),l.drawArrays(N,0,u.numEdgeIndices8Bits)),u.numEdgeIndices16Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),l.drawArrays(N,0,u.numEdgeIndices16Bits)),u.numEdgeIndices32Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),l.drawArrays(N,0,u.numEdgeIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Batched geometry edges drawing vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),n.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 uSnapVectorA;"),n.push("uniform vec2 uSnapInvVectorAB;"),n.push("vec3 positions[3];"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),n.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("out vec4 vViewPosition;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int edgeIndex = gl_VertexID / 2;"),n.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("{"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),n.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),n.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),n.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),n.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2.r;")),n.push("vViewPosition = viewPosition;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vViewPosition = clipPos;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push("gl_PointSize = 1.0;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture pick depth fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int uLayerNumber;"),n.push("uniform vec3 uCoordinateScaler;"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),n.push(" }")}return n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),Ku=$.vec3(),Yu=$.vec3(),Xu=$.vec3(),qu=$.vec3();$.vec3();var Ju=$.mat4(),Zu=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());var r,i,a=t.model,s=a.scene,o=s.camera,l=s.canvas.gl,u=t._state,c=u.textureState,f=t._state.origin,p=a.position,A=a.rotationMatrix,d=a.rotationMatrixConjugate,v=t.aabb,h=e.pickViewMatrix||o.viewMatrix,I=Ku;I[0]=$.safeInv(v[3]-v[0])*$.MAX_INT,I[1]=$.safeInv(v[4]-v[1])*$.MAX_INT,I[2]=$.safeInv(v[5]-v[2])*$.MAX_INT,e.snapPickCoordinateScale[0]=$.safeInv(I[0]),e.snapPickCoordinateScale[1]=$.safeInv(I[1]),e.snapPickCoordinateScale[2]=$.safeInv(I[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var y=0!==f[0]||0!==f[1]||0!==f[2],m=0!==p[0]||0!==p[1]||0!==p[2];if(y||m){var w=Yu;if(y){var g=Xu;$.transformPoint3(A,f,g),w[0]=g[0],w[1]=g[1],w[2]=g[2]}else w[0]=0,w[1]=0,w[2]=0;w[0]+=p[0],w[1]+=p[1],w[2]+=p[2],r=Be(h,w,Ju),(i=qu)[0]=o.eye[0]-w[0],i[1]=o.eye[1]-w[1],i[2]=o.eye[2]-w[2],e.snapPickOrigin[0]=w[0],e.snapPickOrigin[1]=w[1],e.snapPickOrigin[2]=w[2]}else r=h,i=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;l.uniform3fv(this._uCameraEyeRtc,i),l.uniform2fv(this._uVectorA,e.snapVectorA),l.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),l.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),l.uniform3fv(this._uCoordinateScaler,I),l.uniform1i(this._uRenderPass,n),l.uniform1i(this._uPickInvisible,e.pickInvisible),l.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,d),l.uniformMatrix4fv(this._uViewMatrix,!1,r),l.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);var E=2/(Math.log(e.pickZFar+1)/Math.LN2);l.uniform1f(this._uLogDepthBufFC,E);var T=s._sectionPlanesState.getNumAllocatedSectionPlanes(),b=s._sectionPlanesState.sectionPlanes.length;if(T>0)for(var D=s._sectionPlanesState.sectionPlanes,P=t.layerIndex*b,R=a.renderFlags,C=0;C0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),l.drawArrays(l.TRIANGLES,0,u.numIndices8Bits)),u.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),l.drawArrays(l.TRIANGLES,0,u.numIndices16Bits)),u.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),l.drawArrays(l.TRIANGLES,0,u.numIndices32Bits)),e.drawElements++}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureSnapDepthBufInitRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("uniform vec2 uVectorAB;"),n.push("uniform vec2 uInverseVectorAB;"),n.push("vec3 positions[3];"),n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("vec2 remapClipPos(vec2 clipPos) {"),n.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),n.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),n.push(" return vec2(x, y);"),n.push("}"),n.push("flat out vec4 vPickColor;"),n.push("out vec4 vWorldPosition;"),t&&n.push("flat out uint vFlags2;"),n.push("out highp vec3 relativeToOriginPosition;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("{"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push(" if (isPerspectiveMatrix(projMatrix)) {"),n.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" viewNormal = -viewNormal;"),n.push(" }"),n.push(" } else {"),n.push(" if (viewNormal.z < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" viewNormal = -viewNormal;"),n.push(" }"),n.push(" }"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("relativeToOriginPosition = worldPosition.xyz;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vWorldPosition = worldPosition;"),t&&n.push("vFlags2 = flags2.r;"),n.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),n.push("vec4 clipPos = projMatrix * viewPosition;"),n.push("float tmp = clipPos.w;"),n.push("clipPos.xyzw /= tmp;"),n.push("clipPos.xy = remapClipPos(clipPos.xy);"),n.push("clipPos.xyzw *= tmp;"),n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureSnapDepthBufInitRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"),n.push("uniform int uLayerNumber;"),n.push("uniform vec3 uCoordinateScaler;"),n.push("in vec4 vWorldPosition;"),n.push("flat in vec4 vPickColor;"),t){n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0;a 0.0) { discard; }"),n.push(" }")}return n.push(" float dx = dFdx(vFragDepth);"),n.push(" float dy = dFdy(vFragDepth);"),n.push(" float diff = sqrt(dx*dx+dy*dy);"),n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),n.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),n.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push("outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("outPickColor = uvec4(vPickColor);"),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),$u=$.vec3(),ec=$.vec3(),tc=$.vec3();$.vec3();var nc=$.mat4(),rc=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=r.position,f=r.rotationMatrix,p=r.rotationMatrixConjugate,A=e.pickViewMatrix||a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var d,v;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),u||0!==c[0]||0!==c[1]||0!==c[2]){var h=$u;if(u){var I=ec;$.transformPoint3(f,u,I),h[0]=I[0],h[1]=I[1],h[2]=I[2]}else h[0]=0,h[1]=0,h[2]=0;h[0]+=c[0],h[1]+=c[1],h[2]+=c[2],d=Be(A,h,nc),(v=tc)[0]=a.eye[0]-h[0],v[1]=a.eye[1]-h[1],v[2]=a.eye[2]-h[2]}else d=A,v=a.eye;s.uniform3fv(this._uCameraEyeRtc,v),s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,d),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix);var y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),m=i._sectionPlanesState.sectionPlanes.length;if(y>0)for(var w=i._sectionPlanesState.sectionPlanes,g=t.layerIndex*m,E=r.renderFlags,T=0;T0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uWorldMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("if (solid != 1u) {"),n.push(" if (isPerspectiveMatrix(projMatrix)) {"),n.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" }"),n.push(" } else {"),n.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push(" if (viewNormal.z < 0.0) {"),n.push(" position = positions[2 - (gl_VertexID % 3)];"),n.push(" }"),n.push(" }"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return n.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),ic=$.vec3(),ac=$.vec3(),sc=$.vec3();$.vec3();var oc=$.mat4(),lc=function(){function e(t){b(this,e),this._scene=t,this._allocate(),this._hash=this._getHash()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate;if(this._program||(this._allocate(),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=ic;if(v){var y=$.transformPoint3(f,u,ac);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],A=Be(i.viewMatrix,I,oc),(d=sc)[0]=i.eye[0]-I[0],d[1]=i.eye[1]-I[1],d[2]=i.eye[2]-I[2]}else A=i.viewMatrix,d=i.eye;if(s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s.uniform3fv(this._uCameraEyeRtc,d),s.uniform1i(this._uRenderPass,n),r.logarithmicDepthBufferEnabled){var m=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,m)}var w=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPositionsDecodeMatrix=n.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// Triangles dataTexture draw vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out highp vec2 vHighPrecisionZW;"),t&&(n.push("out vec4 vWorldPosition;"),n.push("flat out uint vFlags2;")),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags2 = flags2.r;")),n.push("gl_Position = clipPos;"),n.push("vHighPrecisionZW = gl_Position.zw;"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles dataTexture draw fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),n.push("in highp vec2 vHighPrecisionZW;"),n.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),uc=$.vec3(),cc=$.vec3(),fc=$.vec3();$.vec3();var pc=$.mat4(),Ac=function(){function e(t){b(this,e),this._scene=t,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){return this._scene._sectionPlanesState.getHash()}},{key:"drawLayer",value:function(e,t,n){var r=t.model,i=r.scene,a=i.camera,s=i.canvas.gl,o=t._state,l=t._state.origin,u=r.position,c=r.rotationMatrix,f=r.rotationMatrixConjugate,p=a.viewMatrix;if(this._program||(this._allocate(t),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));var v=0!==l[0]||0!==l[1]||0!==l[2],h=0!==u[0]||0!==u[1]||0!==u[2];if(v||h){var I=uc;if(v){var y=cc;$.transformPoint3(c,l,y),I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=u[0],I[1]+=u[1],I[2]+=u[2],A=Be(p,I,pc),(d=fc)[0]=a.eye[0]-I[0],d[1]=a.eye[1]-I[1],d[2]=a.eye[2]-I[2]}else A=p,d=a.eye;s.uniform1i(this._uRenderPass,n),s.uniformMatrix4fv(this._uWorldMatrix,!1,f),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,a.projMatrix),s.uniformMatrix4fv(this._uViewNormalMatrix,!1,a.viewNormalMatrix),s.uniformMatrix4fv(this._uWorldNormalMatrix,!1,r.worldNormalMatrix);var m=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(m>0)for(var g=i._sectionPlanesState.sectionPlanes,E=t.layerIndex*w,T=r.renderFlags,b=0;b0,n=[];return n.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("uniform int renderPass;"),n.push("attribute vec3 position;"),e.entityOffsetsEnabled&&n.push("attribute vec3 offset;"),n.push("attribute vec3 normal;"),n.push("attribute vec4 color;"),n.push("attribute vec4 flags;"),n.push("attribute vec4 flags2;"),n.push("uniform mat4 worldMatrix;"),n.push("uniform mat4 worldNormalMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform mat4 viewNormalMatrix;"),n.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("varying float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),t&&(n.push("out vec4 vWorldPosition;"),n.push("out vec4 vFlags2;")),n.push("out vec3 vViewNormal;"),n.push("void main(void) {"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push(" } else {"),n.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix * worldPosition; "),n.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(n.push(" vWorldPosition = worldPosition;"),n.push(" vFlags2 = flags2;")),n.push(" vViewNormal = viewNormal;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(dt.SUPPORTED_EXTENSIONS.EXT_frag_depth?n.push("vFragDepth = 1.0 + clipPos.w;"):(n.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),n.push("clipPos.z *= clipPos.w;")),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("gl_Position = clipPos;"),n.push(" }"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push("#extension GL_EXT_frag_depth : enable"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),t){n.push("in vec4 vWorldPosition;"),n.push("in vec4 vFlags2;");for(var r=0;r 0.0);"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),n.push(" }")}return e.logarithmicDepthBufferEnabled&&dt.SUPPORTED_EXTENSIONS.EXT_frag_depth&&n.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),dc=$.vec3(),vc=$.vec3(),hc=$.vec3();$.vec3(),$.vec4();var Ic=$.mat4(),yc=function(){function e(t,n){b(this,e),this._scene=t,this._withSAO=n,this._hash=this._getHash(),this._allocate()}return P(e,[{key:"getValid",value:function(){return this._hash===this._getHash()}},{key:"_getHash",value:function(){var e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}},{key:"drawLayer",value:function(e,t,n){var r=this._scene,i=r.camera,a=t.model,s=r.canvas.gl,o=t._state,l=o.textureState,u=t._state.origin,c=a.position,f=a.rotationMatrix,p=a.rotationMatrixConjugate;if(this._program||(this._allocate(),!this.errors)){var A,d;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,o)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);var v=0!==u[0]||0!==u[1]||0!==u[2],h=0!==c[0]||0!==c[1]||0!==c[2];if(v||h){var I=dc;if(v){var y=$.transformPoint3(f,u,vc);I[0]=y[0],I[1]=y[1],I[2]=y[2]}else I[0]=0,I[1]=0,I[2]=0;I[0]+=c[0],I[1]+=c[1],I[2]+=c[2],A=Be(i.viewMatrix,I,Ic),(d=hc)[0]=i.eye[0]-I[0],d[1]=i.eye[1]-I[1],d[2]=i.eye[2]-I[2]}else A=i.viewMatrix,d=i.eye;if(s.uniform2fv(this._uPickClipPos,e.pickClipPos),s.uniform2f(this._uDrawingBufferSize,s.drawingBufferWidth,s.drawingBufferHeight),s.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),s.uniformMatrix4fv(this._uViewMatrix,!1,A),s.uniformMatrix4fv(this._uProjMatrix,!1,i.projMatrix),s.uniform3fv(this._uCameraEyeRtc,d),s.uniform1i(this._uRenderPass,n),r.logarithmicDepthBufferEnabled){var m=2/(Math.log(e.pickZFar+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,m)}var w=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(w>0)for(var E=r._sectionPlanesState.sectionPlanes,T=t.layerIndex*g,b=a.renderFlags,D=0;D0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),s.drawArrays(s.TRIANGLES,0,o.numIndices8Bits)),o.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),s.drawArrays(s.TRIANGLES,0,o.numIndices16Bits)),o.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),s.drawArrays(s.TRIANGLES,0,o.numIndices32Bits)),e.drawElements++}}},{key:"_allocate",value:function(){var e=this._scene,t=e.canvas.gl;if(this._program=new bt(t,this._buildShader()),this._program.errors)this.errors=this._program.errors;else{var n=this._program;this._uRenderPass=n.getLocation("renderPass"),this._uPickInvisible=n.getLocation("pickInvisible"),this._uPickClipPos=n.getLocation("pickClipPos"),this._uDrawingBufferSize=n.getLocation("drawingBufferSize"),this._uSceneModelMatrix=n.getLocation("sceneModelMatrix"),this._uViewMatrix=n.getLocation("viewMatrix"),this._uProjMatrix=n.getLocation("projMatrix"),this._uSectionPlanes=[];for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r0,n=[];return n.push("#version 300 es"),n.push("// trianglesDatatextureNormalsRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),e.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("uniform vec2 pickClipPos;"),n.push("uniform vec2 drawingBufferSize;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out vec4 vWorldPosition;"),t&&n.push("flat out uint vFlags2;"),n.push("void main(void) {"),n.push("int polygonIndex = gl_VertexID / 3;"),n.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.w) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),n.push("vWorldPosition = worldPosition;"),t&&n.push("vFlags2 = flags2.r;"),n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n.push("}"),n}},{key:"_buildFragmentShader",value:function(){var e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),n.push("in vec4 vWorldPosition;"),t){n.push("flat in uint vFlags2;");for(var r=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();r 0u;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(var a=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();a 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}return e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),n.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),n.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),n.push(" outNormal = ivec4(worldNormal * float(".concat($.MAX_INT,"), 1.0);")),n.push("}"),n}},{key:"webglContextRestored",value:function(){this._program=null}},{key:"destroy",value:function(){this._program&&this._program.destroy(),this._program=null}}]),e}(),mc=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"_compile",value:function(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._vertexDepthRenderer&&!this._vertexDepthRenderer.getValid()&&(this._vertexDepthRenderer.destroy(),this._vertexDepthRenderer=null),this._snapDepthBufInitRenderer&&!this._snapDepthBufInitRenderer.getValid()&&(this._snapDepthBufInitRenderer.destroy(),this._snapDepthBufInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}},{key:"eagerCreateRenders",value:function(){this._silhouetteRenderer||(this._silhouetteRenderer=new gu(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Mu(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Gu(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new yc(this._scene)),this._vertexDepthRenderer||(this._vertexDepthRenderer=new zu(this._scene)),this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Zu(this._scene))}},{key:"colorRenderer",get:function(){return this._colorRenderer||(this._colorRenderer=new vu(this._scene,!1)),this._colorRenderer}},{key:"colorRendererWithSAO",get:function(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new vu(this._scene,!0)),this._colorRendererWithSAO}},{key:"colorQualityRendererWithSAO",get:function(){return this._colorQualityRendererWithSAO}},{key:"silhouetteRenderer",get:function(){return this._silhouetteRenderer||(this._silhouetteRenderer=new gu(this._scene)),this._silhouetteRenderer}},{key:"depthRenderer",get:function(){return this._depthRenderer||(this._depthRenderer=new lc(this._scene)),this._depthRenderer}},{key:"normalsRenderer",get:function(){return this._normalsRenderer||(this._normalsRenderer=new Ac(this._scene)),this._normalsRenderer}},{key:"edgesRenderer",get:function(){return this._edgesRenderer||(this._edgesRenderer=new Pu(this._scene)),this._edgesRenderer}},{key:"edgesColorRenderer",get:function(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Bu(this._scene)),this._edgesColorRenderer}},{key:"pickMeshRenderer",get:function(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Mu(this._scene)),this._pickMeshRenderer}},{key:"pickNormalsRenderer",get:function(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new yc(this._scene)),this._pickNormalsRenderer}},{key:"pickNormalsFlatRenderer",get:function(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new yc(this._scene)),this._pickNormalsFlatRenderer}},{key:"pickDepthRenderer",get:function(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Gu(this._scene)),this._pickDepthRenderer}},{key:"vertexDepthRenderer",get:function(){return this._vertexDepthRenderer||(this._vertexDepthRenderer=new zu(this._scene)),this._vertexDepthRenderer}},{key:"snapDepthBufInitRenderer",get:function(){return this._snapDepthBufInitRenderer||(this._snapDepthBufInitRenderer=new Zu(this._scene)),this._snapDepthBufInitRenderer}},{key:"occlusionRenderer",get:function(){return this._occlusionRenderer||(this._occlusionRenderer=new rc(this._scene)),this._occlusionRenderer}},{key:"_destroy",value:function(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._vertexDepthRenderer&&this._vertexDepthRenderer.destroy(),this._snapDepthBufInitRenderer&&this._snapDepthBufInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}]),e}(),wc={};var gc=P((function e(){b(this,e),this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]})),Ec=function(){function e(){b(this,e),this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}return P(e,[{key:"finalize",value:function(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}},{key:"bindCommonTextures",value:function(e,t,n,r,i){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,n,2),this.texturePerObjectColorsAndFlags.bindTexture(e,r,3),this.texturePerObjectInstanceMatrices.bindTexture(e,i,4)}},{key:"bindTriangleIndicesTextures",value:function(e,t,n,r){this.indicesPortionIdsPerBitnessTextures[r].bindTexture(e,t,5),this.indicesPerBitnessTextures[r].bindTexture(e,n,6)}},{key:"bindEdgeIndicesTextures",value:function(e,t,n,r){this.edgeIndicesPortionIdsPerBitnessTextures[r].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[r].bindTexture(e,n,6)}}]),e}(),Tc=function(){function e(t,n,r,i){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;b(this,e),this._gl=t,this._texture=n,this._textureWidth=r,this._textureHeight=i,this._textureData=a}return P(e,[{key:"bindTexture",value:function(e,t,n){return e.bindTexture(t,this,n)}},{key:"bind",value:function(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}},{key:"unbind",value:function(e){}}]),e}(),bc={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(bc,null,4));var e=0;Object.keys(bc).forEach((function(t){t.startsWith("size")&&(e+=bc[t])})),console.log("Total size ".concat(e," bytes (").concat((e/1e3/1e3).toFixed(2)," MB)")),console.log("Avg bytes / triangle: ".concat((e/bc.totalPolygons).toFixed(2)));var t={};Object.keys(bc).forEach((function(n){n.startsWith("size")&&(t[n]="".concat((bc[n]/e*100).toFixed(2)," % of total"))})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};var Dc=function(){function e(){b(this,e)}return P(e,[{key:"disableBindedTextureFiltering",value:function(e){e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}},{key:"generateTextureForColorsAndFlags",value:function(e,t,n,r,i,a,s){var o=t.length;this.numPortions=o;var l=4096,u=Math.ceil(o/512);if(0===u)throw"texture height===0";var c=new Uint8Array(16384*u);bc.sizeDataColorsAndFlags+=c.byteLength,bc.numberOfTextures++;for(var f=0;f>24&255,r[f]>>16&255,r[f]>>8&255,255&r[f]],32*f+16),c.set([i[f]>>24&255,i[f]>>16&255,i[f]>>8&255,255&i[f]],32*f+20),c.set([a[f]>>24&255,a[f]>>16&255,a[f]>>8&255,255&a[f]],32*f+24),c.set([s[f]?1:0,0,0,0],32*f+28);var p=e.createTexture();return e.bindTexture(e.TEXTURE_2D,p),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,u),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,u,e.RGBA_INTEGER,e.UNSIGNED_BYTE,c,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Tc(e,p,l,u,c)}},{key:"generateTextureForObjectOffsets",value:function(e,t){var n=512,r=Math.ceil(t/n);if(0===r)throw"texture height===0";var i=new Float32Array(1536*r).fill(0);bc.sizeDataTextureOffsets+=i.byteLength,bc.numberOfTextures++;var a=e.createTexture();return e.bindTexture(e.TEXTURE_2D,a),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,n,r),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,r,e.RGB,e.FLOAT,i,0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),new Tc(e,a,n,r,i)}},{key:"generateTextureForInstancingMatrices",value:function(e,t){var n=t.length;if(0===n)throw"num instance matrices===0";var r=2048,i=Math.ceil(n/512),a=new Float32Array(8192*i);bc.numberOfTextures++;for(var s=0;s65536&&bc.cannotCreatePortion.because10BitsObjectId++;var n=this._numPortions+t<=65536,r=void 0!==e.geometryId&&null!==e.geometryId?"".concat(e.geometryId,"#").concat(0):"".concat(e.id,"#").concat(0);if(!this._bucketGeometries[r]){var i=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits),a=0,s=0;e.buckets.forEach((function(e){a+=e.positionsCompressed.length/3,s+=e.indices.length/3})),(this._state.numVertices+a>4096*Rc||i+s>4096*Rc)&&bc.cannotCreatePortion.becauseTextureSize++,n&&(n=this._state.numVertices+a<=4096*Rc&&i+s<=4096*Rc)}return n}},{key:"createPortion",value:function(e,t){var n=this;if(this._finalized)throw"Already finalized";var r=[];t.buckets.forEach((function(e,i){var a=void 0!==t.geometryId&&null!==t.geometryId?"".concat(t.geometryId,"#").concat(i):"".concat(t.id,"#").concat(i),s=n._bucketGeometries[a];s||(s=n._createBucketGeometry(t,e),n._bucketGeometries[a]=s);var o=n._createSubPortion(t,s,e);r.push(o)}));var i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(r),this.model.numPortions++,this._meshes.push(e),i}},{key:"_createBucketGeometry",value:function(e,t){if(t.indices){var n=8*Math.ceil(t.indices.length/3/8)*3;bc.overheadSizeAlignementIndices+=2*(n-t.indices.length);var r=new Uint32Array(n);r.fill(0),r.set(t.indices),t.indices=r}if(t.edgeIndices){var i=8*Math.ceil(t.edgeIndices.length/2/8)*2;bc.overheadSizeAlignementEdgeIndices+=2*(i-t.edgeIndices.length);var a=new Uint32Array(i);a.fill(0),a.set(t.edgeIndices),t.edgeIndices=a}var s=t.positionsCompressed,o=t.indices,l=t.edgeIndices,u=this._buffer;u.positionsCompressed.push(s);var c,f=u.lenPositionsCompressed/3,p=s.length/3;u.lenPositionsCompressed+=s.length;var A,d,v=0;o&&(v=o.length/3,p<=256?(A=u.indices8Bits,c=u.lenIndices8Bits/3,u.lenIndices8Bits+=o.length):p<=65536?(A=u.indices16Bits,c=u.lenIndices16Bits/3,u.lenIndices16Bits+=o.length):(A=u.indices32Bits,c=u.lenIndices32Bits/3,u.lenIndices32Bits+=o.length),A.push(o));var h,I=0;l&&(I=l.length/2,p<=256?(h=u.edgeIndices8Bits,d=u.lenEdgeIndices8Bits/2,u.lenEdgeIndices8Bits+=l.length):p<=65536?(h=u.edgeIndices16Bits,d=u.lenEdgeIndices16Bits/2,u.lenEdgeIndices16Bits+=l.length):(h=u.edgeIndices32Bits,d=u.lenEdgeIndices32Bits/2,u.lenEdgeIndices32Bits+=l.length),h.push(l));return this._state.numVertices+=p,bc.numberOfGeometries++,{vertexBase:f,numVertices:p,numTriangles:v,numEdges:I,indicesBase:c,edgeIndicesBase:d,obb:null}}},{key:"_createSubPortion",value:function(e,t,n,r){var i=e.color;e.metallic,e.roughness;var a,s,o=e.colors,l=e.opacity,u=e.meshMatrix,c=e.pickColor,f=this._buffer,p=this._state;f.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),f.perObjectInstancePositioningMatrices.push(u||Sc),f.perObjectSolid.push(!!e.solid),o?f.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):i&&f.perObjectColors.push([i[0],i[1],i[2],l]),f.perObjectPickColors.push(c),f.perObjectVertexBases.push(t.vertexBase),a=t.numVertices<=256?p.numIndices8Bits:t.numVertices<=65536?p.numIndices16Bits:p.numIndices32Bits,f.perObjectIndexBaseOffsets.push(a/3-t.indicesBase),s=t.numVertices<=256?p.numEdgeIndices8Bits:t.numVertices<=65536?p.numEdgeIndices16Bits:p.numEdgeIndices32Bits,f.perObjectEdgeIndexBaseOffsets.push(s/2-t.edgeIndicesBase);var A=this._subPortions.length;if(t.numTriangles>0){var d,v=3*t.numTriangles;t.numVertices<=256?(d=f.perTriangleNumberPortionId8Bits,p.numIndices8Bits+=v,bc.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(d=f.perTriangleNumberPortionId16Bits,p.numIndices16Bits+=v,bc.totalPolygons16Bits+=t.numTriangles):(d=f.perTriangleNumberPortionId32Bits,p.numIndices32Bits+=v,bc.totalPolygons32Bits+=t.numTriangles),bc.totalPolygons+=t.numTriangles;for(var h=0;h0){var I,y=2*t.numEdges;t.numVertices<=256?(I=f.perEdgeNumberPortionId8Bits,p.numEdgeIndices8Bits+=y,bc.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(I=f.perEdgeNumberPortionId16Bits,p.numEdgeIndices16Bits+=y,bc.totalEdges16Bits+=t.numEdges):(I=f.perEdgeNumberPortionId32Bits,p.numEdgeIndices32Bits+=y,bc.totalEdges32Bits+=t.numEdges),bc.totalEdges+=t.numEdges;for(var m=0;m0&&(n.texturePerEdgeIdPortionIds8Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId8Bits)),i.perEdgeNumberPortionId16Bits.length>0&&(n.texturePerEdgeIdPortionIds16Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId16Bits)),i.perEdgeNumberPortionId32Bits.length>0&&(n.texturePerEdgeIdPortionIds32Bits=this._dataTextureGenerator.generateTextureForPackedPortionIds(r,i.perEdgeNumberPortionId32Bits)),i.lenIndices8Bits>0&&(n.texturePerPolygonIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(r,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(n.texturePerPolygonIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(r,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(n.texturePerPolygonIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(r,i.indices32Bits,i.lenIndices32Bits)),i.lenEdgeIndices8Bits>0&&(n.texturePerPolygonIdEdgeIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitsEdgeIndices(r,i.edgeIndices8Bits,i.lenEdgeIndices8Bits)),i.lenEdgeIndices16Bits>0&&(n.texturePerPolygonIdEdgeIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitsEdgeIndices(r,i.edgeIndices16Bits,i.lenEdgeIndices16Bits)),i.lenEdgeIndices32Bits>0&&(n.texturePerPolygonIdEdgeIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitsEdgeIndices(r,i.edgeIndices32Bits,i.lenEdgeIndices32Bits)),n.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(function(){e._deferredSetFlagsDirty&&e._uploadDeferredFlags(),e._numUpdatesInFrame=0}))}}},{key:"isEmpty",value:function(){return 0===this._numPortions}},{key:"initFlags",value:function(e,t,n){t&Me&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&ke&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Ge&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&je&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&He&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Ve&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Fe&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&xe&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),n&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,n,true),this._setFlags2(e,t,true)}},{key:"flushInitFlags",value:function(){this._setDeferredFlags(),this._setDeferredFlags2()}},{key:"setVisible",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Me?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,n)}},{key:"setHighlighted",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&ke?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,n)}},{key:"setXRayed",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ge?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,n)}},{key:"setSelected",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&je?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,n)}},{key:"setEdges",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Ve?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,n)}},{key:"setClippable",value:function(e,t){if(!this._finalized)throw"Not finalized";t&He?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(e,t)}},{key:"_beginDeferredFlags",value:function(){this._deferredSetFlagsActive=!0}},{key:"_uploadDeferredFlags",value:function(){if(this._deferredSetFlagsActive=!1,this._deferredSetFlagsDirty){this._deferredSetFlagsDirty=!1;var e=this.model.scene.canvas.gl,t=this._dataTextureState;e.bindTexture(e.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t.texturePerObjectColorsAndFlags._textureWidth,t.texturePerObjectColorsAndFlags._textureHeight,e.RGBA_INTEGER,e.UNSIGNED_BYTE,t.texturePerObjectColorsAndFlags._textureData)}}},{key:"setCulled",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&xe?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,n)}},{key:"setCollidable",value:function(e,t){if(!this._finalized)throw"Not finalized"}},{key:"setPickable",value:function(e,t,n){if(!this._finalized)throw"Not finalized";t&Fe?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,n)}},{key:"setColor",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectColorsAndFlags._texture),r.texSubImage2D(r.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,r.RGBA_INTEGER,r.UNSIGNED_BYTE,_c)}},{key:"setTransparent",value:function(e,t,n){n?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,n)}},{key:"_setFlags",value:function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this._portionToSubPortionsMap[e],a=0,s=i.length;a3&&void 0!==arguments[3]&&arguments[3];if(!this._finalized)throw"Not finalized";var i,a,s=!!(t&Me),o=!!(t&Ge),l=!!(t&ke),u=!!(t&je),c=!!(t&Ve),f=!!(t&Fe),p=!!(t&xe);i=!s||p||o?qa.NOT_RENDERED:n?qa.COLOR_TRANSPARENT:qa.COLOR_OPAQUE,a=!s||p?qa.NOT_RENDERED:u?qa.SILHOUETTE_SELECTED:l?qa.SILHOUETTE_HIGHLIGHTED:o?qa.SILHOUETTE_XRAYED:qa.NOT_RENDERED;var A=0;A=!s||p?qa.NOT_RENDERED:u?qa.EDGES_SELECTED:l?qa.EDGES_HIGHLIGHTED:o?qa.EDGES_XRAYED:c?n?qa.EDGES_COLOR_TRANSPARENT:qa.EDGES_COLOR_OPAQUE:qa.NOT_RENDERED;var d=s&&!p&&f?qa.PICK:qa.NOT_RENDERED,v=this._dataTextureState,h=this.model.scene.canvas.gl;_c[0]=i,_c[1]=a,_c[2]=A,_c[3]=d,v.texturePerObjectColorsAndFlags._textureData.set(_c,32*e+8),this._deferredSetFlagsActive||r?this._deferredSetFlagsDirty=!0:(++this._numUpdatesInFrame>=10&&this._beginDeferredFlags(),h.bindTexture(h.TEXTURE_2D,v.texturePerObjectColorsAndFlags._texture),h.texSubImage2D(h.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,h.RGBA_INTEGER,h.UNSIGNED_BYTE,_c))}},{key:"_setDeferredFlags",value:function(){}},{key:"_setFlags2",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this._portionToSubPortionsMap[e],i=0,a=r.length;i2&&void 0!==arguments[2]&&arguments[2];if(!this._finalized)throw"Not finalized";var r=t&He?255:0,i=this._dataTextureState,a=this.model.scene.canvas.gl;_c[0]=r,_c[1]=0,_c[2]=1,_c[3]=2,i.texturePerObjectColorsAndFlags._textureData.set(_c,32*e+12),this._deferredSetFlagsActive||n?this._deferredSetFlagsDirty=!0:(++this._numUpdatesInFrame>=10&&this._beginDeferredFlags(),a.bindTexture(a.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),a.texSubImage2D(a.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,a.RGBA_INTEGER,a.UNSIGNED_BYTE,_c))}},{key:"_setDeferredFlags2",value:function(){}},{key:"setOffset",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectOffsets._texture),r.texSubImage2D(r.TEXTURE_2D,0,0,e,1,1,r.RGB,r.FLOAT,Bc))}},{key:"setMatrix",value:function(e,t){for(var n=this._portionToSubPortionsMap[e],r=0,i=n.length;r=10&&this._beginDeferredFlags(),r.bindTexture(r.TEXTURE_2D,n.texturePerObjectInstanceMatrices._texture),r.texSubImage2D(r.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,r.RGBA,r.FLOAT,Cc))}},{key:"drawColorOpaque",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),t.withSAO&&this.model.saoEnabled?this._dataTextureRenderers.colorRendererWithSAO&&this._dataTextureRenderers.colorRendererWithSAO.drawLayer(t,this,qa.COLOR_OPAQUE):this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"_updateBackfaceCull",value:function(e,t){var n=this.model.backfaces||e.sectioned;if(t.backfaces!==n){var r=t.gl;n?r.disable(r.CULL_FACE):r.enable(r.CULL_FACE),t.backfaces=n}}},{key:"drawColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.colorRenderer&&this._dataTextureRenderers.colorRenderer.drawLayer(t,this,qa.COLOR_TRANSPARENT))}},{key:"drawDepth",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.depthRenderer&&this._dataTextureRenderers.depthRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawNormals",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.normalsRenderer&&this._dataTextureRenderers.normalsRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawSilhouetteXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_XRAYED))}},{key:"drawSilhouetteHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_HIGHLIGHTED))}},{key:"drawSilhouetteSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.silhouetteRenderer&&this._dataTextureRenderers.silhouetteRenderer.drawLayer(t,this,qa.SILHOUETTE_SELECTED))}},{key:"drawEdgesColorOpaque",value:function(e,t){this.model.scene.logarithmicDepthBufferEnabled?this.model.scene._loggedWarning||(console.log("Edge enhancement for SceneModel data texture layers currently disabled with logarithmic depth buffer"),this.model.scene._loggedWarning=!0):this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,qa.EDGES_COLOR_OPAQUE)}},{key:"drawEdgesColorTransparent",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._dataTextureRenderers.edgesColorRenderer&&this._dataTextureRenderers.edgesColorRenderer.drawLayer(t,this,qa.EDGES_COLOR_TRANSPARENT)}},{key:"drawEdgesHighlighted",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_HIGHLIGHTED)}},{key:"drawEdgesSelected",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_SELECTED)}},{key:"drawEdgesXRayed",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._dataTextureRenderers.edgesRenderer&&this._dataTextureRenderers.edgesRenderer.drawLayer(t,this,qa.EDGES_XRAYED)}},{key:"drawOcclusion",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.occlusionRenderer&&this._dataTextureRenderers.occlusionRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"drawShadow",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.shadowRenderer&&this._dataTextureRenderers.shadowRenderer.drawLayer(t,this,qa.COLOR_OPAQUE))}},{key:"setPickMatrices",value:function(e,t){}},{key:"drawPickMesh",value:function(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickMeshRenderer&&this._dataTextureRenderers.pickMeshRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawPickDepths",value:function(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickDepthRenderer&&this._dataTextureRenderers.pickDepthRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawSnapInitDepthBuf",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.snapDepthBufInitRenderer&&this._dataTextureRenderers.snapDepthBufInitRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawSnapDepths",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.vertexDepthRenderer&&this._dataTextureRenderers.vertexDepthRenderer.drawLayer(t,this,qa.PICK))}},{key:"drawPickNormals",value:function(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._dataTextureRenderers.pickNormalsRenderer&&this._dataTextureRenderers.pickNormalsRenderer.drawLayer(t,this,qa.PICK))}},{key:"destroy",value:function(){if(!this._destroyed){var e=this._state;e.metallicRoughnessBuf&&(e.metallicRoughnessBuf.destroy(),e.metallicRoughnessBuf=null),this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}}]),e}(),Lc=$.vec4(4),Mc=$.vec4(),xc=$.vec4(),Fc=$.vec3([1,0,0]),Hc=$.vec3([0,1,0]),Uc=$.vec3([0,0,1]);$.vec3(3),$.vec3(3);var Gc=$.identityMat4(),kc=function(){function e(t){b(this,e),this._model=t.model,this.id=t.id,this._parentTransform=t.parent,this._childTransforms=[],this._meshes=[],this._scale=new Float32Array([1,1,1]),this._quaternion=$.identityQuaternion(new Float32Array(4)),this._rotation=new Float32Array(3),this._position=new Float32Array(3),this._localMatrix=$.identityMat4(new Float32Array(16)),this._worldMatrix=$.identityMat4(new Float32Array(16)),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,t.matrix?this.matrix=t.matrix:(this.scale=t.scale,this.position=t.position,t.quaternion||(this.rotation=t.rotation)),t.parent&&t.parent._addChildTransform(this)}return P(e,[{key:"_addChildTransform",value:function(e){this._childTransforms.push(e),e._parentTransform=this,e._setWorldMatrixDirty(),e._setAABBDirty()}},{key:"_addMesh",value:function(e){this._meshes.push(e),e.transform=this}},{key:"parentTransform",get:function(){return this._parentTransform}},{key:"meshes",get:function(){return this._meshes}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){this._scale.set(e||[1,1,1]),this._setLocalMatrixDirty(),this._model.glRedraw()}},{key:"matrix",get:function(){return this._localMatrixDirty&&(this._localMatrix||(this._localMatrix=$.identityMat4()),$.composeMat4(this._position,this._quaternion,this._scale,this._localMatrix),this._localMatrixDirty=!1),this._localMatrix},set:function(e){this._localMatrix||(this._localMatrix=$.identityMat4()),this._localMatrix.set(e||Gc),$.decomposeMat4(this._localMatrix,this._position,this._quaternion,this._scale),this._localMatrixDirty=!1,this._transformDirty(),this._model.glRedraw()}},{key:"worldMatrix",get:function(){return this._worldMatrixDirty&&this._buildWorldMatrix(),this._worldMatrix}},{key:"rotate",value:function(e,t){return Lc[0]=e[0],Lc[1]=e[1],Lc[2]=e[2],Lc[3]=t*$.DEGTORAD,$.angleAxisToQuaternion(Lc,Mc),$.mulQuaternions(this.quaternion,Mc,xc),this.quaternion=xc,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"rotateOnWorldAxis",value:function(e,t){return Lc[0]=e[0],Lc[1]=e[1],Lc[2]=e[2],Lc[3]=t*$.DEGTORAD,$.angleAxisToQuaternion(Lc,Mc),$.mulQuaternions(Mc,this.quaternion,Mc),this}},{key:"rotateX",value:function(e){return this.rotate(Fc,e)}},{key:"rotateY",value:function(e){return this.rotate(Hc,e)}},{key:"rotateZ",value:function(e){return this.rotate(Uc,e)}},{key:"translate",value:function(e){return this._position[0]+=e[0],this._position[1]+=e[1],this._position[2]+=e[2],this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateX",value:function(e){return this._position[0]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateY",value:function(e){return this._position[1]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"translateZ",value:function(e){return this._position[2]+=e,this._setLocalMatrixDirty(),this._model.glRedraw(),this}},{key:"_setLocalMatrixDirty",value:function(){this._localMatrixDirty=!0,this._transformDirty()}},{key:"_transformDirty",value:function(){this._worldMatrixDirty=!0;for(var e=0,t=this._childTransforms.length;e0)for(var r=n._meshes,i=0,a=r.length;i0)for(var s=this._meshes,o=0,l=s.length;o1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._dtxEnabled=r.scene.dtxEnabled&&!1!==i.dtxEnabled,r._enableVertexWelding=!1,r._enableIndexBucketing=!1,r._vboBatchingLayerScratchMemory=Xa(),r._textureTranscoder=i.textureTranscoder||Zl(r.scene.viewer),r._maxGeometryBatchSize=i.maxGeometryBatchSize,r._aabb=$.collapseAABB3(),r._aabbDirty=!0,r._quantizationRanges={},r._vboInstancingLayers={},r._vboBatchingLayers={},r._dtxLayers={},r._meshList=[],r.layerList=[],r._entityList=[],r._geometries={},r._dtxBuckets={},r._textures={},r._textureSets={},r._transforms={},r._meshes={},r._entities={},r._scheduledMeshes={},r.renderFlags=new Gi,r.numGeometries=0,r.numPortions=0,r.numVisibleLayerPortions=0,r.numTransparentLayerPortions=0,r.numXRayedLayerPortions=0,r.numHighlightedLayerPortions=0,r.numSelectedLayerPortions=0,r.numEdgesLayerPortions=0,r.numPickableLayerPortions=0,r.numClippableLayerPortions=0,r.numCulledLayerPortions=0,r.numEntities=0,r._numTriangles=0,r._numLines=0,r._numPoints=0,r._edgeThreshold=i.edgeThreshold||10,r._origin=$.vec3(i.origin||[0,0,0]),r._position=$.vec3(i.position||[0,0,0]),r._rotation=$.vec3(i.rotation||[0,0,0]),r._quaternion=$.vec4(i.quaternion||[0,0,0,1]),r._conjugateQuaternion=$.vec4(i.quaternion||[0,0,0,1]),i.rotation&&$.eulerToQuaternion(r._rotation,"XYZ",r._quaternion),r._scale=$.vec3(i.scale||[1,1,1]),r._worldRotationMatrix=$.mat4(),r._worldRotationMatrixConjugate=$.mat4(),r._matrix=$.mat4(),r._matrixDirty=!0,r._rebuildMatrices(),r._worldNormalMatrix=$.mat4(),$.inverseMat4(r._matrix,r._worldNormalMatrix),$.transposeMat4(r._worldNormalMatrix),(i.matrix||i.position||i.rotation||i.scale||i.quaternion)&&(r._viewMatrix=$.mat4(),r._viewNormalMatrix=$.mat4(),r._viewMatrixDirty=!0,r._matrixNonIdentity=!0),r._opacity=1,r._colorize=[1,1,1],r._saoEnabled=!1!==i.saoEnabled,r._pbrEnabled=!1!==i.pbrEnabled,r._colorTextureEnabled=!1!==i.colorTextureEnabled,r._isModel=i.isModel,r._isModel&&r.scene._registerModel(g(r)),r._onCameraViewMatrix=r.scene.camera.on("matrix",(function(){r._viewMatrixDirty=!0})),r._meshesWithDirtyMatrices=[],r._numMeshesWithDirtyMatrices=0,r._onTick=r.scene.on("tick",(function(){for(;r._numMeshesWithDirtyMatrices>0;)r._meshesWithDirtyMatrices[--r._numMeshesWithDirtyMatrices]._updateMatrix()})),r._createDefaultTextureSet(),r.visible=i.visible,r.culled=i.culled,r.pickable=i.pickable,r.clippable=i.clippable,r.collidable=i.collidable,r.castsShadow=i.castsShadow,r.receivesShadow=i.receivesShadow,r.xrayed=i.xrayed,r.highlighted=i.highlighted,r.selected=i.selected,r.edges=i.edges,r.colorize=i.colorize,r.opacity=i.opacity,r.backfaces=i.backfaces,r}return P(n,[{key:"_meshMatrixDirty",value:function(e){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=e}},{key:"_createDefaultTextureSet",value:function(){var e=new kl({id:"defaultColorTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new kl({id:"defaultMetalRoughTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),n=new kl({id:"defaultNormalsTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),r=new kl({id:"defaultEmissiveTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),i=new kl({id:"defaultOcclusionTexture",texture:new ba({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=n,this._textures.defaultEmissiveTexture=r,this._textures.defaultOcclusionTexture=i,this._textureSets.defaultTextureSet=new Gl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:n,emissiveTexture:r,occlusionTexture:i})}},{key:"isPerformanceModel",get:function(){return!0}},{key:"transforms",get:function(){return this._transforms}},{key:"textures",get:function(){return this._textures}},{key:"textureSets",get:function(){return this._textureSets}},{key:"meshes",get:function(){return this._meshes}},{key:"objects",get:function(){return this._entities}},{key:"origin",get:function(){return this._origin}},{key:"position",get:function(){return this._position},set:function(e){this._position.set(e||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"rotation",get:function(){return this._rotation},set:function(e){this._rotation.set(e||[0,0,0]),$.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"quaternion",get:function(){return this._quaternion},set:function(e){this._quaternion.set(e||[0,0,0,1]),$.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"scale",get:function(){return this._scale},set:function(e){}},{key:"matrix",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._matrix},set:function(e){this._matrix.set(e||Yc),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),$.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),$.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}},{key:"rotationMatrix",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrix}},{key:"_rebuildMatrices",value:function(){this._matrixDirty&&($.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),$.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),$.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),$.translateMat4v(this._position,this._matrix),this._matrixDirty=!1)}},{key:"rotationMatrixConjugate",get:function(){return this._matrixDirty&&this._rebuildMatrices(),this._worldRotationMatrixConjugate}},{key:"_setWorldMatrixDirty",value:function(){this._matrixDirty=!0,this._aabbDirty=!0}},{key:"_transformDirty",value:function(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}},{key:"_sceneModelDirty",value:function(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(var e=0,t=this._entityList.length;e0},set:function(e){e=!1!==e,this._visible=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._xrayed=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._highlighted=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._selected=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!!e,this._edges=e;for(var t=0,n=this._entityList.length;t0},set:function(e){e=!1!==e,this._pickable=e;for(var t=0,n=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){for(var o=e.colors,l=new Uint8Array(o.length),u=0,c=o.length;u>24&255,i=n>>16&255,a=n>>8&255,s=255&n;switch(e.pickColor=new Uint8Array([s,a,i,r]),e.solid="solid"===e.primitive,t.origin=$.vec3(e.origin),e.type){case 2:t.layer=this._getDTXLayer(e),t.aabb=e.aabb;break;case 1:t.layer=this._getVBOBatchingLayer(e),t.aabb=e.aabb;break;case 0:t.layer=this._getVBOInstancingLayer(e),t.aabb=e.aabb}return e.transform&&(e.meshMatrix=e.transform.worldMatrix),t.portionId=t.layer.createPortion(t,e),this._meshes[e.id]=t,this._meshList.push(t),t}},{key:"_getNumPrimitives",value:function(e){var t=0;switch(e.geometry?e.geometry.primitive:e.primitive){case"triangles":case"solid":case"surface":switch(e.type){case 2:for(var n=0,r=e.buckets.length;n>>0).toString(16)}},{key:"_getVBOInstancingLayer",value:function(e){var t=this,n=e.origin,r=e.textureSetId||"-",i=e.geometryId,a="".concat(Math.round(n[0]),".").concat(Math.round(n[1]),".").concat(Math.round(n[2]),".").concat(r,".").concat(i),s=this._vboInstancingLayers[a];if(s)return s;for(var o=e.textureSet,l=e.geometry;!s;)switch(l.primitive){case"triangles":case"surface":s=new tl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0,solid:!1});break;case"solid":s=new tl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0,solid:!0});break;case"lines":s=new hl({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0});break;case"points":s=new Ul({model:t,textureSet:o,geometry:l,origin:n,layerIndex:0})}return this._vboInstancingLayers[a]=s,this.layerList.push(s),s}},{key:"createEntity",value:function(e){if(void 0===e.id?e.id=$.createUUID():this.scene.components[e.id]&&(this.error("Scene already has a Component with this ID: ".concat(e.id," - will assign random ID")),e.id=$.createUUID()),void 0!==e.meshIds){var t=0;this._visible&&!1!==e.visible&&(t|=Me),this._pickable&&!1!==e.pickable&&(t|=Fe),this._culled&&!1!==e.culled&&(t|=xe),this._clippable&&!1!==e.clippable&&(t|=He),this._collidable&&!1!==e.collidable&&(t|=Ue),this._edges&&!1!==e.edges&&(t|=Ve),this._xrayed&&!1!==e.xrayed&&(t|=Ge),this._highlighted&&!1!==e.highlighted&&(t|=ke),this._selected&&!1!==e.selected&&(t|=je),e.flags=t,this._createEntity(e)}else this.error("Config missing: meshIds")}},{key:"_createEntity",value:function(e){for(var t=[],n=0,r=e.meshIds.length;nt.sortId?1:0}));for(var s=0,o=this.layerList.length;s0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}},{key:"_updateRenderFlagsVisibleLayers",value:function(){var e=this.renderFlags;e.numLayers=this.layerList.length,e.numVisibleLayers=0;for(var t=0,n=this.layerList.length;t0)for(var a=0;a0&&(e.colorTransparent=!0),this.numXRayedLayerPortions>0){var t=this.scene.xrayMaterial._state;t.fill&&(t.fillAlpha<1?e.xrayedSilhouetteTransparent=!0:e.xrayedSilhouetteOpaque=!0),t.edges&&(t.edgeAlpha<1?e.xrayedEdgesTransparent=!0:e.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0)this.scene.edgeMaterial._state.edges&&(e.edgesOpaque=this.numTransparentLayerPortions0&&(e.edgesTransparent=!0));if(this.numSelectedLayerPortions>0){var n=this.scene.selectedMaterial._state;n.fill&&(n.fillAlpha<1?e.selectedSilhouetteTransparent=!0:e.selectedSilhouetteOpaque=!0),n.edges&&(n.edgeAlpha<1?e.selectedEdgesTransparent=!0:e.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){var r=this.scene.highlightMaterial._state;r.fill&&(r.fillAlpha<1?e.highlightedSilhouetteTransparent=!0:e.highlightedSilhouetteOpaque=!0),r.edges&&(r.edgeAlpha<1?e.highlightedEdgesTransparent=!0:e.highlightedEdgesOpaque=!0)}}}},{key:"drawColorOpaque",value:function(e){for(var t=this.renderFlags,n=0,r=t.visibleLayers.length;n2&&void 0!==arguments[2]&&arguments[2],r=e.positionsCompressed||[],i=au(e.indices||[],t),a=lu(e.edgeIndices||[]);function s(e,t){if(e>t){var n=e;e=t,t=n}function r(n,r){return n!==e?e-n:r!==t?t-r:0}for(var i=0,s=(a.length>>1)-1;i<=s;){var o=s+i>>1,l=r(a[2*o],a[2*o+1]);if(l>0)i=o+1;else{if(!(l<0))return o;s=o-1}}return-i-1}var o=new Int32Array(a.length/2);o.fill(0);var l=r.length/3;if(l>8*(1<p.maxNumPositions&&(p=f()),p.bucketNumber>8)return[e];-1===u[h]&&(u[h]=p.numPositions++,p.positionsCompressed.push(r[3*h]),p.positionsCompressed.push(r[3*h+1]),p.positionsCompressed.push(r[3*h+2])),-1===u[I]&&(u[I]=p.numPositions++,p.positionsCompressed.push(r[3*I]),p.positionsCompressed.push(r[3*I+1]),p.positionsCompressed.push(r[3*I+2])),-1===u[y]&&(u[y]=p.numPositions++,p.positionsCompressed.push(r[3*y]),p.positionsCompressed.push(r[3*y+1]),p.positionsCompressed.push(r[3*y+2])),p.indices.push(u[h]),p.indices.push(u[I]),p.indices.push(u[y]);var m=void 0;(m=s(h,I))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]])),(m=s(h,y))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]])),(m=s(I,y))>=0&&0===o[m]&&(o[m]=1,p.edgeIndices.push(u[a[2*m]]),p.edgeIndices.push(u[a[2*m+1]]))}var w=t/8*2,g=t/8,E=2*r.length+(i.length+a.length)*w,T=0;return r.length,c.forEach((function(e){T+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*g,e.positionsCompressed.length})),T>E?[e]:(n&&uu(c,e),c)}({positionsCompressed:r,indices:i,edgeIndices:a},r.length/3>65536?16:8):s=[{positionsCompressed:r,indices:i,edgeIndices:a}];return s}var Zc=function(e){I(n,qc);var t=m(n);function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),t.call(this,e,r)}return P(n)}(),$c=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e,i))._positions=i.positions||[],i.indices)r._indices=i.indices;else{r._indices=[];for(var a=0,s=r._positions.length/3-1;a1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"BCFViewpoints",e,i)).originatingSystem=i.originatingSystem||"xeokit.io",r.authoringTool=i.authoringTool||"xeokit.io",r}return P(n,[{key:"getViewpoint",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.viewer.scene,r=n.camera,i=n.realWorldOffset,a=!0===t.reverseClippingPlanes,s={},o=$.normalizeVec3($.subVec3(r.look,r.eye,$.vec3())),l=r.eye,u=r.up;r.yUp&&(o=lf(o),l=lf(l),u=lf(u));var c=sf($.addVec3(l,i));"ortho"===r.projection?s.orthogonal_camera={camera_view_point:c,camera_direction:sf(o),camera_up_vector:sf(u),view_to_world_scale:r.ortho.scale}:s.perspective_camera={camera_view_point:c,camera_direction:sf(o),camera_up_vector:sf(u),field_of_view:r.perspective.fov};var f=n.sectionPlanes;for(var A in f)if(f.hasOwnProperty(A)){var d=f[A];if(!d.active)continue;var v=d.pos,h=void 0;h=a?$.negateVec3(d.dir,$.vec3()):d.dir,r.yUp&&(v=lf(v),h=lf(h)),$.addVec3(v,i),v=sf(v),h=sf(h),s.clipping_planes||(s.clipping_planes=[]),s.clipping_planes.push({location:v,direction:h})}var I=n.lineSets;for(var y in I)if(I.hasOwnProperty(y)){var m=I[y];s.lines||(s.lines=[]);for(var w=m.positions,g=m.indices,E=0,T=g.length/2;E1&&void 0!==arguments[1]?arguments[1]:{};if(e){var r=this.viewer,i=r.scene,a=i.camera,s=!1!==n.rayCast,o=!1!==n.immediate,l=!1!==n.reset,u=i.realWorldOffset,c=!0===n.reverseClippingPlanes;if(i.clearSectionPlanes(),e.clipping_planes&&e.clipping_planes.length>0&&e.clipping_planes.forEach((function(e){var t=of(e.location,ef),n=of(e.direction,ef);c&&$.negateVec3(n),$.subVec3(t,u),a.yUp&&(t=uf(t),n=uf(n)),new ia(i,{pos:t,dir:n})})),i.clearLines(),e.lines&&e.lines.length>0){var f=[],p=[],A=0;e.lines.forEach((function(e){e.start_point&&e.end_point&&(f.push(e.start_point.x),f.push(e.start_point.y),f.push(e.start_point.z),f.push(e.end_point.x),f.push(e.end_point.y),f.push(e.end_point.z),p.push(A++),p.push(A++))})),new $c(i,{positions:f,indices:p,clippable:!1,collidable:!0})}if(i.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){var t=e.bitmap_type||"jpg",n=e.bitmap_data,r=of(e.location,tf),s=of(e.normal,nf),o=of(e.up,rf),l=e.height||1;t&&n&&r&&s&&o&&(a.yUp&&(r=uf(r),s=uf(s),o=uf(o)),new ja(i,{src:n,type:t,pos:r,normal:s,up:o,clippable:!1,collidable:!0,height:l}))})),l&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsHighlighted(i.highlightedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(i.setObjectsVisible(i.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.visible=!1}))}))):(i.setObjectsVisible(i.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.visible=!0}))})));var d=e.components.visibility.view_setup_hints;d&&(!1===d.spaces_visible&&i.setObjectsVisible(r.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==d.spaces_translucent&&i.setObjectsXRayed(r.metaScene.getObjectIDsByType("IfcSpace"),!0),d.space_boundaries_visible,!1===d.openings_visible&&i.setObjectsVisible(r.metaScene.getObjectIDsByType("IfcOpening"),!0),d.space_boundaries_translucent,void 0!==d.openings_translucent&&i.setObjectsXRayed(r.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(i.setObjectsSelected(i.selectedObjectIds,!1),e.components.selection.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.selected=!0}))}))),e.components.translucency&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),e.components.translucency.forEach((function(e){return t._withBCFComponent(n,e,(function(e){return e.xrayed=!0}))}))),e.components.coloring&&e.components.coloring.forEach((function(e){var r=e.color,i=0,a=!1;8===r.length&&((i=parseInt(r.substring(0,2),16)/256)<=1&&i>=.95&&(i=1),r=r.substring(2),a=!0);var s=[parseInt(r.substring(0,2),16)/256,parseInt(r.substring(2,4),16)/256,parseInt(r.substring(4,6),16)/256];e.components.map((function(e){return t._withBCFComponent(n,e,(function(e){e.colorize=s,a&&(e.opacity=i)}))}))}))}if(e.perspective_camera||e.orthogonal_camera){var v,h,I,y;if(e.perspective_camera?(v=of(e.perspective_camera.camera_view_point,ef),h=of(e.perspective_camera.camera_direction,ef),I=of(e.perspective_camera.camera_up_vector,ef),a.perspective.fov=e.perspective_camera.field_of_view,y="perspective"):(v=of(e.orthogonal_camera.camera_view_point,ef),h=of(e.orthogonal_camera.camera_direction,ef),I=of(e.orthogonal_camera.camera_up_vector,ef),a.ortho.scale=e.orthogonal_camera.view_to_world_scale,y="ortho"),$.subVec3(v,u),a.yUp&&(v=uf(v),h=uf(h),I=uf(I)),s){var m=i.pick({pickSurface:!0,origin:v,direction:h});h=m?m.worldPos:$.addVec3(v,h,ef)}else h=$.addVec3(v,h,ef);o?(a.eye=v,a.look=h,a.up=I,a.projection=y):r.cameraFlight.flyTo({eye:v,look:h,up:I,duration:n.duration,projection:y})}}}},{key:"_withBCFComponent",value:function(e,t,n){var r=this.viewer,i=r.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){var a=t.authoring_tool_id,s=i.objects[a];if(s)return void n(s);if(e.updateCompositeObjects)if(r.metaScene.metaObjects[a])return void i.withObjects(r.metaScene.getObjectIDsInSubtree(a),n)}if(t.ifc_guid){var o=t.ifc_guid,l=i.objects[o];if(l)return void n(l);if(e.updateCompositeObjects)if(r.metaScene.metaObjects[o])return void i.withObjects(r.metaScene.getObjectIDsInSubtree(o),n);Object.keys(i.models).forEach((function(t){var a=$.globalizeObjectId(t,o),s=i.objects[a];s?n(s):e.updateCompositeObjects&&r.metaScene.metaObjects[a]&&i.withObjects(r.metaScene.getObjectIDsInSubtree(a),n)}))}}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}}]),n}();function sf(e){return{x:e[0],y:e[1],z:e[2]}}function of(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function lf(e){return new Float64Array([e[0],-e[2],e[1]])}function uf(e){return new Float64Array([e[0],e[2],-e[1]])}function cf(e){var t="";return t+=Math.round(255*e[0]).toString(16).padStart(2,"0"),t+=Math.round(255*e[1]).toString(16).padStart(2,"0"),t+=Math.round(255*e[2]).toString(16).padStart(2,"0")}var ff=$.vec3(),pf=function(e,t,n,r){var i=e-n,a=t-r;return Math.sqrt(i*i+a*a)},Af=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(b(this,n),(r=t.call(this,e.viewer.scene,i)).plugin=e,r._container=i.container,!r._container)throw"config missing: container";r._eventSubs={};var a=r.plugin.viewer.scene;r._originMarker=new Xe(a,i.origin),r._targetMarker=new Xe(a,i.target),r._originWorld=$.vec3(),r._targetWorld=$.vec3(),r._wp=new Float64Array(24),r._vp=new Float64Array(24),r._pp=new Float64Array(24),r._cp=new Float64Array(8),r._xAxisLabelCulled=!1,r._yAxisLabelCulled=!1,r._zAxisLabelCulled=!1,r._color=i.color||r.plugin.defaultColor;var s=i.onMouseOver?function(e){i.onMouseOver(e,g(r)),r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,o=i.onMouseLeave?function(e){i.onMouseLeave(e,g(r)),r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,l=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},u=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},c=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},f=i.onContextMenu?function(e){i.onContextMenu(e,g(r))}:null,p=function(e){r.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};return r._originDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._targetDot=new Je(r._container,{fillColor:r._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._lengthWire=new qe(r._container,{color:r._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._xAxisWire=new qe(r._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._yAxisWire=new qe(r._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._zAxisWire=new qe(r._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._lengthLabel=new Ze(r._container,{fillColor:r._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._xAxisLabel=new Ze(r._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._yAxisLabel=new Ze(r._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._zAxisLabel=new Ze(r._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:o,onMouseWheel:p,onMouseDown:l,onMouseUp:u,onMouseMove:c,onContextMenu:f}),r._wpDirty=!1,r._vpDirty=!1,r._cpDirty=!1,r._sectionPlanesDirty=!0,r._visible=!1,r._originVisible=!1,r._targetVisible=!1,r._wireVisible=!1,r._axisVisible=!1,r._xAxisVisible=!1,r._yAxisVisible=!1,r._zAxisVisible=!1,r._axisEnabled=!0,r._labelsVisible=!1,r._clickable=!1,r._originMarker.on("worldPos",(function(e){r._originWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._targetMarker.on("worldPos",(function(e){r._targetWorld.set(e||[0,0,0]),r._wpDirty=!0,r._needUpdate(0)})),r._onViewMatrix=a.camera.on("viewMatrix",(function(){r._vpDirty=!0,r._needUpdate(0)})),r._onProjMatrix=a.camera.on("projMatrix",(function(){r._cpDirty=!0,r._needUpdate()})),r._onCanvasBoundary=a.canvas.on("boundary",(function(){r._cpDirty=!0,r._needUpdate(0)})),r._onMetricsUnits=a.metrics.on("units",(function(){r._cpDirty=!0,r._needUpdate()})),r._onMetricsScale=a.metrics.on("scale",(function(){r._cpDirty=!0,r._needUpdate()})),r._onMetricsOrigin=a.metrics.on("origin",(function(){r._cpDirty=!0,r._needUpdate()})),r._onSectionPlaneUpdated=a.on("sectionPlaneUpdated",(function(){r._sectionPlanesDirty=!0,r._needUpdate()})),r.approximate=i.approximate,r.visible=i.visible,r.originVisible=i.originVisible,r.targetVisible=i.targetVisible,r.wireVisible=i.wireVisible,r.axisVisible=i.axisVisible,r.xAxisVisible=i.xAxisVisible,r.yAxisVisible=i.yAxisVisible,r.zAxisVisible=i.zAxisVisible,r.labelsVisible=i.labelsVisible,r}return P(n,[{key:"_update",value:function(){if(this._visible){var e=this.plugin.viewer.scene;if(this._wpDirty&&(this._wp[0]=this._originWorld[0],this._wp[1]=this._originWorld[1],this._wp[2]=this._originWorld[2],this._wp[3]=1,this._wp[4]=this._targetWorld[0],this._wp[5]=this._originWorld[1],this._wp[6]=this._originWorld[2],this._wp[7]=1,this._wp[8]=this._targetWorld[0],this._wp[9]=this._targetWorld[1],this._wp[10]=this._originWorld[2],this._wp[11]=1,this._wp[12]=this._targetWorld[0],this._wp[13]=this._targetWorld[1],this._wp[14]=this._targetWorld[2],this._wp[15]=1,this._wpDirty=!1,this._vpDirty=!0),this._vpDirty&&($.transformPositions4(e.camera.viewMatrix,this._wp,this._vp),this._vp[3]=1,this._vp[7]=1,this._vp[11]=1,this._vp[15]=1,this._vpDirty=!1,this._cpDirty=!0),this._sectionPlanesDirty){if(this._isSliced(this._wp))return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setCulled(!0),this._yAxisWire.setCulled(!0),this._zAxisWire.setCulled(!0),this._lengthWire.setCulled(!0),this._originDot.setCulled(!0),void this._targetDot.setCulled(!0);this._xAxisLabel.setCulled(!1),this._yAxisLabel.setCulled(!1),this._zAxisLabel.setCulled(!1),this._lengthLabel.setCulled(!1),this._xAxisWire.setCulled(!1),this._yAxisWire.setCulled(!1),this._zAxisWire.setCulled(!1),this._lengthWire.setCulled(!1),this._originDot.setCulled(!1),this._targetDot.setCulled(!1),this._sectionPlanesDirty=!0}var t=this._originMarker.viewPos[2],n=this._targetMarker.viewPos[2];if(t>-.3||n>-.3)return this._xAxisLabel.setCulled(!0),this._yAxisLabel.setCulled(!0),this._zAxisLabel.setCulled(!0),this._lengthLabel.setCulled(!0),this._xAxisWire.setVisible(!1),this._yAxisWire.setVisible(!1),this._zAxisWire.setVisible(!1),this._lengthWire.setVisible(!1),this._originDot.setVisible(!1),void this._targetDot.setVisible(!1);if(this._cpDirty){$.transformPositions4(e.camera.project.matrix,this._vp,this._pp);for(var r=this._pp,i=this._cp,a=e.canvas.canvas.getBoundingClientRect(),s=this._container.getBoundingClientRect(),o=a.top-s.top,l=a.left-s.left,u=e.canvas.boundary,c=u[2],f=u[3],p=0,A=this.plugin.viewer.scene.metrics,d=A.scale,v=A.units,h=A.unitsInfo[v].abbrev,I=0,y=r.length;I1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e.viewer.scene)).pointerLens=i.pointerLens,r._active=!1,r._currentDistanceMeasurement=null,r._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null},r._initMarkerDiv(),r._onCameraControlHoverSnapOrSurface=null,r._onCameraControlHoverSnapOrSurfaceOff=null,r._onMouseDown=null,r._onMouseUp=null,r._onCanvasTouchStart=null,r._onCanvasTouchEnd=null,r._snapping=!1!==i.snapping,r._mouseState=0,r._attachPlugin(e,i),r}return P(n,[{key:"_initMarkerDiv",value:function(){var e=document.createElement("div");e.setAttribute("id","myMarkerDiv");var t=this.scene.canvas.canvas;t.parentNode.insertBefore(e,t),e.style.background="black",e.style.border="2px solid blue",e.style.borderRadius="10px",e.style.width="5px",e.style.height="5px",e.style.margin="-200px -200px",e.style.zIndex="100",e.style.position="absolute",e.style.pointerEvents="none",this._markerDiv=e}},{key:"_destroyMarkerDiv",value:function(){if(this._markerDiv){var e=document.getElementById("myMarkerDiv");e.parentNode.removeChild(e),this._markerDiv=null}}},{key:"_attachPlugin",value:function(e){this.distanceMeasurementsPlugin=e,this.plugin=e}},{key:"active",get:function(){return this._active}},{key:"snapping",get:function(){return this._snapping},set:function(e){e!==this._snapping?(this._snapping=e,this.deactivate(),this.activate()):this._snapping=e}},{key:"activate",value:function(){var e=this;if(!this._active){this._markerDiv||this._initMarkerDiv(),this.fire("activated",!0);var t=this.distanceMeasurementsPlugin,n=this.scene,r=t.viewer.cameraControl,i=n.canvas.canvas;n.input;var a,s,o=!1,l=$.vec3(),u=$.vec2(),c=null;this._mouseState=0,this._onCameraControlHoverSnapOrSurface=r.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",(function(t){var n=t.snappedCanvasPos||t.canvasPos;o=!0,l.set(t.worldPos),u.set(t.canvasPos),0===e._mouseState?(e._markerDiv.style.marginLeft="".concat(n[0]-5,"px"),e._markerDiv.style.marginTop="".concat(n[1]-5,"px"),e._markerDiv.style.background="pink",t.snappedToVertex||t.snappedToEdge?(e.pointerLens&&(e.pointerLens.visible=!0,e.pointerLens.canvasPos=t.canvasPos,e.pointerLens.snappedCanvasPos=t.snappedCanvasPos||t.canvasPos,e.pointerLens.snapped=!0),e._markerDiv.style.background="greenyellow",e._markerDiv.style.border="2px solid green"):(e.pointerLens&&(e.pointerLens.visible=!0,e.pointerLens.canvasPos=t.canvasPos,e.pointerLens.snappedCanvasPos=t.canvasPos,e.pointerLens.snapped=!1),e._markerDiv.style.background="pink",e._markerDiv.style.border="2px solid red"),c=t.entity):(e._markerDiv.style.marginLeft="-10000px",e._markerDiv.style.marginTop="-10000px"),i.style.cursor="pointer",e._currentDistanceMeasurement&&(e._currentDistanceMeasurement.wireVisible=e._currentDistanceMeasurementInitState.wireVisible,e._currentDistanceMeasurement.axisVisible=e._currentDistanceMeasurementInitState.axisVisible&&e.distanceMeasurementsPlugin.defaultAxisVisible,e._currentDistanceMeasurement.xAxisVisible=e._currentDistanceMeasurementInitState.xAxisVisible&&e.distanceMeasurementsPlugin.defaultXAxisVisible,e._currentDistanceMeasurement.yAxisVisible=e._currentDistanceMeasurementInitState.yAxisVisible&&e.distanceMeasurementsPlugin.defaultYAxisVisible,e._currentDistanceMeasurement.zAxisVisible=e._currentDistanceMeasurementInitState.zAxisVisible&&e.distanceMeasurementsPlugin.defaultZAxisVisible,e._currentDistanceMeasurement.targetVisible=e._currentDistanceMeasurementInitState.targetVisible,e._currentDistanceMeasurement.target.worldPos=l.slice(),e._markerDiv.style.marginLeft="-10000px",e._markerDiv.style.marginTop="-10000px")})),i.addEventListener("mousedown",this._onMouseDown=function(e){1===e.which&&(a=e.clientX,s=e.clientY)}),i.addEventListener("mouseup",this._onMouseUp=function(n){1===n.which&&(n.clientX>a+20||n.clientXs+20||n.clientY1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,"DistanceMeasurements",e))._pointerLens=i.pointerLens,r._container=i.container||document.body,r._defaultControl=null,r._measurements={},r.labelMinAxisLength=i.labelMinAxisLength,r.defaultVisible=!1!==i.defaultVisible,r.defaultOriginVisible=!1!==i.defaultOriginVisible,r.defaultTargetVisible=!1!==i.defaultTargetVisible,r.defaultWireVisible=!1!==i.defaultWireVisible,r.defaultLabelsVisible=!1!==i.defaultLabelsVisible,r.defaultAxisVisible=!1!==i.defaultAxisVisible,r.defaultXAxisVisible=!1!==i.defaultXAxisVisible,r.defaultYAxisVisible=!1!==i.defaultYAxisVisible,r.defaultZAxisVisible=!1!==i.defaultZAxisVisible,r.defaultColor=void 0!==i.defaultColor?i.defaultColor:"#00BBFF",r.zIndex=i.zIndex||1e4,r._onMouseOver=function(e,t){r.fire("mouseOver",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r._onMouseLeave=function(e,t){r.fire("mouseLeave",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r._onContextMenu=function(e,t){r.fire("contextMenu",{plugin:g(r),distanceMeasurement:t,measurement:t,event:e})},r}return P(n,[{key:"getContainerElement",value:function(){return this._container}},{key:"send",value:function(e,t){}},{key:"pointerLens",get:function(){return this._pointerLens}},{key:"control",get:function(){return this._defaultControl||(this._defaultControl=new vf(this,{})),this._defaultControl}},{key:"measurements",get:function(){return this._measurements}},{key:"labelMinAxisLength",get:function(){return this._labelMinAxisLength},set:function(e){e<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),e=25),this._labelMinAxisLength=e||25}},{key:"createMeasurement",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.viewer.scene.components[t.id]&&(this.error("Viewer scene component with this ID already exists: "+t.id),delete t.id);var n=t.origin,r=t.target,i=new Af(this,{id:t.id,plugin:this,container:this._container,origin:{entity:n.entity,worldPos:n.worldPos},target:{entity:r.entity,worldPos:r.worldPos},visible:t.visible,wireVisible:t.wireVisible,axisVisible:!1!==t.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==t.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==t.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==t.zAxisVisible&&!1!==this.defaultZAxisVisible,labelsVisible:!1!==t.labelsVisible&&!1!==this.defaultLabelsVisible,originVisible:t.originVisible,targetVisible:t.targetVisible,color:t.color,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.on("destroyed",(function(){delete e._measurements[i.id]})),this.fire("measurementCreated",i),i}},{key:"destroyMeasurement",value:function(e){var t=this._measurements[e];t?(t.destroy(),this.fire("measurementDestroyed",t)):this.log("DistanceMeasurement not found: "+e)}},{key:"setLabelsShown",value:function(e){for(var t=0,n=Object.entries(this.measurements);t1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,"FastNav",e))._hideColorTexture=!1!==i.hideColorTexture,r._hidePBR=!1!==i.hidePBR,r._hideSAO=!1!==i.hideSAO,r._hideEdges=!1!==i.hideEdges,r._hideTransparentObjects=!!i.hideTransparentObjects,r._scaleCanvasResolution=!!i.scaleCanvasResolution,r._scaleCanvasResolutionFactor=i.scaleCanvasResolutionFactor||.6,r._delayBeforeRestore=!1!==i.delayBeforeRestore,r._delayBeforeRestoreSeconds=i.delayBeforeRestoreSeconds||.5;var a=1e3*r._delayBeforeRestoreSeconds,s=!1,o=function(){a=1e3*r._delayBeforeRestoreSeconds,s||(e.scene._renderer.setColorTextureEnabled(!r._hideColorTexture),e.scene._renderer.setPBREnabled(!r._hidePBR),e.scene._renderer.setSAOEnabled(!r._hideSAO),e.scene._renderer.setTransparentEnabled(!r._hideTransparentObjects),e.scene._renderer.setEdgesEnabled(!r._hideEdges),r._scaleCanvasResolution?e.scene.canvas.resolutionScale=r._scaleCanvasResolutionFactor:e.scene.canvas.resolutionScale=1,s=!0)},l=function(){e.scene.canvas.resolutionScale=1,e.scene._renderer.setEdgesEnabled(!0),e.scene._renderer.setColorTextureEnabled(!0),e.scene._renderer.setPBREnabled(!0),e.scene._renderer.setSAOEnabled(!0),e.scene._renderer.setTransparentEnabled(!0),s=!1};r._onCanvasBoundary=e.scene.canvas.on("boundary",o),r._onCameraMatrix=e.scene.camera.on("matrix",o),r._onSceneTick=e.scene.on("tick",(function(e){s&&(a-=e.deltaTime,(!r._delayBeforeRestore||a<=0)&&l())}));var u=!1;return r._onSceneMouseDown=e.scene.input.on("mousedown",(function(){u=!0})),r._onSceneMouseUp=e.scene.input.on("mouseup",(function(){u=!1})),r._onSceneMouseMove=e.scene.input.on("mousemove",(function(){u&&o()})),r}return P(n,[{key:"hideColorTexture",get:function(){return this._hideColorTexture},set:function(e){this._hideColorTexture=e}},{key:"hidePBR",get:function(){return this._hidePBR},set:function(e){this._hidePBR=e}},{key:"hideSAO",get:function(){return this._hideSAO},set:function(e){this._hideSAO=e}},{key:"hideEdges",get:function(){return this._hideEdges},set:function(e){this._hideEdges=e}},{key:"hideTransparentObjects",get:function(){return this._hideTransparentObjects},set:function(e){this._hideTransparentObjects=!1!==e}},{key:"scaleCanvasResolution",get:function(){return this._scaleCanvasResolution},set:function(e){this._scaleCanvasResolution=e}},{key:"scaleCanvasResolutionFactor",get:function(){return this._scaleCanvasResolutionFactor},set:function(e){this._scaleCanvasResolutionFactor=e||.6}},{key:"delayBeforeRestore",get:function(){return this._delayBeforeRestore},set:function(e){this._delayBeforeRestore=e}},{key:"delayBeforeRestoreSeconds",get:function(){return this._delayBeforeRestoreSeconds},set:function(e){this._delayBeforeRestoreSeconds=null!=e?e:.5}},{key:"send",value:function(e,t){}},{key:"destroy",value:function(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),v(E(n.prototype),"destroy",this).call(this)}}]),n}(),yf=function(){function e(){b(this,e)}return P(e,[{key:"getMetaModel",value:function(e,t,n){le.loadJSON(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getGLTF",value:function(e,t,n){le.loadArraybuffer(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getGLB",value:function(e,t,n){le.loadArraybuffer(e,(function(e){t(e)}),(function(e){n(e)}))}},{key:"getArrayBuffer",value:function(e,t,n,r){!function(e,t,n,r){var i=function(){};n=n||i,r=r||i;var a=/^data:(.*?)(;base64)?,(.*)$/,s=t.match(a);if(s){var o=!!s[2],l=s[3];l=window.decodeURIComponent(l),o&&(l=window.atob(l));try{for(var u=new ArrayBuffer(l.length),c=new Uint8Array(u),f=0;f0&&void 0!==arguments[0]?arguments[0]:{};b(this,e),this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=t.messages,this.locale=t.locale}return P(e,[{key:"messages",set:function(e){this._messages=e||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}},{key:"loadMessages",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e)this._messages[t]=e[t];this.messages=this._messages}},{key:"clearMessages",value:function(){this.messages={}}},{key:"locales",get:function(){return this._locales}},{key:"locale",get:function(){return this._locale},set:function(e){e=e||"de",this._locale!==e&&(this._locale=e,this.fire("updated",e))}},{key:"translate",value:function(e,t){var n=this._messages[this._locale];if(!n)return null;var r=wf(e,n);return r?t?gf(r,t):r:null}},{key:"translatePlurals",value:function(e,t,n){var r=this._messages[this._locale];if(!r)return null;var i=wf(e,r);return(i=0===(t=parseInt(""+t,10))?i.zero:t>1?i.other:i.one)?(i=gf(i,[t]),n&&(i=gf(i,n)),i):null}},{key:"fire",value:function(e,t,n){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==n&&(this._events[e]=t||!0);var r=this._eventSubs[e];if(r)for(var i in r){if(r.hasOwnProperty(i))r[i].callback(t)}}},{key:"on",value:function(e,t){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new G),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});var n=this._eventSubs[e];n||(n={},this._eventSubs[e]=n);var r=this._eventSubIDMap.addItem();n[r]={callback:t},this._eventSubEvents[r]=e;var i=this._events[e];return void 0!==i&&t(i),r}},{key:"off",value:function(e){if(null!=e&&this._eventSubEvents){var t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];var n=this._eventSubs[t];n&&delete n[e],this._eventSubIDMap.removeItem(e)}}}}]),e}();function wf(e,t){if(t[e])return t[e];for(var n=e.split("."),r=t,i=0,a=n.length;r&&i1&&void 0!==arguments[1]?arguments[1]:[];return e.replace(/\{\{|\}\}|\{(\d+)\}/g,(function(e,n){return"{{"===e?"{":"}}"===e?"}":t[n]}))}var Ef=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).t=i.t,r}return P(n,[{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"tangent",get:function(){return this.getTangent(this._t)}},{key:"length",get:function(){var e=this._getLengths();return e[e.length-1]}},{key:"getTangent",value:function(e){var t=1e-4;void 0===e&&(e=this._t);var n=e-t,r=e+t;n<0&&(n=0),r>1&&(r=1);var i=this.getPoint(n),a=this.getPoint(r),s=$.subVec3(a,i,[]);return $.normalizeVec3(s,[])}},{key:"getPointAt",value:function(e){var t=this.getUToTMapping(e);return this.getPoint(t)}},{key:"getPoints",value:function(e){e||(e=5);var t,n=[];for(t=0;t<=e;t++)n.push(this.getPoint(t/e));return n}},{key:"_getLengths",value:function(e){if(e||(e=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,n,r=[],i=this.getPoint(0),a=0;for(r.push(0),n=1;n<=e;n++)t=this.getPoint(n/e),a+=$.lenVec3($.subVec3(t,i,[])),r.push(a),i=t;return this.cacheArcLengths=r,r}},{key:"_updateArcLengths",value:function(){this.needsUpdate=!0,this._getLengths()}},{key:"getUToTMapping",value:function(e,t){var n,r=this._getLengths(),i=0,a=r.length;n=t||e*r[a-1];for(var s,o=0,l=a-1;o<=l;)if((s=r[i=Math.floor(o+(l-o)/2)]-n)<0)o=i+1;else{if(!(s>0)){l=i;break}l=i-1}if(r[i=l]===n)return i/(a-1);var u=r[i];return(i+(n-u)/(r[i+1]-u))/(a-1)}}]),n}(),Tf=function(e){I(n,Ef);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).points=i.points,r.t=i.t,r}return P(n,[{key:"points",get:function(){return this._points},set:function(e){this._points=e||[]}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=this.points;if(!(t.length<3)){var n=(t.length-1)*e,r=Math.floor(n),i=n-r,a=t[0===r?r:r-1],s=t[r],o=t[r>t.length-2?t.length-1:r+1],l=t[r>t.length-3?t.length-1:r+2],u=$.vec3();return u[0]=$.catmullRomInterpolate(a[0],s[0],o[0],l[0],i),u[1]=$.catmullRomInterpolate(a[1],s[1],o[1],l[1],i),u[2]=$.catmullRomInterpolate(a[2],s[2],o[2],l[2],i),u}this.error("Can't sample point from SplineCurve - not enough points on curve - returning [0,0,0].")}},{key:"getJSON",value:function(){return{points:points,t:this._t}}}]),n}(),bf=$.vec3(),Df=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._frames=[],r._eyeCurve=new Tf(g(r)),r._lookCurve=new Tf(g(r)),r._upCurve=new Tf(g(r)),i.frames&&(r.addFrames(i.frames),r.smoothFrameTimes(1)),r}return P(n,[{key:"type",get:function(){return"CameraPath"}},{key:"frames",get:function(){return this._frames}},{key:"eyeCurve",get:function(){return this._eyeCurve}},{key:"lookCurve",get:function(){return this._lookCurve}},{key:"upCurve",get:function(){return this._upCurve}},{key:"saveFrame",value:function(e){var t=this.scene.camera;this.addFrame(e,t.eye,t.look,t.up)}},{key:"addFrame",value:function(e,t,n,r){var i={t:e,eye:t.slice(0),look:n.slice(0),up:r.slice(0)};this._frames.push(i),this._eyeCurve.points.push(i.eye),this._lookCurve.points.push(i.look),this._upCurve.points.push(i.up)}},{key:"addFrames",value:function(e){for(var t,n=0,r=e.length;n1?1:e,t.eye=this._eyeCurve.getPoint(e,bf),t.look=this._lookCurve.getPoint(e,bf),t.up=this._upCurve.getPoint(e,bf)}},{key:"sampleFrame",value:function(e,t,n,r){e=e<0?0:e>1?1:e,this._eyeCurve.getPoint(e,t),this._lookCurve.getPoint(e,n),this._upCurve.getPoint(e,r)}},{key:"smoothFrameTimes",value:function(e){if(0!==this._frames.length){var t=$.vec3(),n=0;this._frames[0].t=0;for(var r=[],i=1,a=this._frames.length;i1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._look1=$.vec3(),r._eye1=$.vec3(),r._up1=$.vec3(),r._look2=$.vec3(),r._eye2=$.vec3(),r._up2=$.vec3(),r._orthoScale1=1,r._orthoScale2=1,r._flying=!1,r._flyEyeLookUp=!1,r._flyingEye=!1,r._flyingLook=!1,r._callback=null,r._callbackScope=null,r._time1=null,r._time2=null,r.easing=!1!==i.easing,r.duration=i.duration,r.fit=i.fit,r.fitFOV=i.fitFOV,r.trail=i.trail,r}return P(n,[{key:"type",get:function(){return"CameraFlightAnimation"}},{key:"flyTo",value:function(e,t,n){e=e||this.scene,this._flying&&this.stop(),this._flying=!1,this._flyingEye=!1,this._flyingLook=!1,this._flyingEyeLookUp=!1,this._callback=t,this._callbackScope=n;var r,i,a,s,o,l=this.scene.camera,u=!!e.projection&&e.projection!==l.projection;if(this._eye1[0]=l.eye[0],this._eye1[1]=l.eye[1],this._eye1[2]=l.eye[2],this._look1[0]=l.look[0],this._look1[1]=l.look[1],this._look1[2]=l.look[2],this._up1[0]=l.up[0],this._up1[1]=l.up[1],this._up1[2]=l.up[2],this._orthoScale1=l.ortho.scale,this._orthoScale2=e.orthoScale||this._orthoScale1,e.aabb)r=e.aabb;else if(6===e.length)r=e;else if(e.eye&&e.look||e.up)i=e.eye,a=e.look,s=e.up;else if(e.eye)i=e.eye;else if(e.look)a=e.look;else{var c=e;if((le.isNumeric(c)||le.isString(c))&&(o=c,!(c=this.scene.components[o])))return this.error("Component not found: "+le.inQuotes(o)),void(t&&(n?t.call(n):t()));u||(r=c.aabb||this.scene.aabb)}var f=e.poi;if(r){if(r[3]=1;e>1&&(e=1);var r=this.easing?n._ease(e,0,1,1):e,i=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?($.subVec3(i.eye,i.look,Bf),i.eye=$.lerpVec3(r,0,1,this._eye1,this._eye2,Cf),i.look=$.subVec3(Cf,Bf,Rf)):this._flyingLook&&(i.look=$.lerpVec3(r,0,1,this._look1,this._look2,Rf),i.up=$.lerpVec3(r,0,1,this._up1,this._up2,_f)):this._flyingEyeLookUp&&(i.eye=$.lerpVec3(r,0,1,this._eye1,this._eye2,Cf),i.look=$.lerpVec3(r,0,1,this._look1,this._look2,Rf),i.up=$.lerpVec3(r,0,1,this._up1,this._up2,_f)),this._projection2){var a="ortho"===this._projection2?n._easeOutExpo(e,0,1,1):n._easeInCubic(e,0,1,1);i.customProjection.matrix=$.lerpMat4(a,0,1,this._projMatrix1,this._projMatrix2)}else i.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return i.ortho.scale=this._orthoScale2,void this.stop();he.scheduleTask(this._update,this)}}},{key:"stop",value:function(){if(this._flying){this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);var e=this._callback;e&&(this._callback=null,this._callbackScope?e.call(this._callbackScope):e()),this.fire("stopped",!0,!0)}}},{key:"cancel",value:function(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}},{key:"duration",get:function(){return this._duration/1e3},set:function(e){this._duration=e?1e3*e:500,this.stop()}},{key:"fit",get:function(){return this._fit},set:function(e){this._fit=!1!==e}},{key:"fitFOV",get:function(){return this._fitFOV},set:function(e){this._fitFOV=e||45}},{key:"trail",get:function(){return this._trail},set:function(e){this._trail=!!e}},{key:"destroy",value:function(){this.stop(),v(E(n.prototype),"destroy",this).call(this)}}],[{key:"_ease",value:function(e,t,n,r){return-n*(e/=r)*(e-2)+t}},{key:"_easeInCubic",value:function(e,t,n,r){return n*(e/=r)*e*e+t}},{key:"_easeOutExpo",value:function(e,t,n,r){return n*(1-Math.pow(2,-10*e/r))+t}}]),n}(),Sf=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._cameraFlightAnimation=new Of(g(r)),r._t=0,r.state=n.SCRUBBING,r._playingFromT=0,r._playingToT=0,r._playingRate=i.playingRate||1,r._playingDir=1,r._lastTime=null,r.cameraPath=i.cameraPath,r._tick=r.scene.on("tick",r._updateT,g(r)),r}return P(n,[{key:"type",get:function(){return"CameraPathAnimation"}},{key:"_updateT",value:function(){var e=this._cameraPath;if(e){var t,r,i=performance.now(),a=this._lastTime?.001*(i-this._lastTime):0;if(this._lastTime=i,0!==a)switch(this.state){case n.SCRUBBING:return;case n.PLAYING:if(this._t+=this._playingRate*a,0===(t=this._cameraPath.frames.length)||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[t-1].t)return this.state=n.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case n.PLAYING_TO:r=this._t+this._playingRate*a*this._playingDir,(this._playingDir<0&&r<=this._playingToT||this._playingDir>0&&r>=this._playingToT)&&(r=this._playingToT,this.state=n.SCRUBBING,this.fire("stopped")),this._t=r,e.loadFrame(this._t)}}}},{key:"_ease",value:function(e,t,n,r){return-n*(e/=r)*(e-2)+t}},{key:"cameraPath",get:function(){return this._cameraPath},set:function(e){this._cameraPath=e}},{key:"rate",get:function(){return this._playingRate},set:function(e){this._playingRate=e}},{key:"play",value:function(){this._cameraPath&&(this._lastTime=null,this.state=n.PLAYING)}},{key:"playToT",value:function(e){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=e,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=n.PLAYING_TO)}},{key:"playToFrame",value:function(e){var t=this._cameraPath;if(t){var n=t.frames[e];n?this.playToT(n.t):this.error("playToFrame - frame index out of range: "+e)}}},{key:"flyToFrame",value:function(e,t){var r=this._cameraPath;if(r){var i=r.frames[e];i?(this.state=n.SCRUBBING,this._cameraFlightAnimation.flyTo(i,t)):this.error("flyToFrame - frame index out of range: "+e)}}},{key:"scrubToT",value:function(e){var t=this._cameraPath;t&&(this.scene.camera&&(this._t=e,t.loadFrame(this._t),this.state=n.SCRUBBING))}},{key:"scrubToFrame",value:function(e){var t=this._cameraPath;t&&(this.scene.camera&&(t.frames[e]?(t.loadFrame(this._t),this.state=n.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)))}},{key:"stop",value:function(){this.state=n.SCRUBBING,this.fire("stopped")}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene.off(this._tick)}}]),n}();Sf.STOPPED=0,Sf.SCRUBBING=1,Sf.PLAYING=2,Sf.PLAYING_TO=3;var Nf=$.vec3(),Lf=$.vec3();$.vec3();var Mf=$.vec3([0,-1,0]),xf=$.vec4([0,0,0,1]),Ff=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._src=null,r._image=null,r._pos=$.vec3(),r._origin=$.vec3(),r._rtcPos=$.vec3(),r._dir=$.vec3(),r._size=1,r._imageSize=$.vec2(),r._texture=new Ba(g(r)),r._plane=new Ji(g(r),{geometry:new Cn(g(r),Ga({center:[0,0,0],xSize:1,zSize:1,xSegments:10,zSegments:10})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:r._texture,emissiveMap:r._texture,backfaces:!0}),clippable:i.clippable}),r._grid=new Ji(g(r),{geometry:new Cn(g(r),Ua({size:1,divisions:10})),material:new Nn(g(r),{diffuse:[0,0,0],ambient:[0,0,0],emissive:[.2,.8,.2]}),position:[0,.001,0],clippable:i.clippable}),r._node=new da(g(r),{rotation:[0,0,0],position:[0,0,0],scale:[1,1,1],clippable:!1,children:[r._plane,r._grid]}),r._gridVisible=!1,r.visible=!0,r.gridVisible=i.gridVisible,r.position=i.position,r.rotation=i.rotation,r.dir=i.dir,r.size=i.size,r.collidable=i.collidable,r.clippable=i.clippable,r.pickable=i.pickable,r.opacity=i.opacity,i.image?r.image=i.image:r.src=i.src,r}return P(n,[{key:"visible",get:function(){return this._plane.visible},set:function(e){this._plane.visible=e,this._grid.visible=this._gridVisible&&e}},{key:"gridVisible",get:function(){return this._gridVisible},set:function(e){e=!1!==e,this._gridVisible=e,this._grid.visible=this._gridVisible&&this.visible}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._imageSize[0]=e.width,this._imageSize[1]=e.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}},{key:"src",get:function(){return this._src},set:function(e){var t=this;if(this._src=e,this._src){this._image=null;var n=new Image;n.onload=function(){t._texture.image=n,t._imageSize[0]=n.width,t._imageSize[1]=n.height,t._updatePlaneSizeFromImage()},n.src=this._src}}},{key:"position",get:function(){return this._pos},set:function(e){this._pos.set(e||[0,0,0]),Oe(this._pos,this._origin,this._rtcPos),this._node.origin=this._origin,this._node.position=this._rtcPos}},{key:"rotation",get:function(){return this._node.rotation},set:function(e){this._node.rotation=e}},{key:"size",get:function(){return this._size},set:function(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}},{key:"dir",get:function(){return this._dir},set:function(e){if(this._dir.set(e||[0,0,-1]),e){var t=this.scene.center,n=[-this._dir[0],-this._dir[1],-this._dir[2]];$.subVec3(t,this.position,Nf);var r=-$.dotVec3(n,Nf);$.normalizeVec3(n),$.mulVec3Scalar(n,r,Lf),$.vec3PairToQuaternion(Mf,e,xf),this._node.quaternion=xf}}},{key:"collidable",get:function(){return this._node.collidable},set:function(e){this._node.collidable=!1!==e}},{key:"clippable",get:function(){return this._node.clippable},set:function(e){this._node.clippable=!1!==e}},{key:"pickable",get:function(){return this._node.pickable},set:function(e){this._node.pickable=!1!==e}},{key:"opacity",get:function(){return this._node.opacity},set:function(e){this._node.opacity=e}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this)}},{key:"_updatePlaneSizeFromImage",value:function(){var e=this._size,t=this._imageSize[0],n=this._imageSize[1];if(t>n){var r=n/t;this._node.scale=[e,1,e*r]}else{var i=t/n;this._node.scale=[e*i,1,e]}}}]),n}(),Hf=function(e){I(n,dn);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n);var a=g(r=t.call(this,e,i));r._shadowRenderBuf=null,r._shadowViewMatrix=null,r._shadowProjMatrix=null,r._shadowViewMatrixDirty=!0,r._shadowProjMatrixDirty=!0;var s=r.scene.camera,o=r.scene.canvas;return r._onCameraViewMatrix=s.on("viewMatrix",(function(){r._shadowViewMatrixDirty=!0})),r._onCameraProjMatrix=s.on("projMatrix",(function(){r._shadowProjMatrixDirty=!0})),r._onCanvasBoundary=o.on("boundary",(function(){r._shadowProjMatrixDirty=!0})),r._state=new Wt({type:"point",pos:$.vec3([1,1,1]),color:$.vec3([.7,.7,.8]),intensity:1,attenuation:[0,0,0],space:i.space||"view",castsShadow:!1,getShadowViewMatrix:function(){if(a._shadowViewMatrixDirty){a._shadowViewMatrix||(a._shadowViewMatrix=$.identityMat4());var e=a._state.pos,t=s.look,n=s.up;$.lookAtMat4v(e,t,n,a._shadowViewMatrix),a._shadowViewMatrixDirty=!1}return a._shadowViewMatrix},getShadowProjMatrix:function(){if(a._shadowProjMatrixDirty){a._shadowProjMatrix||(a._shadowProjMatrix=$.identityMat4());var e=a.scene.canvas.canvas;$.perspectiveMat4(Math.PI/180*70,e.clientWidth/e.clientHeight,.1,500,a._shadowProjMatrix),a._shadowProjMatrixDirty=!1}return a._shadowProjMatrix},getShadowRenderBuf:function(){return a._shadowRenderBuf||(a._shadowRenderBuf=new Ut(a.scene.canvas.canvas,a.scene.canvas.gl,{size:[1024,1024]})),a._shadowRenderBuf}}),r.pos=i.pos,r.color=i.color,r.intensity=i.intensity,r.constantAttenuation=i.constantAttenuation,r.linearAttenuation=i.linearAttenuation,r.quadraticAttenuation=i.quadraticAttenuation,r.castsShadow=i.castsShadow,r.scene._lightCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"PointLight"}},{key:"pos",get:function(){return this._state.pos},set:function(e){this._state.pos.set(e||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}},{key:"color",get:function(){return this._state.color},set:function(e){this._state.color.set(e||[.7,.7,.8]),this.glRedraw()}},{key:"intensity",get:function(){return this._state.intensity},set:function(e){e=void 0!==e?e:1,this._state.intensity=e,this.glRedraw()}},{key:"constantAttenuation",get:function(){return this._state.attenuation[0]},set:function(e){this._state.attenuation[0]=e||0,this.glRedraw()}},{key:"linearAttenuation",get:function(){return this._state.attenuation[1]},set:function(e){this._state.attenuation[1]=e||0,this.glRedraw()}},{key:"quadraticAttenuation",get:function(){return this._state.attenuation[2]},set:function(e){this._state.attenuation[2]=e||0,this.glRedraw()}},{key:"castsShadow",get:function(){return this._state.castsShadow},set:function(e){e=!!e,this._state.castsShadow!==e&&(this._state.castsShadow=e,this._shadowViewMatrixDirty=!0,this.glRedraw())}},{key:"destroy",value:function(){var e=this.scene.camera,t=this.scene.canvas;e.off(this._onCameraViewMatrix),e.off(this._onCameraProjMatrix),t.off(this._onCanvasBoundary),v(E(n.prototype),"destroy",this).call(this),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}]),n}();function Uf(e){return 0==(e&e-1)}function Gf(e){--e;for(var t=1;t<32;t<<=1)e|=e>>t;return e+1}var kf=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,n);var a=(r=t.call(this,e,i)).scene.canvas.gl;return r._state=new Wt({texture:new ba({gl:a,target:a.TEXTURE_CUBE_MAP}),flipY:r._checkFlipY(i.minFilter),encoding:r._checkEncoding(i.encoding),minFilter:1008,magFilter:1006,wrapS:1001,wrapT:1001,mipmaps:!0}),r._src=i.src,r._images=[],r._loadSrc(i.src),re.memory.textures++,r}return P(n,[{key:"type",get:function(){return"CubeTexture"}},{key:"_checkFlipY",value:function(e){return!!e}},{key:"_checkEncoding",value:function(e){return 3e3!==(e=e||3e3)&&3001!==e&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=3e3),e}},{key:"_webglContextRestored",value:function(){this.scene.canvas.gl,this._state.texture=null,this._src&&this._loadSrc(this._src)}},{key:"_loadSrc",value:function(e){var t=this,n=this.scene.canvas.gl;this._images=[];for(var r=!1,i=0,a=function(a){var s,o,l=new Image;l.onload=(s=l,o=a,function(){if(!r&&(s=function(e){if(!Uf(e.width)||!Uf(e.height)){var t=document.createElement("canvas");t.width=Gf(e.width),t.height=Gf(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),e=t}return e}(s),t._images[o]=s,6==++i)){var e=t._state.texture;e||(e=new ba({gl:n,target:n.TEXTURE_CUBE_MAP}),t._state.texture=e),e.setImage(t._images,t._state),t.fire("loaded",t._src,!1),t.glRedraw()}}),l.onerror=function(){r=!0},l.src=e[a]},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).scene._lightsState.addReflectionMap(r._state),r.scene._reflectionMapCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"ReflectionMap"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._reflectionMapDestroyed(this)}}]),n}(),Vf=function(e){I(n,kf);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).scene._lightMapCreated(g(r)),r}return P(n,[{key:"type",get:function(){return"LightMap"}},{key:"destroy",value:function(){v(E(n.prototype),"destroy",this).call(this),this.scene._lightMapDestroyed(this)}}]),n}(),Qf=function(e){I(n,Xe);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,{entity:i.entity,occludable:i.occludable,worldPos:i.worldPos}))._occluded=!1,r._visible=!0,r._src=null,r._image=null,r._pos=$.vec3(),r._origin=$.vec3(),r._rtcPos=$.vec3(),r._dir=$.vec3(),r._size=1,r._imageSize=$.vec2(),r._texture=new Ba(g(r),{src:i.src}),r._geometry=new Cn(g(r),{primitive:"triangles",positions:[3,3,0,-3,3,0,-3,-3,0,3,-3,0],normals:[-1,0,0,-1,0,0,-1,0,0,-1,0,0],uv:[1,-1,0,-1,0,0,1,0],indices:[0,1,2,0,2,3]}),r._mesh=new Ji(g(r),{geometry:r._geometry,material:new Nn(g(r),{ambient:[.9,.3,.9],shininess:30,diffuseMap:r._texture,backfaces:!0}),scale:[1,1,1],position:i.worldPos,rotation:[90,0,0],billboard:"spherical",occluder:!1}),r.visible=!0,r.collidable=i.collidable,r.clippable=i.clippable,r.pickable=i.pickable,r.opacity=i.opacity,r.size=i.size,i.image?r.image=i.image:r.src=i.src,r}return P(n,[{key:"_setVisible",value:function(e){this._occluded=!e,this._mesh.visible=this._visible&&!this._occluded,v(E(n.prototype),"_setVisible",this).call(this,e)}},{key:"visible",get:function(){return this._visible},set:function(e){this._visible=null==e||e,this._mesh.visible=this._visible&&!this._occluded}},{key:"image",get:function(){return this._image},set:function(e){this._image=e,this._image&&(this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updatePlaneSizeFromImage(),this._src=null,this._texture.image=this._image)}},{key:"src",get:function(){return this._src},set:function(e){var t=this;if(this._src=e,this._src){this._image=null;var n=new Image;n.onload=function(){t._texture.image=n,t._imageSize[0]=n.width,t._imageSize[1]=n.height,t._updatePlaneSizeFromImage()},n.src=this._src}}},{key:"size",get:function(){return this._size},set:function(e){this._size=null==e?1:e,this._image&&this._updatePlaneSizeFromImage()}},{key:"collidable",get:function(){return this._mesh.collidable},set:function(e){this._mesh.collidable=!1!==e}},{key:"clippable",get:function(){return this._mesh.clippable},set:function(e){this._mesh.clippable=!1!==e}},{key:"pickable",get:function(){return this._mesh.pickable},set:function(e){this._mesh.pickable=!1!==e}},{key:"opacity",get:function(){return this._mesh.opacity},set:function(e){this._mesh.opacity=e}},{key:"_updatePlaneSizeFromImage",value:function(){var e=.5*this._size,t=this._imageSize[0],n=this._imageSize[1],r=n/t;this._geometry.positions=t>n?[e,e*r,0,-e,e*r,0,-e,-e*r,0,e,-e*r,0]:[e/r,e,0,-e/r,e,0,-e/r,-e,0,e/r,-e,0]}}]),n}(),Wf=function(){function e(t){b(this,e),this._eye=$.vec3(),this._look=$.vec3(),this._up=$.vec3(),this._projection={},t&&this.saveCamera(t)}return P(e,[{key:"saveCamera",value:function(e){var t=e.camera,n=t.project;switch(this._eye.set(t.eye),this._look.set(t.look),this._up.set(t.up),t.projection){case"perspective":this._projection={projection:"perspective",fov:n.fov,fovAxis:n.fovAxis,near:n.near,far:n.far};break;case"ortho":this._projection={projection:"ortho",scale:n.scale,near:n.near,far:n.far};break;case"frustum":this._projection={projection:"frustum",left:n.left,right:n.right,top:n.top,bottom:n.bottom,near:n.near,far:n.far};break;case"custom":this._projection={projection:"custom",matrix:n.matrix.slice()}}}},{key:"restoreCamera",value:function(e,t){var n=e.camera,r=this._projection;function i(){switch(r.type){case"perspective":n.perspective.fov=r.fov,n.perspective.fovAxis=r.fovAxis,n.perspective.near=r.near,n.perspective.far=r.far;break;case"ortho":n.ortho.scale=r.scale,n.ortho.near=r.near,n.ortho.far=r.far;break;case"frustum":n.frustum.left=r.left,n.frustum.right=r.right,n.frustum.top=r.top,n.frustum.bottom=r.bottom,n.frustum.near=r.near,n.frustum.far=r.far;break;case"custom":n.customProjection.matrix=r.matrix}}t?e.viewer.cameraFlight.flyTo({eye:this._eye,look:this._look,up:this._up,orthoScale:r.scale,projection:r.projection},(function(){i(),t()})):(n.eye=this._eye,n.look=this._look,n.up=this._up,i(),n.projection=r.projection)}}]),e}(),zf=$.vec3(),Kf=function(){function e(t){if(b(this,e),this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsOpacity=[],this.numObjects=0,t){var n=t.metaScene.scene;this.saveObjects(n,t)}}return P(e,[{key:"saveObjects",value:function(e,t,n){this.numObjects=0,this._mask=n?le.apply(n,{}):null;for(var r=!n||n.visible,i=!n||n.edges,a=!n||n.xrayed,s=!n||n.highlighted,o=!n||n.selected,l=!n||n.clippable,u=!n||n.pickable,c=!n||n.colorize,f=!n||n.opacity,p=t.metaObjects,A=e.objects,d=0,v=p.length;d1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).v0=i.v0,r.v1=i.v1,r.v2=i.v2,r.v3=i.v3,r.t=i.t,r}return P(n,[{key:"v0",get:function(){return this._v0},set:function(e){this._v0=e||$.vec3([0,0,0])}},{key:"v1",get:function(){return this._v1},set:function(e){this._v1=e||$.vec3([0,0,0])}},{key:"v2",get:function(){return this._v2},set:function(e){this._v2=e||$.vec3([0,0,0])}},{key:"v3",get:function(){return this._v3},set:function(e){this.fire("v3",this._v3=e||$.vec3([0,0,0]))}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=$.vec3();return t[0]=$.b3(e,this._v0[0],this._v1[0],this._v2[0],this._v3[0]),t[1]=$.b3(e,this._v0[1],this._v1[1],this._v2[1],this._v3[1]),t[2]=$.b3(e,this._v0[2],this._v1[2],this._v2[2],this._v3[2]),t}},{key:"getJSON",value:function(){return{v0:this._v0,v1:this._v1,v2:this._v2,v3:this._v3,t:this._t}}}]),n}(),Jf=function(e){I(n,Ef);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._cachedLengths=[],r._dirty=!0,r._curves=[],r._t=0,r._dirtySubs=[],r._destroyedSubs=[],r.curves=i.curves||[],r.t=i.t,r}return P(n,[{key:"addCurve",value:function(e){this._curves.push(e),this._dirty=!0}},{key:"curves",get:function(){return this._curves},set:function(e){var t,n,r;for(e=e||[],n=0,r=this._curves.length;n1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"length",get:function(){var e=this._getCurveLengths();return e[e.length-1]}},{key:"getPoint",value:function(e){for(var t,n=e*this.length,r=this._getCurveLengths(),i=0;i=n){var a=1-(r[i]-n)/(t=this._curves[i]).length;return t.getPointAt(a)}i++}return null}},{key:"_getCurveLengths",value:function(){if(!this._dirty)return this._cachedLengths;var e,t=[],n=0,r=this._curves.length;for(e=0;e1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i)).v0=i.v0,r.v1=i.v1,r.v2=i.v2,r.t=i.t,r}return P(n,[{key:"v0",get:function(){return this._v0},set:function(e){this._v0=e||$.vec3([0,0,0])}},{key:"v1",get:function(){return this._v1},set:function(e){this._v1=e||$.vec3([0,0,0])}},{key:"v2",get:function(){return this._v2},set:function(e){this._v2=e||$.vec3([0,0,0])}},{key:"t",get:function(){return this._t},set:function(e){e=e||0,this._t=e<0?0:e>1?1:e}},{key:"point",get:function(){return this.getPoint(this._t)}},{key:"getPoint",value:function(e){var t=$.vec3();return t[0]=$.b2(e,this._v0[0],this._v1[0],this._v2[0]),t[1]=$.b2(e,this._v0[1],this._v1[1],this._v2[1]),t[2]=$.b2(e,this._v0[2],this._v1[2],this._v2[2]),t}},{key:"getJSON",value:function(){return{v0:this._v0,v1:this._v1,v2:this._v2,t:this._t}}}]),n}(),$f=function(e){I(n,ye);var t=m(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,n),(r=t.call(this,e,i))._skyboxMesh=new Ji(g(r),{geometry:new Cn(g(r),{primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:!0,scale:[2e3,2e3,2e3],rotation:[0,-90,0],material:new Nn(g(r),{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new Ba(g(r),{src:i.src,flipY:!0,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:i.encoding||"sRGB"}),backfaces:!0}),visible:!1,pickable:!1,clippable:!1,collidable:!1}),r.size=i.size,r.active=i.active,r}return P(n,[{key:"size",get:function(){return this._size},set:function(e){this._size=e||1e3,this._skyboxMesh.scale=[this._size,this._size,this._size]}},{key:"active",get:function(){return this._skyboxMesh.visible},set:function(e){this._skyboxMesh.visible=e}}]),n}(),ep=function(){function e(){b(this,e)}return P(e,[{key:"transcode",value:function(e,t){}},{key:"destroy",value:function(){}}]),e}(),tp=$.vec4(),np=$.vec4(),rp=$.vec3(),ip=$.vec3(),ap=$.vec3(),sp=$.vec4(),op=$.vec4(),lp=$.vec4(),up=function(){function e(t){b(this,e),this._scene=t}return P(e,[{key:"dollyToCanvasPos",value:function(e,t,n){var r=!1,i=this._scene.camera;if(e){var a=$.subVec3(e,i.eye,rp);r=$.lenVec3(a)0&&void 0!==arguments[0]?arguments[0]:{};this.destroyPivotSphere(),this._pivotSphereEnabled=!0,e.size&&(this._pivotSphereSize=e.size);var t=e.color||[1,0,0];this._pivotSphereMaterial=new Nn(this._scene,{emissive:t,ambient:t,specular:[0,0,0],diffuse:[0,0,0]})}},{key:"disablePivotSphere",value:function(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}},{key:"startPivot",value:function(){if(this._cameraLookingDownwards())return this._pivoting=!1,!1;var e=this._scene.camera,t=$.lookAtMat4v(e.eye,e.look,e.worldUp);$.transformPoint3(t,this.getPivotPos(),this._cameraOffset);var n=this.getPivotPos();this._cameraOffset[2]+=$.distVec3(e.eye,n),t=$.inverseMat4(t);var r=$.transformVec3(t,this._cameraOffset),i=$.vec3();if($.subVec3(e.eye,n,i),$.addVec3(i,r),e.zUp){var a=i[1];i[1]=i[2],i[2]=a}this._radius=$.lenVec3(i),this._polar=Math.acos(i[1]/this._radius),this._azimuth=Math.atan2(i[0],i[2]),this._pivoting=!0}},{key:"_cameraLookingDownwards",value:function(){var e=this._scene.camera,t=$.normalizeVec3($.subVec3(e.look,e.eye,cp)),n=$.cross3Vec3(t,e.worldUp,fp);return $.sqLenVec3(n)<=1e-4}},{key:"getPivoting",value:function(){return this._pivoting}},{key:"setPivotPos",value:function(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}},{key:"setCanvasPivotPos",value:function(e){var t=this._scene.camera,n=Math.abs($.distVec3(this._scene.center,t.eye)),r=t.project.transposedMatrix,i=r.subarray(8,12),a=r.subarray(12),s=[0,0,-1,1],o=$.dotVec4(s,i)/$.dotVec4(s,a),l=Ap;t.project.unproject(e,o,dp,vp,l);var u=$.normalizeVec3($.subVec3(l,t.eye,cp)),c=$.addVec3(t.eye,$.mulVec3Scalar(u,n,fp),pp);this.setPivotPos(c)}},{key:"getPivotPos",value:function(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}},{key:"continuePivot",value:function(e,t){if(this._pivoting&&(0!==e||0!==t)){var n=this._scene.camera,r=-e,i=-t;1===n.worldUp[2]&&(r=-r),this._azimuth+=.01*-r,this._polar+=.01*i,this._polar=$.clamp(this._polar,.001,Math.PI-.001);var a=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===n.worldUp[2]){var s=a[1];a[1]=a[2],a[2]=s}var o=$.lenVec3($.subVec3(n.look,n.eye,$.vec3())),l=this.getPivotPos();$.addVec3(a,l);var u=$.lookAtMat4v(a,l,n.worldUp);u=$.inverseMat4(u);var c=$.transformVec3(u,this._cameraOffset);u[12]-=c[0],u[13]-=c[1],u[14]-=c[2];var f=[u[8],u[9],u[10]];n.eye=[u[12],u[13],u[14]],$.subVec3(n.eye,$.mulVec3Scalar(f,o),n.look),n.up=[u[4],u[5],u[6]],this.showPivot()}}},{key:"showPivot",value:function(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}},{key:"hidePivot",value:function(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}},{key:"endPivot",value:function(){this._pivoting=!1}},{key:"destroy",value:function(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}]),e}(),Ip=function(){function e(t,n){b(this,e),this._scene=t.scene,this._cameraControl=t,this._scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},this._configs=n,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=$.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}return P(e,[{key:"update",value:function(){if(this._configs.pointerEnabled&&(this.schedulePickEntity||this.schedulePickSurface)){var e="".concat(~~this.pickCursorPos[0],"-").concat(~~this.pickCursorPos[1],"-").concat(this.scheduleSnapOrPick,"-").concat(this.schedulePickSurface,"-").concat(this.schedulePickEntity);if(this._lastHash!==e){this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;var t=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){var n=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});n&&(n.snappedToEdge||n.snappedToVertex)?(this.snapPickResult=n,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){var r=this.pickResult.canvasPos;if(r[0]===this.pickCursorPos[0]&&r[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=t?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){var i=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(i[0]===this.pickCursorPos[0]&&i[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}}}},{key:"fireEvents",value:function(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){var e=new It;e.snappedToVertex=this.snapPickResult.snappedToVertex,e.snappedToEdge=this.snapPickResult.snappedToEdge,e.worldPos=this.snapPickResult.worldPos,e.canvasPos=this.pickCursorPos,e.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",e,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){var t=this.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=t)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}]),e}(),yp=$.vec2(),mp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s,o,l,u=n.pickController,c=0,f=0,p=0,A=0,d=!1,v=$.vec3(),h=!0,I=this._scene.canvas.canvas,y=[];function m(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];I.style.cursor="move",w(),e&&g()}function w(){c=i.pointerCanvasPos[0],f=i.pointerCanvasPos[1],p=i.pointerCanvasPos[0],A=i.pointerCanvasPos[1]}function g(){u.pickCursorPos=i.pointerCanvasPos,u.schedulePickSurface=!0,u.update(),u.picked&&u.pickedSurface&&u.pickResult&&u.pickResult.worldPos?(d=!0,v.set(u.pickResult.worldPos)):d=!1}document.addEventListener("keydown",this._documentKeyDownHandler=function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled){var n=e.keyCode;y[n]=!0}}),document.addEventListener("keyup",this._documentKeyUpHandler=function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled){var n=e.keyCode;y[n]=!1}}),I.addEventListener("mousedown",this._mouseDownHandler=function(e){if(r.active&&r.pointerEnabled)switch(e.which){case 1:y[t.input.KEY_SHIFT]||r.planView?(s=!0,m()):(s=!0,m(!1));break;case 2:o=!0,m();break;case 3:l=!0,r.panRightClick&&m()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=function(){if(r.active&&r.pointerEnabled&&(s||o||l)){var e=t.canvas.boundary,n=e[2],u=e[3],p=i.pointerCanvasPos[0],A=i.pointerCanvasPos[1];if(y[t.input.KEY_SHIFT]||r.planView||!r.panRightClick&&o||r.panRightClick&&l){var h=p-c,I=A-f,m=t.camera;if("perspective"===m.projection){var w=Math.abs(d?$.lenVec3($.subVec3(v,t.camera.eye,[])):t.camera.eyeLookDist)*Math.tan(m.perspective.fov/2*Math.PI/180);a.panDeltaX+=1.5*h*w/u,a.panDeltaY+=1.5*I*w/u}else a.panDeltaX+=.5*m.ortho.scale*(h/u),a.panDeltaY+=.5*m.ortho.scale*(I/u)}else!s||o||l||r.planView||(r.firstPerson?(a.rotateDeltaY-=(p-c)/n*r.dragRotationRate/2,a.rotateDeltaX+=(A-f)/u*(r.dragRotationRate/4)):(a.rotateDeltaY-=(p-c)/n*(1.5*r.dragRotationRate),a.rotateDeltaX+=(A-f)/u*(1.5*r.dragRotationRate)));c=p,f=A}}),I.addEventListener("mousemove",this._canvasMouseMoveHandler=function(e){r.active&&r.pointerEnabled&&i.mouseover&&(h=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=function(e){if(r.active&&r.pointerEnabled)switch(e.which){case 1:case 2:case 3:s=!1,o=!1,l=!1}}),I.addEventListener("mouseup",this._mouseUpHandler=function(e){if(r.active&&r.pointerEnabled){if(3===e.which){!function(e,t){if(e){for(var n=e.target,r=0,i=0,a=0,s=0;n.offsetParent;)r+=n.offsetLeft,i+=n.offsetTop,a+=n.scrollLeft,s+=n.scrollTop,n=n.offsetParent;t[0]=e.pageX+a-r,t[1]=e.pageY+s-i}else e=window.event,t[0]=e.x,t[1]=e.y}(e,yp);var t=yp[0],i=yp[1];Math.abs(t-p)<3&&Math.abs(i-A)<3&&n.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:yp,event:e},!0)}I.style.removeProperty("cursor")}}),I.addEventListener("mouseenter",this._mouseEnterHandler=function(){r.active&&r.pointerEnabled});var E=1/60,T=null;I.addEventListener("wheel",this._mouseWheelHandler=function(e){if(r.active&&r.pointerEnabled){var t=performance.now()/1e3,n=null!==T?t-T:0;T=t,n>.05&&(n=.05),n0?n.cameraFlight.flyTo(Dp,(function(){n.pivotController.getPivoting()&&r.followPointer&&n.pivotController.showPivot()})):(n.cameraFlight.jumpTo(Dp),n.pivotController.getPivoting()&&r.followPointer&&n.pivotController.showPivot())}}}))}return P(e,[{key:"reset",value:function(){}},{key:"destroy",value:function(){this._scene.input.off(this._onSceneKeyDown)}}]),e}(),Rp=function(){function e(t,n,r,i,a){var s=this;b(this,e),this._scene=t;var o=n.pickController,l=n.pivotController,u=n.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;var c=!1,f=!1,p=this._scene.canvas.canvas,A=function(e){var r;e&&e.worldPos&&(r=e.worldPos);var i=e&&e.entity?e.entity.aabb:t.aabb;if(r){var a=t.camera;$.subVec3(a.eye,a.look,[]),n.cameraFlight.flyTo({aabb:i})}else n.cameraFlight.flyTo({aabb:i})},d=t.tickify(this._canvasMouseMoveHandler=function(e){if(r.active&&r.pointerEnabled&&!c&&!f){var n=u.hasSubs("hover"),a=u.hasSubs("hoverEnter"),l=u.hasSubs("hoverOut"),p=u.hasSubs("hoverOff"),A=u.hasSubs("hoverSurface"),d=u.hasSubs("hoverSnapOrSurface");if(n||a||l||p||A||d)if(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=A,o.scheduleSnapOrPick=d,o.update(),o.pickResult){if(o.pickResult.entity){var v=o.pickResult.entity.id;s._lastPickedEntityId!==v&&(void 0!==s._lastPickedEntityId&&u.fire("hoverOut",{entity:t.objects[s._lastPickedEntityId]},!0),u.fire("hoverEnter",o.pickResult,!0),s._lastPickedEntityId=v)}u.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&u.fire("hoverSurface",o.pickResult,!0)}else void 0!==s._lastPickedEntityId&&(u.fire("hoverOut",{entity:t.objects[s._lastPickedEntityId]},!0),s._lastPickedEntityId=void 0),u.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)}});p.addEventListener("mousemove",d),p.addEventListener("mousedown",this._canvasMouseDownHandler=function(e){if(1===e.which&&(c=!0),3===e.which&&(f=!0),1===e.which&&r.active&&r.pointerEnabled&&(i.mouseDownClientX=e.clientX,i.mouseDownClientY=e.clientY,i.mouseDownCursorX=i.pointerCanvasPos[0],i.mouseDownCursorY=i.pointerCanvasPos[1],!r.firstPerson&&r.followPointer&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===e.which))){var n=o.pickResult;n&&n.worldPos?(l.setPivotPos(n.worldPos),l.startPivot()):(r.smartPivot?l.setCanvasPivotPos(i.pointerCanvasPos):l.setPivotPos(t.camera.look),l.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=function(e){1===e.which&&(c=!1),3===e.which&&(f=!1),l.getPivoting()&&l.endPivot()}),p.addEventListener("mouseup",this._canvasMouseUpHandler=function(e){if(r.active&&r.pointerEnabled&&(1===e.which&&(l.hidePivot(),!(Math.abs(e.clientX-i.mouseDownClientX)>3||Math.abs(e.clientY-i.mouseDownClientY)>3)))){var a=u.hasSubs("picked"),c=u.hasSubs("pickedNothing"),f=u.hasSubs("pickedSurface"),p=u.hasSubs("doublePicked"),d=u.hasSubs("doublePickedSurface"),v=u.hasSubs("doublePickedNothing");if(!(r.doublePickFlyTo||p||d||v))return(a||c||f)&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=f,o.update(),o.pickResult?(u.fire("picked",o.pickResult,!0),o.pickedSurface&&u.fire("pickedSurface",o.pickResult,!0)):u.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0)),void(s._clicks=0);if(s._clicks++,1===s._clicks){o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=r.doublePickFlyTo,o.schedulePickSurface=f,o.update();var h=o.pickResult,I=o.pickedSurface;s._timeout=setTimeout((function(){h?(u.fire("picked",h,!0),I&&(u.fire("pickedSurface",h,!0),!r.firstPerson&&r.followPointer&&(n.pivotController.setPivotPos(h.worldPos),n.pivotController.startPivot()&&n.pivotController.showPivot()))):u.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0),s._clicks=0}),r.doubleClickTimeFrame)}else{if(null!==s._timeout&&(window.clearTimeout(s._timeout),s._timeout=null),o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=r.doublePickFlyTo||p||d,o.schedulePickSurface=o.schedulePickEntity&&d,o.update(),o.pickResult){if(u.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&u.fire("doublePickedSurface",o.pickResult,!0),r.doublePickFlyTo&&(A(o.pickResult),!r.firstPerson&&r.followPointer)){var y=o.pickResult.entity.aabb,m=$.getAABB3Center(y);n.pivotController.setPivotPos(m),n.pivotController.startPivot()&&n.pivotController.showPivot()}}else if(u.fire("doublePickedNothing",{canvasPos:i.pointerCanvasPos},!0),r.doublePickFlyTo&&(A(),!r.firstPerson&&r.followPointer)){var w=t.aabb,g=$.getAABB3Center(w);n.pivotController.setPivotPos(g),n.pivotController.startPivot()&&n.pivotController.showPivot()}s._clicks=0}}},!1)}return P(e,[{key:"reset",value:function(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}},{key:"destroy",value:function(){var e=this._scene.canvas.canvas;e.removeEventListener("mousemove",this._canvasMouseMoveHandler),e.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),e.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}]),e}(),Cp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s=t.input,o=[],l=t.canvas.canvas,u=!0;this._onSceneMouseMove=s.on("mousemove",(function(){u=!0})),this._onSceneKeyDown=s.on("keydown",(function(e){r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&i.mouseover&&(o[e]=!0,e===s.KEY_SHIFT&&(l.style.cursor="move"))})),this._onSceneKeyUp=s.on("keyup",(function(e){r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&(o[e]=!1,e===s.KEY_SHIFT&&(l.style.cursor=null),n.pivotController.getPivoting()&&n.pivotController.endPivot())})),this._onTick=t.on("tick",(function(e){if(r.active&&r.pointerEnabled&&t.input.keyboardEnabled&&i.mouseover){var l=n.cameraControl,c=e.deltaTime/1e3;if(!r.planView){var f=l._isKeyDownForAction(l.ROTATE_Y_POS,o),p=l._isKeyDownForAction(l.ROTATE_Y_NEG,o),A=l._isKeyDownForAction(l.ROTATE_X_POS,o),d=l._isKeyDownForAction(l.ROTATE_X_NEG,o),v=c*r.keyboardRotationRate;(f||p||A||d)&&(!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),f?a.rotateDeltaY+=v:p&&(a.rotateDeltaY-=v),A?a.rotateDeltaX+=v:d&&(a.rotateDeltaX-=v),!r.firstPerson&&r.followPointer&&n.pivotController.startPivot())}if(!o[s.KEY_CTRL]&&!o[s.KEY_ALT]){var h=l._isKeyDownForAction(l.DOLLY_BACKWARDS,o),I=l._isKeyDownForAction(l.DOLLY_FORWARDS,o);if(h||I){var y=c*r.keyboardDollyRate;!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),I?a.dollyDelta-=y:h&&(a.dollyDelta+=y),u&&(i.followPointerDirty=!0,u=!1)}}var m=l._isKeyDownForAction(l.PAN_FORWARDS,o),w=l._isKeyDownForAction(l.PAN_BACKWARDS,o),g=l._isKeyDownForAction(l.PAN_LEFT,o),E=l._isKeyDownForAction(l.PAN_RIGHT,o),T=l._isKeyDownForAction(l.PAN_UP,o),b=l._isKeyDownForAction(l.PAN_DOWN,o),D=(o[s.KEY_ALT]?.3:1)*c*r.keyboardPanRate;(m||w||g||E||T||b)&&(!r.firstPerson&&r.followPointer&&n.pivotController.startPivot(),b?a.panDeltaY+=D:T&&(a.panDeltaY+=-D),E?a.panDeltaX+=-D:g&&(a.panDeltaX+=D),w?a.panDeltaZ+=D:m&&(a.panDeltaZ+=-D))}}))}return P(e,[{key:"reset",value:function(){}},{key:"destroy",value:function(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),this._scene.input.off(this._onSceneKeyUp)}}]),e}(),_p=$.vec3(),Bp=function(){function e(t,n,r,i,a){b(this,e),this._scene=t;var s=t.camera,o=n.pickController,l=n.pivotController,u=n.panController,c=1,f=1,p=null;this._onTick=t.on("tick",(function(){if(r.active&&r.pointerEnabled){var e="default";if(Math.abs(a.dollyDelta)<.001&&(a.dollyDelta=0),Math.abs(a.rotateDeltaX)<.001&&(a.rotateDeltaX=0),Math.abs(a.rotateDeltaY)<.001&&(a.rotateDeltaY=0),0===a.rotateDeltaX&&0===a.rotateDeltaY||(a.dollyDelta=0),r.followPointer&&--c<=0&&(c=1,0!==a.dollyDelta)){if(0===a.rotateDeltaY&&0===a.rotateDeltaX&&r.followPointer&&i.followPointerDirty&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.pickResult&&o.pickResult.worldPos?p=o.pickResult.worldPos:(f=1,p=null),i.followPointerDirty=!1),p){var n=Math.abs($.lenVec3($.subVec3(p,t.camera.eye,_p)));f=n/r.dollyProximityThreshold}fr.longTapRadius||Math.abs(I)>r.longTapRadius)&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),r.planView){var y=t.camera;if("perspective"===y.projection){var m=Math.abs(t.camera.eyeLookDist)*Math.tan(y.perspective.fov/2*Math.PI/180);a.panDeltaX+=h*m/l*r.touchPanRate,a.panDeltaY+=I*m/l*r.touchPanRate}else a.panDeltaX+=.5*y.ortho.scale*(h/l)*r.touchPanRate,a.panDeltaY+=.5*y.ortho.scale*(I/l)*r.touchPanRate}else a.rotateDeltaY-=h/o*(1*r.dragRotationRate),a.rotateDeltaX+=I/l*(1.5*r.dragRotationRate)}else if(2===d){var w=A[0],g=A[1];Np(w,u),Np(g,c);var E=$.geometricMeanVec2(p[0],p[1]),T=$.geometricMeanVec2(u,c),b=$.vec2();$.subVec2(E,T,b);var D=b[0],P=b[1],R=t.camera,C=$.distVec2([w.pageX,w.pageY],[g.pageX,g.pageY]),_=($.distVec2(p[0],p[1])-C)*r.touchDollyRate;if(a.dollyDelta=_,Math.abs(_)<1)if("perspective"===R.projection){var B=s.pickResult?s.pickResult.worldPos:t.center,O=Math.abs($.lenVec3($.subVec3(B,t.camera.eye,[])))*Math.tan(R.perspective.fov/2*Math.PI/180);a.panDeltaX-=D*O/l*r.touchPanRate,a.panDeltaY-=P*O/l*r.touchPanRate}else a.panDeltaX-=.5*R.ortho.scale*(D/l)*r.touchPanRate,a.panDeltaY-=.5*R.ortho.scale*(P/l)*r.touchPanRate;i.pointerCanvasPos=T}for(var S=0;S-1&&t-f<150&&(p>-1&&f-p<325?(Mp(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=s,o.update(),o.pickResult?(o.pickResult.touchInput=!0,l.fire("doublePicked",o.pickResult),o.pickedSurface&&l.fire("doublePickedSurface",o.pickResult),r.doublePickFlyTo&&d(o.pickResult)):(l.fire("doublePickedNothing"),r.doublePickFlyTo&&d()),p=-1):$.distVec2(u[0],c)<4&&(Mp(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=s,o.update(),o.pickResult?(o.pickResult.touchInput=!0,l.fire("picked",o.pickResult),o.pickedSurface&&l.fire("pickedSurface",o.pickResult)):l.fire("pickedNothing"),p=t),f=-1),u.length=n.length;for(var A=0,v=n.length;A1&&void 0!==arguments[1]?arguments[1]:{};b(this,n),(r=t.call(this,e,i)).PAN_LEFT=0,r.PAN_RIGHT=1,r.PAN_UP=2,r.PAN_DOWN=3,r.PAN_FORWARDS=4,r.PAN_BACKWARDS=5,r.ROTATE_X_POS=6,r.ROTATE_X_NEG=7,r.ROTATE_Y_POS=8,r.ROTATE_Y_NEG=9,r.DOLLY_FORWARDS=10,r.DOLLY_BACKWARDS=11,r.AXIS_VIEW_RIGHT=12,r.AXIS_VIEW_BACK=13,r.AXIS_VIEW_LEFT=14,r.AXIS_VIEW_FRONT=15,r.AXIS_VIEW_TOP=16,r.AXIS_VIEW_BOTTOM=17,r._keyMap={},r.scene.canvas.canvas.oncontextmenu=function(e){e.preventDefault()},r._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,snapToVertex:true,snapToEdge:true,snapRadius:30,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},r._states={pointerCanvasPos:$.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:$.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},r._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};var a=r.scene;return r._controllers={cameraControl:g(r),pickController:new Ip(g(r),r._configs),pivotController:new hp(a,r._configs),panController:new up(a),cameraFlight:new Of(g(r),{duration:.5})},r._handlers=[new Op(r.scene,r._controllers,r._configs,r._states,r._updates),new Lp(r.scene,r._controllers,r._configs,r._states,r._updates),new mp(r.scene,r._controllers,r._configs,r._states,r._updates),new Pp(r.scene,r._controllers,r._configs,r._states,r._updates),new Rp(r.scene,r._controllers,r._configs,r._states,r._updates),new xp(r.scene,r._controllers,r._configs,r._states,r._updates),new Cp(r.scene,r._controllers,r._configs,r._states,r._updates)],r._cameraUpdater=new Bp(r.scene,r._controllers,r._configs,r._states,r._updates),r.navMode=i.navMode,i.planView&&(r.planView=i.planView),r.constrainVertical=i.constrainVertical,i.keyboardLayout?r.keyboardLayout=i.keyboardLayout:r.keyMap=i.keyMap,r.doublePickFlyTo=i.doublePickFlyTo,r.panRightClick=i.panRightClick,r.active=i.active,r.followPointer=i.followPointer,r.rotationInertia=i.rotationInertia,r.keyboardPanRate=i.keyboardPanRate,r.touchPanRate=i.touchPanRate,r.keyboardRotationRate=i.keyboardRotationRate,r.dragRotationRate=i.dragRotationRate,r.touchDollyRate=i.touchDollyRate,r.dollyInertia=i.dollyInertia,r.dollyProximityThreshold=i.dollyProximityThreshold,r.dollyMinSpeed=i.dollyMinSpeed,r.panInertia=i.panInertia,r.pointerEnabled=!0,r.keyboardDollyRate=i.keyboardDollyRate,r.mouseWheelDollyRate=i.mouseWheelDollyRate,r}return P(n,[{key:"keyMap",get:function(){return this._keyMap},set:function(e){if(e=e||"qwerty",le.isString(e)){var t=this.scene.input,n={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":n[this.PAN_LEFT]=[t.KEY_A],n[this.PAN_RIGHT]=[t.KEY_D],n[this.PAN_UP]=[t.KEY_Z],n[this.PAN_DOWN]=[t.KEY_X],n[this.PAN_BACKWARDS]=[],n[this.PAN_FORWARDS]=[],n[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],n[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],n[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],n[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],n[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],n[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],n[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],n[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],n[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],n[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],n[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],n[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":n[this.PAN_LEFT]=[t.KEY_Q],n[this.PAN_RIGHT]=[t.KEY_D],n[this.PAN_UP]=[t.KEY_W],n[this.PAN_DOWN]=[t.KEY_X],n[this.PAN_BACKWARDS]=[],n[this.PAN_FORWARDS]=[],n[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],n[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],n[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],n[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],n[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],n[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],n[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],n[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],n[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],n[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],n[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],n[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=n}else{var r=e;this._keyMap=r}}},{key:"_isKeyDownForAction",value:function(e,t){var n=this._keyMap[e];if(!n)return!1;t||(t=this.scene.input.keyDown);for(var r=0,i=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this._controllers.pivotController.enablePivotSphere(e)}},{key:"disablePivotSphere",value:function(){this._controllers.pivotController.disablePivotSphere()}},{key:"smartPivot",get:function(){return this._configs.smartPivot},set:function(e){this._configs.smartPivot=!1!==e}},{key:"doubleClickTimeFrame",get:function(){return this._configs.doubleClickTimeFrame},set:function(e){this._configs.doubleClickTimeFrame=null!=e?e:250}},{key:"destroy",value:function(){this._destroyHandlers(),this._destroyControllers(),this._cameraUpdater.destroy(),v(E(n.prototype),"destroy",this).call(this)}},{key:"_destroyHandlers",value:function(){for(var e=0,t=this._handlers.length;e1&&void 0!==arguments[1]?arguments[1]:{};if(this.finalized)throw"MetaScene already finalized - can't add more data";this._globalizeIDs(e,t);var n=this.metaScene,r=e.properties;if(e.propertySets)for(var i=0,a=e.propertySets.length;i0?Vp(t):null,s=n&&n.length>0?Vp(n):null;return function e(t){if(t){var n=!0;(s&&s[t.type]||a&&!a[t.type])&&(n=!1),n&&r.push(t.id);var i=t.children;if(i)for(var o=0,l=i.length;o * Copyright (c) 2022 Niklas von Hertzen